如何知道在react native中平面主义者何时离开视口



我有一个屏幕,其中包含使用平面列表显示的项目列表,平面列表如下:

<FlatList
scrollEnabled
removeClippedSubviews
windowSize={21}
stickySectionHeadersEnabled={false}
showsVerticalScrollIndicator={false}
keyExtractor={keyExtractor}
getItemLayout={getItemLayoutFun}
ListHeaderComponent={listFTUEHeader}
contentContainerStyle={{ flexGrow: 1 }}
data={DISCOVERY_SECTION_LIST}
renderItem={renderItem}
onRefresh={onRefresh}
refreshing={false}
viewabilityConfig={viewabilityConfig}
ListFooterComponent={EndOfListText}
onScroll={onScroll}
/>

我想检测ListHeaderComponent何时在视口外,或者项目[1]何时在屏幕顶部,因此我想添加一个状态。

我已经阅读了文档,但找不到方法,希望能从这里得到任何线索。

任何线索都会有帮助,提前谢谢。

我也处于完全相同的情况,到目前为止,我只能找到一个解决方案来检查视口中是否有特定的项目,而不能检查ListHeaderComponent。

FlatList有一个名为onViewableItemsChanged的道具,您可以很容易地实现它。滚动平面列表时,平面列表上显示的项目会发生变化。然后,调用此函数,告诉您当前可查看项目是什么以及更改的项目是什么。

另请参阅本文以获得进一步的解释。

也许这有助于你更接近一个适合你的解决方案?!

我也在做这件事,这是迄今为止我发现的最好的选择:

  1. 获取页眉的高度
  • 如果您知道所有屏幕尺寸的高度,请创建一个可重复使用的变量
  • 如果没有,请使用onLayout道具获取高度
  1. 使用onScroll回调并通过event.nativeEvent.contentOffset.y获取y offtset

你最终找到了另一个解决方案吗?

最新更新