我在NestedScrollView中添加了RecyclerView。在“首先尝试从服务器获取数据并在UI上呈现”中,此后还要添加滚动侦听器。这对我来说很好。
问题是当我滚动到NestedScrollView的底部时,另一个Server调用以获取更多数据,将数据添加到列表中后,我调用了notifydataSetchanged。但是这次刷新数据后NestedScrollView继续自动滚动。
看起来像:
1)最后滚动到底部先暂停
2)调用服务器API后刷新列表
3)暂停滚动,现在自动恢复。
这是我的滚动侦听器:
nested_scroll_layout.getViewTreeObserver().addOnScrollChangedListener(new
ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
View view =
nested_scroll_layout.getChildAt(nested_scroll_layout.getChildCount() - 1);
int diff = (view.getBottom() - (nested_scroll_layout.getHeight()
+ nested_scroll_layout
.getScrollY()));
if (diff == 0 && !isCommentaryLoading) {
isCommentaryLoading = true;
hitCommentryApi(true);
}
}
});
====================================
API成功响应后,将数据添加到当前列表中。
then `commentaryAdapter.notifyDataSetChanged();`