css - 当滚动到水平视图中的更多数据时,Flatlist 会更改 renderItem 的位置
问题描述
我在顶部地图视图上有地图视图我正在渲染Flatlist
包含 500 多个数据的水平滚动卡片。卡片在底部,在中间,显示了下一张和上一张卡片的一部分,但在滚动 20 到 30 后,它开始向左侧移动,越走越远,卡片完全放错了位置
<Animated.FlatList
ref={scrollView}
horizontal
pagingEnabled
decelerationRate={0}
getItemLayout={(data, index) => ({
length: CARD_WIDTH,
offset: (CARD_WIDTH + 20) * index,
index,
})}
scrollEventThrottle={1}
onScrollToIndexFailed={() => {}}
showsHorizontalScrollIndicator={false}
snapToInterval={CARD_WIDTH + 20}//CARD_WIDTH = 310 AND 20 IS MARGIN
snapToAlignment="center"
style={styles.scrollView}
contentInset={{
top: 0,
left: SPACING_FOR_CARD_INSET,//SPACING_FOR_CARD_INSET=width - (CARD_WIDTH+20)/2
bottom: 0,
right: SPACING_FOR_CARD_INSET,
}}
contentContainerStyle={{
paddingHorizontal:
Platform.OS === 'android' ? SPACING_FOR_CARD_INSET : 0,
}}
onScroll={Animated.event(
[
{
nativeEvent: {
contentOffset: {
x: mapAnimation,
},
},
},
],
{useNativeDriver: true},
)}
data={stationData}
renderItem={renderPromotionItem}
scrollsToTop={false}
keyExtractor={item => item.id}
/>
解决方案
推荐阅读
- docker - docker 在 Windows 10 中显示权限提升错误
- c++ - 不能在类中创建多个对象
- math - 数学问题:考虑支付处理器费用计算要支付的价格
- python-3.x - 使用 train_test_split 并使用 mne CSP 进行交叉验证的不同结果
- c# - C# 将分钟添加到计时器 (WPF/XAML)
- c++ - 如何在 c++ 中使用不同长度的数组初始化嵌套的 2D int 数组(或指向 int[] 的指针数组?)?
- django-models - 模型指的是同一models.py中的另一个类
- reactjs - React Draft WYSIWYG - 将数据包装在 div 或 span 中
- ios - 致命异常: NSInternalInconsistencyException ,在计算索引路径处插入行的新间隙的开始时,先前的新全局行无效
- python - 如何在python中从数据集中选择行