我已经找到了解决这个问题的方法,但它并没有很好地发挥作用。它会恢复某些位置但不完全正确。如果在顶部加上一些标题,那么在轮换时它不会成为同一个标题,但它也不会把它放回到顶部。我有不同的纵向和横向UI,所以我使用了这段代码
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putIntArray(SCROLL_STATE_KEY, new int[]{mScrollView.getScrollX(),
mScrollView.getScrollY()});
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
final int[] scrollPosition = savedInstanceState.getIntArray(SCROLL_STATE_KEY);
if(scrollPosition != null) {
mScrollView.post(new Runnable() {
@Override
public void run() {
mScrollView.scrollTo(scrollPosition[0], scrollPosition[1]);
}
});
}
}
这是gif。这太快了,但我不能在这里放超过2MB,所以,希望你能看到什么不能正常工作
答案 0 :(得分:0)
不是解决方案作为源代码,而是一个想法如何做到这一用户友好:
在旋转之前,我会得到滚动视图的第一个可见的几个单词/图像的(文本)内容,并尝试滚动滚动视图,以便旋转后这些单词/图像再次位于滚动视图的顶部。
我已经为浮动文本做了这个,但是成功地用于列表视图和网格。