1
私のアプリケーションにページネーションを実装しようとしていて、部分的に成功しました。サーバーを呼び出すと、6つのアイテムが取得され、それらのアイテムをrecyclerviewに追加しています。ユーザーが来て最後の項目をスクロールすると、もう1回サーバーを呼び出しています。ページ2の項目を取得していて、既存のリストに新しい項目を追加しています。リストの先頭に移動せずに既存リストのリサイクルビューに新しいアイテムのリストを追加するには
新しいアイテムを追加できました。しかし、問題は私がadapter.notifyDataSetChanged()
と呼んでいるため、新しい項目を追加した後の最初の項目に移動します。
リストの先頭に移動しないようにするにはどうすればいいですか?adapter.notifyDataSetChanged()
以外はどうすればいいですか?
toadlineAdapter = new ToadlineAdapter(mContext, getData());
recyclerView.setAdapter(toadlineAdapter);
// remove below line
// toadlineAdapter.notifyDataSetChanged();
toadlineAdapter.setClickListener(this);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
そして、あなたは元のために、項目を追加するときに通知:以下は、アダプタを初期化するときに通知する必要はありませアダプタ
toadlineAdapter = new ToadlineAdapter(mContext, getData());
recyclerView.setAdapter(toadlineAdapter);
toadlineAdapter.notifyDataSetChanged();
toadlineAdapter.setClickListener(this);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
NO THERE ISこのアダプタを 'recyclerView'に設定した後に' notifyDataSetChanged'を呼び出す必要があります!!!!!!!!!!!! ...項目を追加するコードはどこにありますか? – Selvin
...また 'RecyclerView.Adapter.notifyDataSetChanged()'からもdocs - *できるだけ具体的な変更イベントを使用する方が、より効率的になるでしょう。 **最後の手段としてnotifyDataSetChanged()を利用してください。*** ....あなたはそれを読み込もうとしましたか? – Selvin