环境
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
Memory: 1.35 GB / 7.87 GB
Binaries:
Node: 10.15.3 - C:\Program Files\nodejs\node.EXE
Yarn: 1.17.3 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD
IDEs:
Android Studio: Version 3.5.0.0 AI-191.8026.42.35.5791312
React Native 版本:0.60.4
代码
<FlatList
style={{
flexDirection: 'row',
marginHorizontal: -wp('3%'),
zIndex: 40
}}
initialNumToRender={10}
data={this.state.data}
horizontal={true}
key={item => item.groupNo}
keyExtractor={(item, index) => index.toString()}
showsHorizontalScrollIndicator={false}
showsVerticalScrollIndicator={false}
ref={ref => (this.flatList = ref)}
renderItem={({ item }) => (
<Item item={item} />
)}
/>
重现步骤
- 向我的 FlatList 添加了一些数据
- 将 horizontal={true} 属性添加到 flatlist
- 设置
I18nManager.allowRTL(true)
- 设置
I18nManager.forceRTL(true)
- 使我的 renderItem 组件扩展为 PureComponent。
- 使用真正的 Android 设备
正如您在下面看到的,当我的应用程序在 RTL 方向上运行时,FlatList
会自动滚动到列表的顶部/第一个,但 LTR 方向是可以的!
RTL:
LTR:
最佳答案
我也有同样的问题和我的解决方案(您将它们添加到您的 Flatlist 中)。 希望能帮到你。 此链接可能会帮助您改进列表: https://github.com/filipemerker/flatlist-performance-tips
getItemLayout={(data, index) => (
{ length: LECTURE_ITEM_HEIGHT, offset: LECTURE_ITEM_HEIGHT * index, index }
)}
maxToRenderPerBatch={20}
initialNumToRender={10}
windowSize={10}
removeClippedSubviews={true}
关于android - 当水平模式(RTL)下数据太大时,FlatList 会自动滚动到第一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099908/