Android 記錄和恢復ListView和GridView的滑動位置

這裏以 ListView 爲例說明,GridView 中同理。

首先,定義一個成員變量。

// 存儲滑動位置狀態
private Parcelable state;
然後,設置 ListView 的滑動監聽事件,並重寫 onScrollStateChanged 方法,當該方法被觸發時記錄下 ListView 的狀態。

// 記錄listview滑動位置
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        state = listView.onSaveInstanceState();
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    }
});
最後,調用如下方法恢復 ListView 狀態。

// 恢復位置狀態
listView.onRestoreInstanceState(state);




發佈了44 篇原創文章 · 獲贊 1386 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章