返回活动时如何保留Android ListView滚动位置?

Oll*_*e C 13 android

可能重复:
返回ListView时保持/保存/恢复滚动位置

用户查看项目的列表视图,它们移动到显示一个项目的详细信息的活动,然后单击"返回"并返回到列表活动,但我希望列表反映其先前的滚动位置.

我应该将滚动位置存储为onPause中活动的成员变量还是有更好的方法?

Man*_*ser 17

将位置保存在onPause上的实例变量中,并在onResume中检查是否有位置值并移动到它.

例如使用

private int currentPostion;
Run Code Online (Sandbox Code Playgroud)

然后在onResume做..

getListView().setSelection(currentPosition);
Run Code Online (Sandbox Code Playgroud)

  • 您还应该考虑将此值放在传递给`onSaveInstanceState()`的`Bundle`中,并在`onRestoreInstanceState()`中使用它,这样您就可以处理方向更改. (5认同)
  • 这不会保留精确的滚动位置. (2认同)