我有使用下面的方法恢复GridView位置的问题。使用gv.setSelection(index);
可以正常工作,但需要更准确地定位GridView。当我使用gv.setSelectionFromTop(index, top);
时,滚动恢复良好,但仅当index
为0
时才会恢复。使用ListView,相同的方法可以正常工作。操作系统:Android 5.0.2。
保存:
index = gv.getFirstVisiblePosition();
View v = gv.getChildAt(0);
top = (v == null) ? 0 : (v.getTop() - gv.getPaddingTop());
恢复:
gv.setSelectionFromTop(index, top);
布局:
<GridView
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/list"
android:horizontalSpacing="1px"
android:numColumns="auto_fit"
android:columnWidth="140dp"/>