我有一个带有ActionBarSherlock选项卡的Activity,并且其中包含一个ViewPager。滚动页面时,将切换选项卡并更改选项卡,同时也会更改当前页面。
我正在使用扩展FragmentStatePagerAdapter作为页面 View 中的适配器的类。
问题在于,当设备旋转时,页面适配器的getItem不会被调用,并且看起来 fragment 引用不正确。
这是一个很大的问题,因为用户必须在寻呼机内填写一些字段。这些字段可以在旋转时正确地恢复,但是由于 fragment 的引用不正确,因此无法以正确的方式保存这些值。
关于旋转有任何想法吗?

最佳答案

将当前页码保存在onSavedInstanceState中:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("item", mViewPager.getCurrentItem());
}

然后在onCreate中:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState != null) {
         mViewPager.setCurrentItem(savedInstanceState.getInt("item"));
    }
}

关于android - Android ViewPager屏幕旋转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16299626/

10-10 06:28