アダプターのデータを変更するときに、リストビューのスクロール位置を維持するのに少し問題があります。
私が現在行っているのは、ListFragmentのにカスタムArrayAdapter(オーバーライドされたonCreate
getViewメソッドを使用)を作成し、それをそのリストに割り当てることです。
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
次に、すべてを定期的にフェッチするローダーから新しいデータを受け取ると、onLoadFinished
コールバックでこれを行います。
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
問題は、呼び出すとclear()
リストビューのスクロール位置がリセットされることです。その呼び出しを削除すると、位置は保持されますが、明らかに古いアイテムがリストに残ります。
これを行うための適切な方法は何ですか?