我在修改適配器數據時保留列表視圖的滾動位置時遇到了一些麻煩。有沒有辦法來防止列表視圖滾動到其頂部的位置,當其適配器的數據更改?
什麼我目前做的是創造一個ListFragment的onCreate
定製ArrayAdapter(與重寫getView方法),然後將其分配給它的列表:
mListAdapter = new CustomListAdapter(getActivity());
mListAdapter.setNotifyOnChange(false);
setListAdapter(mListAdapter);
然後,當我收到從定期獲取一切裝載機新的數據,我這樣做是在其onLoadFinished
回調:
mListAdapter.clear();
mListAdapter.addAll(data.items);
mListAdapter.notifyDataSetChanged();
的問題是,調用clear()
重置ListView的滾動位置。刪除該呼叫會保留該位置,但顯然會將舊項目留在列表中。
這樣做的正確方法是什麼?
你可以得到的位置之前,然後設置位置回來。 –