Sud*_*Plz 6 react-native react-native-listview react-native-flatlist
这是我们的FlatList,打个招呼:
<FlatList
data={this.state.dates}
...
/>
Run Code Online (Sandbox Code Playgroud)
我们用以下日期输入:
this.state = {
dates: [
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
};
Run Code Online (Sandbox Code Playgroud)
然后,当可见日期更改(onViewableItemsChanged)时,如果我们到达第一个项目(21/06/2019),则会添加数据,以便新状态变为:
dates: [
'18/06/2019',
'19/06/2019',
'20/06/2019',
'21/06/2019',
'22/06/2019',
'23/06/2019',
]
Run Code Online (Sandbox Code Playgroud)
我们之后预先考虑的数据,而不是仍然看到21/06/2019(这是在前面加上发生的日期),我们现在看到19/06/2019。
这是因为在引擎盖下,21/06/2019以前是索引0,但在前缀之后,索引0对应于19/06/2019。
我试图做到这一点,以便在添加数据后的一天保持不变。
请不要告诉我使用,scrollToPosition因为这确实是黑客,而不是解决方案。有什么好办法解决这个问题吗?
谢谢
有一个未记录的道具maintainVisibleContentPosition可以ScrollView做你想做的事情,但不幸的是它不适用于android
我找到了另一种解决方法,即使用onScroll保留最新的 y 偏移量,并使用onContentSizeChange添加新项目之前和之后保存内容高度,并计算内容高度的差值,并将新的 y 偏移量设置为最新的 y 偏移量 + 内容高度差!
我也在github 上打开了一个问题,但还没有任何完整的解决方案
感谢sgtpepper43提供未记录的 iOS 解决方案
| 归档时间: |
|
| 查看次数: |
472 次 |
| 最近记录: |