【发布时间】:2015-05-06 14:51:43
【问题描述】:
我正在努力恢复我在屏幕旋转配置更改的列表视图中的位置。
在我尝试过的许多事情中,我得出了这个结论:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState == null) {
...
mVisibleItem = -1;
} else {
if (savedInstanceState.containsKey(LV_VISIBLE_ITEM)) {
mVisibleItem = savedInstanceState.getInt(LV_VISIBLE_ITEM);
}
}
setRetainInstance(true);
}
我正在尝试在列表视图中设置位置
@Override
public void onResume() {
super.onResume();
if (mVisibleItem > 0) {
mlvDictionaryIndex.setSelectionFromTop(mVisibleItem, 0);
}
}
然而,令我惊讶的是,在旋转屏幕并观察 mVisibleItem 设置为正确的值后,在 onResume 中我看到 mVisibleItem 等于 -1。怎么会?
【问题讨论】:
标签: android listview android-fragments