React native “如何使React成为本地产品”;“滚动至”;当ScrollView较小时,Android上的行为与iOS上的行为相同

React native “如何使React成为本地产品”;“滚动至”;当ScrollView较小时,Android上的行为与iOS上的行为相同,react-native,React Native,考虑一下 在iOS上,单击文本会将文本移到顶部,因为scrollTo({y:250})即使到达scrollView的末尾也会滚动 在Android上,文本不会移动 如何在Android上实现与iOS相同的行为?您可以通过向滚动视图的contentContainerStyle添加填充来解决这个问题。一个好的起点是添加与设备屏幕高度相等的填充 import { Dimensions } from 'react-native'; const ANDROID_SCREEN_HEIGHT_PADDIN

考虑一下

  • 在iOS上,单击文本会将文本移到顶部,因为
    scrollTo({y:250})
    即使到达scrollView的末尾也会滚动

  • 在Android上,文本不会移动


如何在Android上实现与iOS相同的行为?

您可以通过向
滚动视图的
contentContainerStyle
添加填充来解决这个问题。一个好的起点是添加与设备屏幕高度相等的填充

import { Dimensions } from 'react-native';
const ANDROID_SCREEN_HEIGHT_PADDING = Dimensions.get('window').height;
然后,渲染时:

<ScrollView
    contentContainerStyle={{paddingBottom: ANDROID_SCREEN_HEIGHT_PADDING}}>
...
</ScrollView>

...
您可以在各个方向上使用此功能进行必要的额外Android填充。例如,如果您使用的是
horizontal={true}
,则可以添加与屏幕宽度相等的填充,并将其添加到
paddingLeft
样式属性中,以在Android上获得预期的滚动行为

这种行为是由于在Android上以React Native实现了
ScrollView
。另见: