通过屏幕旋转保持GridView的滚动位置

问题描述 投票:0回答:3

如何在整个屏幕重新定向过程中保持 GridView 的滚动位置(其中充满搜索结果)?

android gridview orientation
3个回答
24
投票

您可以使用以下方法,它适用于所有Android版本。

保存当前滚动位置:

int index = gridView.getFirstVisiblePosition();

然后在方向更改后,使用以下代码将 gridView 位置设置为保存的索引:

gridView.setSelection(index);

19
投票

你可以试试这个:

最初你必须通过调用来获取 GridView 的当前滚动位置:

int index = gridview.getFirstVisiblePosition();

然后,您必须在方向更改时保存此值,并且当再次创建 GridView 时,您必须将 gridview 移动到此索引。

我想这可行:

gridview.smoothScrollToPosition(int index)

希望这有帮助!


1
投票

使用 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。

© www.soinside.com 2019 - 2024. All rights reserved.