2

当我将数据源设置为我的列表视图时,刷新控件(下拉刷新)工作得非常好。如果数据源为空,我无法下拉刷新列表视图。

我的列表视图如下所示:

                <View contentContainerStyle={{flex: 1}}>
                    <ListView
                        style={styles.container}
                        dataSource={this.state.dataSource}
                        renderRow={(data) => <NotificationRow {...data}/>}
                        enableEmptySections={true}
                        refreshControl={
                            <RefreshControl
                                refreshing={this.state.refreshing}
                                onRefresh={this._onRefresh.bind(this)}
                                tintColor="#ff0000"
                                title="Loading..."
                                titleColor="#ffffff"
                                colors={['#ffffff']}
                                progressBackgroundColor="#1976D2"
                            />
                        }
                    />
                </View>

即使数据源为空/null,我是否需要将任何道具设置为 Listview 或任何其他方式以启用下拉刷新列表视图?

我正在寻找这个功能,因为我第一次从异步存储加载数据。在下拉刷新时,我清除存储并获取新数据。

4

2 回答 2

1

您需要使用道具调用refreshing={true}并完成该过程,独立性是否有新数据或没有您需要设置refreshing={false}通知列表您没有更多数据并隐藏加载指示器。

render() {
    return (
      <ListView
        refreshControl={
          <RefreshControl
            refreshing={this.state.refreshing}
            onRefresh={this._onRefresh.bind(this)}
          />
        }
        ...
      >
      ...
      </ListView>
    );
于 2018-03-07T17:02:08.630 回答
0

如果我从红线开始的区域拉出下拉刷新作品

当我在手机而不是模拟器上测试应用程序时发现了这一点。即使数据源为空,列表视图也始终存在。就我而言,列表视图从文本视图在红线处结束的位置开始。

于 2016-12-11T01:02:58.247 回答