簡體   English   中英

通過屏幕旋轉來維護GridView的滾動位置

[英]Maintain Scroll Position of GridView through Screen Rotation

如何在整個屏幕重新定向期間保持GridView的滾動位置(充滿搜索結果)?

我將GridView放在Fragment中,當我旋轉屏幕時,它跳回到列表的頂部。

更棘手的是,在橫向模式下,我的GridView有3列。在縱向模式下,它有2列。

我似乎無法弄清楚如何使片段的GridView滾動到屏幕方向改變時應滾動到應有的位置。

您可以使用以下方法,該方法適用於所有Android版本。

要保存當前滾動位置:

int index = gridView.getFirstVisiblePosition();

然后在更改方向后,使用以下代碼將gridView位置設置為保存的索引:

gridView.setSelection(index);

您可以嘗試以下方法:

最初,您必須通過調用以下命令獲取GridView的當前滾動位置:

int index = gridview.getFirstVisiblePosition();

然后,您必須在方向改變時保存該值,並且當再次創建GridView時,必須將gridview移至該索引。

我想這可以工作:

gridview.smoothScrollToPosition(int index)

希望這可以幫助!

使用getFirstVisiblePosition()很好,但是我找到了一個不錯的解決方案,只是保存視圖狀態。

//state of view (includes scroll position) as a Parceble
Parcelable mobileGalleryState = gridView.onSaveInstanceState();

//just restore previous state including all changes are made before
gridView.onRestoreInstanceState(mobileGalleryState);

順便說一句,您也可以將其用於ListView。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM