返回到ListView時維護/保存/還原滾動位置我有很長的時間ListView在返回到前一個屏幕之前,用戶可以滾動。當用戶打開以下內容時ListView同樣,我希望將列表滾動到與以前相同的位置。對于如何實現這一點,有什么想法嗎?
3 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
// save index and top positionint index = mList.getFirstVisiblePosition();View v = mList.getChildAt(0);int top = (v == null) ? 0 : (v.getTop() - mList.getPaddingTop());// ...// restore index and positionmList.setSelectionFromTop(index, top);
ListView.getFirstVisiblePosition()
ListView.getChildAt(0)
View
View.getTop() - mList.getPaddingTop()
ListView
ListView
ListView.setSelectionFromTop()
ListView
.

MYYA
TA貢獻1868條經驗 獲得超4個贊
Parcelable state;@Overridepublic void onPause() { // Save ListView state @ onPause Log.d(TAG, "saving listview state @ onPause"); state = listView.onSaveInstanceState(); super.onPause();}...@Overridepublic void onViewCreated(final View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Set new items listView.setAdapter(adapter); ... // Restore previous state (including selected item index and scroll position) if(state != null) { Log.d(TAG, "trying to restore listview state.."); listView.onRestoreInstanceState(state); }}
- 3 回答
- 0 關注
- 568 瀏覽
添加回答
舉報
0/150
提交
取消