ViewPager + FragmentStatePagerAdapter + изменение ориентации

У меня есть небольшая проблема: у меня есть ViewPager с некоторыми страницами, и я использую FragmentStatePagerAdapter для обработки данных. В портретном режиме у меня есть, например, 20 страниц для ViewPager, а в альбомной ориентации у меня всего 10 страниц для ViewPager. Поэтому при изменении ориентации я создаю новый адаптер с другими данными.

Вот небольшое объяснение, почему: я показываю одно изображение в портретной и два в альбомной, но всегда все в счет. Если у меня есть 10 фотографий, чтобы показать, у меня есть 10 в портретной и 5 в альбомной (всегда две).

Но теперь у меня странная ошибка: когда я нахожусь в альбомной ориентации по индексу 5 и включаю устройство, ViewPager 'Для текущей страницы установлено значение 10. Если я снова поверну ее, я нахожусь на странице 5. Если я перелистываю ViewPage сейчас на страницу 10, метод getItem адаптера никогда не вызывается, и ViewPage показывает мне одно портретное изображение, а не два для пейзажа. Как это может случиться? Есть ли кеш в адаптере или ViewPager? В onCreate of Activity все заново создано, адаптер, а также данные (только строки с путем) для ViewPager. Так что любая идея как исправить это действительно страшноособенность"?

Вот некоторый код:

OnCreate:

    mViewPagerAdapter = new ReaderPageViewAdapter(getSupportFragmentManager(), getBaseContext(), mCurrentDocument.mPages, getResources()
                .getConfiguration().orientation);
    mPageReader = (ReaderViewPager) findViewById(R.id.pager);
    mPageReader.setAdapter(mViewPagerAdapter);

адаптер getItem:

    public Fragment getItem(final int index) {
        final PageInfo pageInfo = mPages.get(index);
        final PageFragment pageFragment = (PageFragment) PageFragment
                .instantiate(mContext, pageInfo.mClss.getName(), pageInfo.mArgs);
        return pageFragment;
    }

Если вам нужно что-то еще, просто скажите мне. Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос