【发布时间】:2015-07-02 22:15:02
【问题描述】:
我正在为RecyclerView 实现无限数据加载。当软件检测到要显示最后一个项目时,它会下载新项目并调用以下函数(在主线程中运行):
int visibleItemCount = numberOfItemsPerRow;
int pastVisiblesItems = ((GridLayoutManager)recyclerView.getLayoutManager()).findLastVisibleItemPosition();
int totalItemCount = mLayoutManager.getItemCount();
if (loading) {
if ((visibleItemCount+pastVisiblesItems) >= totalItemCount) {
.
.
.
//After downloading data
loading = false;
getActivity().runOnUiThread(new Runnable() {
public void run() {
mAdapter.notifyDataSetChanged();
}
});
}
但是,如果我快速滚动并在接收新数据之前显示最后一项,notifyDataSetChanged() 不起作用。只有当我再次上下滚动以强制呈现新数据时,才会显示这些新数据。
知道哪里出了问题吗?
【问题讨论】:
标签: android android-recyclerview custom-adapter notifydatasetchanged gridlayoutmanager