下面的代码是我在react native
项目中的ScrollView
:
<ScrollView
ref={(scrollView) => { this._scrollView = scrollView; }}
horizontal={true}
showsHorizontalScrollIndicator={false}
showsVerticalScrollIndicator={false}
directionalLockEnabled={true}
bounces={false}
scrollsToTop={false}
>
现在它从左向右移动,它怎么可能在第一次加载时从右向左移动?
6条答案
按热度按时间iqxoj9l91#
对于
RTL
设置,您应该像下面的示例那样编写代码:**提示:**我不使用你的其他
ScrollView
设置,如bounces={false}
,如果你想,把它放在你的代码中,我的答案只是一个样本。vaj7vani2#
这是React Native中一个非常烦人的Bug,ScrollView+RTL=Silly Bug。
虽然,有多种黑客可以适应,我这样做是为了克服这个bug:
1.我颠倒了我正在使用的数据数组。
1.使用:onContentSizeChange事件处理程序触发scrollToEnd({ animated:false })函数
x8goxv8g3#
你可以尝试invertible-scroll-view支持水平和垂直滚动视图
frebpwbc4#
正如@SlashArash提到的,你可以使用react-native-invertible-scroll-view。下面是一个示例:
s4n0splo5#
我不得不建立一个自动完成与RTL滚动。这被证明是棘手的,因为滚动到结束的解决方案造成了很多 Flink 。我发现制作RTL的最好方法是使用transform样式。如果使用transform,则还必须将transform应用于列表中的每个项。否则,您将拥有镜像文本。如果你想反转顶部/底部,这个解决方案也可以工作,只需要改变transform scaleY而不是x。
下面是我的ScrollView:
下面是相应的ScrollView样式:
odopli946#
我目前正在使用scrollview RTL。我确认,
它在两个设备上都运行良好。即使没有flexGrow,它也可以在iOS上工作:1,但在Android上需要添加这一行。
我希望问题现在得到了很好的回答。
此外,请注意,scrollView的RTL问题已经修复。只需要添加这一行。
谢谢,快乐的编码干杯!