【发布时间】:2011-12-07 21:55:49
【问题描述】:
我的 ViewPager 出现问题,我的 ListView 失去了滚动位置。
ListView 的状态可以通过以下方式轻松存储和恢复:
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.frag_cool_things, container, false);
AdvListView listView = (AdvListView) v.findViewById(R.id.lv0);
listView.setOnItemClickListener( mOnListItemClicked );
if (null != savedInstanceState)
{
listView.onRestoreListViewInstanceState(savedInstanceState.getParcelable("list_state"));
}
mListView = listView;
return v;
}
@Override
public void onSaveInstanceState (Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putParcelable("list_state", mListView.onSaveListViewInstanceState());
}
但问题是,当片段被刷卡时,onDestroyView() 被调用但从不调用onSaveInstanceState (Bundle outState)。
旋转屏幕等可以很好地恢复ListView 状态,但滑动我无法弄清楚如何正确恢复列表。
【问题讨论】:
标签: android android-widget android-viewpager android-lifecycle