我有一个活动包含一个ListView。我使用SimpleCursorAdapter填充列表视图。当我运行应用程序时,我可以在ListView中手动向下滚动(例如,到第10项)。然后,当我旋转我的手机 - 这会破坏并重新创建我的Activity,并且ListView会按照预期重新制作。导致ListView在方向更改后保持其滚动位置的原因是什么?
但是,在我的手机旋转后,重新创建的活动显示我的ListView仍处于我的手动滚动位置(在此示例中为第10行)。我很确定我的代码没有调用ListView.setSelection(int),这是什么导致这个ListView的重新定位?
这似乎很方便,但它不是我想要的。它是ListViews行为的一部分吗?如果是这样,如何停止/重写此重新定位?
不,我只是有一个标准的活动不是ListActivity。 – MickeyR
然后我会尝试setSelection在Activity.onCreate和/或在Activity.onRestoreInstanceState – slkorolev
我认为你是正确的,ListView的状态是由onSaveInstanceState/onRestoreInstanceState设置的automaticaly。 – MickeyR