Вращение в ViewPager - PullRequest
       13

Вращение в ViewPager

2 голосов
/ 31 августа 2011

У меня есть фрагмент с ViewPager, имеющий WebViews.Когда я поворачиваю телефон, ViewPager показывает первую страницу.Это потому, что действие и фрагмент создаются снова.Как мне сохранить состояние ViewPager.Следующий код не работает

@Override
public void onActivityCreated(Bundle savedInstanceState) 
    {
        super.onActivityCreated(savedInstanceState);
        if (savedInstanceState != null) 
        {
            // Restore last state for checked position.
            int pos  = savedInstanceState.getInt("currentPosition");
            this.setSelectedItem(pos);
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState) 
    {
        super.onSaveInstanceState(outState);
        outState.putInt("currentPosition", positionOfSelectedIndex);
    }

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

В конструкторе вашего фрагмента укажите следующее:

setRetainInstance(true);

Если у вас есть несколько конструкторов, вам нужно убедиться, что это конструктор по умолчанию без аргументов, а затем убедитесь, что каждый другой конструктор вызывает

this();

Затем в вашей FragmentActivity, которая создает экземпляр вашего PageAdapter, поместите следующие строки:

myPager = (ViewPager)findViewById(R.id.pager);
myAdapter = new MyPagerAdapter(anyParamsYouMightHave);
myPager.setAdapter(myAdapter);
myPageAdpater.setCurrentItem(indexOfSomePointYouWishToReturnTo);

Mark

1 голос
/ 31 октября 2011

Это все о том, как вы создаете свою FragmentActivity (активность хоста).Кажется, вы не можете сохранить состояние ViewPager, но вы можете сохранить состояние фрагментов, которые вы отправляете в адаптер ViewPager.Также вы можете сохранить некоторые данные внутри фрагмента (таким же образом).Также, если вы не хотите, чтобы адаптер автоматически уничтожал представления (когда вы перелистываете viewpager), переопределите метод уничтожения адаптера без супер там.Смотрите мой вопрос с кодом и простым решением: ViewPager и фрагменты - как правильно сохранить состояние фрагмента?

...