使ListView可点击的React Native

时间:2018-06-22 18:00:37

标签: android ios listview react-native shoutem

我正在尝试使我的ListView可以点击,以便用户每次在屏幕上的任何位置单击时。一项添加到列表中。现在我面临的问题是列表视图没有滚动。

因此,为了解决此问题,我用ListView包裹了TouchableWithoutFeedback,以使屏幕可点击,但不幸的是它无法滚动。

因此,为了解决滚动问题,我将整个内容包装在ScrollView下。但是我现在面临的问题是,由于在开始时列表视图中只有1个项目,因此整个屏幕都无法单击,只有一小部分占据了屏幕上的那一部分是可单击的。

有没有解决这个问题的方法?

 <ScrollView>
        <Screen
          onStartShouldSetResponder={() => true}
          style={{
            flex: 1
          }}
        >
          <TouchableOpacity
            style={{ flex: 1 }}
            onPress={() => this.addMessage()}
          >
            <ListView
              data={this.state.readMessages}
              renderRow={this.renderRow}
              scrollEnabled={true}
            />
          </TouchableOpacity>
        </Screen>
      </ScrollView>

这就是我最终的结果。

1 个答案:

答案 0 :(得分:2)

您可以在使用ListView时删除scrollView。

      <TouchableOpacity
        style={{ flex: 1 }}
        onPress={() => this.addMessage()}
      >
<ScrollView>
    <Screen
      onStartShouldSetResponder={() => true}
      style={{
        flex: 1
      }}
    >
        <ListView
          data={this.state.readMessages}
          renderRow={this.renderRow}
          scrollEnabled={true}
        />
    </Screen>
</ScrollView>
      </TouchableOpacity>

您可以尝试使用上面的代码。另外,不推荐使用 ListView 。您可以使用 FlatList