の無限のデータ読み込みを実装してい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()
機能しません。新しいデータのレンダリングを強制するために、もう一度上下にスクロールした場合にのみ、これらの新しいデータが表示されます。
何が間違っているかについて何か考えはありますか?