アダプタのデータを変更するときに、リストビューのスクロール位置を保持するのに少し問題があります。アダプタのデータが変更されたときにリストビューがスクロールしてトップ位置に表示されないようにする方法はありますか?
私が現在やっていることはListFragmentのonCreate
でカスタム(上書きGetViewメソッドを持つ)ArrayAdapterを作成し、そのリストに割り当てることです:
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
その後、私は受け取ります定期的にすべてのものを取り出し、ローダからの新しいデータが、私はそのonLoadFinished
コールバックで次の操作を行います。
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
問題がclear()
リセットリストビューのスクロール位置を呼び出す、です。その呼び出しを削除すると位置は保持されますが、明らかに古い項目はリストに残ります。
これを行う適切な方法は何ですか?
あなたは前の位置を取得し、バックの位置を設定することができます。 –