返回到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)ViewView.getTop() - mList.getPaddingTop()ListViewListViewListView.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
提交
取消
