如何使用React Native判断元素是否在屏幕上显示?

3
当用户在我的应用中滚动帖子时,我想识别用户正在查看的当前帖子。

你是否正在使用 pagingEnabled - stereodenis
不,我正在使用滚动视图。 - ROI
1个回答

2
您可以通过contentOffset获取滚动时的Y轴位置。
<ScrollView
  ref={(s) => this.scrollview = s}
  onScroll={(event) => {console.log(event.nativeEvent.contentOffset.y)}}
  ...
></ScrollView>

是的,但您仍然没有告诉我如何识别用户滚动时当前看到哪个组件/元素。 - ROI
1
如果滚动视图中的所有项高度相等,则为 contentOffset.y / itemHeight。如果不相等,则逐个累加,直到它们达到您的 y - stereodenis
如果您能给我一个小的工作示例,那就太好了,因为我还是有些不理解......假设我们有scrollView的位置y,并且我们知道每个post的高度相似。那么我怎么知道现在用户看到的是第七个项目?当然,如果我在脑海中计算它,我会知道它,但是当我滚动时,如何使用React Native脚本识别它?我如何知道在用户看到可见元素的同时触发它? - ROI
我现在明白你的想法了,我会测试一下,如果一切都按照你的建议顺利进行,我会接受你的答案。 - ROI
如果我想在ListView中执行相同的操作,是否有相同的想法或者还有其他方法? - ROI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接