react-native - 如何确定 ScrollView (或 ListView )子项是否在 React Native 的 View 中

标签 react-native react-native-listview react-native-scrollview

我目前正在使用 ListView 来显示一些数据。由于设计原因,行占据了屏幕高度的 70%,这意味着总是至少有 2 行可见,最多 3 行。我想确定的是哪一行最明显。

我目前正在使用 onChangeVisibleRows,但这只会告诉我哪些行可见或已进入或离开 View 。

有什么想法吗?

最佳答案

只有当您知道一次有 2-3 行(不多也不少)可见时才有效:

onChangeVisibleRows={(visibleRows) => {
    const visibleRowNumbers = Object.keys(visibleRows.s1).map((row) => parseInt(row));
    if (visibleRowNumbers.length === 2) {
        // visible row is visibleRowNumbers[0]
    }
    if (visibleRowNumbers.length === 3) {
        // visible row is visibleRowNumbers[1]
    }
}

请注意,它不会完美 映射到最可见的行,该行被认为是可见的。但是,在使用它时,它在滚动时很有意义。在我的特定应用程序中,事件行和非事件行之间存在明显的转换,因此有助于用户了解发生了什么。

关于react-native - 如何确定 ScrollView (或 ListView )子项是否在 React Native 的 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36291173/

相关文章:

reactjs - React Native ListView 性能太慢?

react-native - 如何让 React Native 列表只从底部反弹?

react-native - 检测 ScrollView 已结束

react-native - 带有 flex 1 的 ScrollView 使其不可滚动

javascript - 当 ListView 放置在 ScrollView 中时,ListView 的 onEndReached 属性不起作用

android - React-Native Animated 在低端 Android 手机中落后

javascript - 如何通过单击状态从 FlatList 中一项一项删除项目

ios - Firebase Performance Monitoring是否捕获了由React Native Fetch API发出的请求?

react-native - 捕获 React Native 获取错误而不用红屏停止应用程序

listview - 在 ListView、React-Native 中迭代 renderRow 内的对象数组