1
我試圖實現不定式RecyclerView,我已經在適配器中實現了。我設置了RecyclerView的兩種視圖類型,一種用於顯示項目,另一種用於顯示底部的加載欄。爲什麼我在Recyclerview分頁的進度條下看到空視圖?
下面是從適配器的代碼一個片段:
final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager();
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = linearLayoutManager.getItemCount();
lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
if (!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
// End has been reached
// Do something
if (mOnLoadMoreListener != null) {
mOnLoadMoreListener.onLoadMore();
}
isLoading = true;
}
}
});
這該是多麼我是來自適配器的方法調用加載更多的數據:
// Load more data when user reach bottom
mAdapter.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore() {
// add null , so the adapter will check view_type and show progress bar at bottom
mUsers.add(null);
mAdapter.notifyItemInserted(mUsers.size() - 1);
// Load data
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Remove loading item
mUsers.remove(mUsers.size() - 1);
mAdapter.notifyItemRemoved(mUsers.size());
// Load data
int start = mUsers.size();
int end = start + 20;
for (int i = start + 1; i <= end; i++) {
User user = new User();
user.setName("User " + i);
mUsers.add(user);
}
mAdapter.setLoaded();
mAdapter.notifyDataSetChanged();
}
}, 2000);
}
});
因此,這是發生了什麼。一切都適用於不定式RecyclerView的實現。數據在最後加載,但在數據加載之前,我得到一些空的視圖。意味着用戶可以在加載新數據時滾動到進度條下方。
這是輸出:
預期結果是什麼? –
嗯,我希望進度條顯示在底部,並且用戶無法在進度條正在加載新數據時滾動到進度條下面。 –