我正在使用SectionList来显示数据列表。我有一个顶层菜单,用户可以单击这些按钮在列表上显示一组不同的数据,就像标签一样。所有这些都工作正常,正在显示正确的数据,并且刷新正确。
但是问题是,当用户在列表上向下滚动(例如,中途滚动)然后单击顶部的按钮之一时,列表不再显示refreshing
动画(旋转的圆圈)。我已经正确实现了refreshing
属性,并且只要我下拉刷新就可以使用。
此外,如果您滚动到列表的顶部,然后单击刷新图标也会按预期显示的按钮之一。问题在于,只要您向下滚动列表,然后设置refreshing
属性,列表就不会显示图标。
<SectionList
refreshing={this.state.isFetching}
onRefresh={() => this.onRefreshList()}
....
...
/>
然后每当我打电话开始更新数据时...
this.setState({ isFetching: true }, function() {
....
....
//all code in here works fine the list shows activity monitor no problems
//when you scroll down on the list THEN
//call this the activity monitor can't be seen on the list
});
因此,为了解决这个问题,我在调用实际刷新之前尝试自动scroll to the top。这的还挺的作品,但它看起来非常糟糕。没有回调,所以我不知道列表何时滚动到顶部。
//this also works properly and scrolls the list to the top but
//it's really jumpy and looks terrible because the data is immediately
//replaced while it's scrolling to the top, the loading animation can't be seen.
this.sectionListRef.scrollToLocation({
animated: true,
sectionIndex: 0,
itemIndex: 0,
viewPosition: 0
});
这是一个已知问题吗?有任何解决方法,还是我在这里做错了什么?