滚动React Native FlatList到负偏移



我有一个FlatList,我正在实现一个自定义的拉取刷新,其想法是将其滚动到负偏移,以在发布时显示其下方的动画。这是我的FlatList的代码。

const flatListRef = useRef(null);
const handleRelease = () => {
flatlistRef.current.scrollToOffset({ y: -100 });
setTimeout(() => {
flatlistRef.current.scrollToOffset({ y: 0 });
}, 1000)
}
return (
<FlatList
data={data}
renderItem={({ item }) => {
return (
<View style={styles.row}>
<Text style={styles.text}>{item}</Text>
</View>
)
}}
onScroll={onScroll}
scrollEventThrottle={16}
onResponderRelease={handleRelease}
ref={flatListRef}
/>  
)

释放后,FlatList应该滚动到偏移量-100以显示下面的动画,然后在1秒后向上滚动。但现在的情况是,它正在滚动到偏移量0(我可以判断,因为我在释放后立即尝试向下滚动,它会立即尝试向上滚动(。

是否可以通过程序将FlatList滚动到负偏移?

似乎需要将scrollToOverflowEnabled设置为true才能应用此行为。

ScrollView(平面图继承ScrollView道具(

PS:这里有一个不同的想法。如果你想达到-100,也许你可以添加一个固定高度的视图。(看起来一样(过了一段时间,就把视野关闭了。(返回原点位置?((如果不起作用……(

------------------编辑-----

<FlatList
data={data}
renderItem={({ item }) => {
return (
<View style={styles.row}>
<Text style={styles.text}>{item}</Text>
</View>
)
}}
onScroll={onScroll}
scrollEventThrottle={16}
onResponderRelease={handleRelease}
ref={flatListRef}
scrollToOverflowEnabled={true}  // Just put in here 
/>  

使用offset而不是y作为scrollToOffset的参数键,如文档中所述:

flatlistRef.current.scrollToOffset({ offset: -100 });

最新更新