Я использую PagerSlidingTabStrip для фиксированных вкладок и ViewPager из библиотеки поддержки. Когда я меняю ориентацию с книжной на альбомную и пытаюсь прокрутить с одной страницы на другую или пытаюсь щелкнуть одну из вкладок, прокрутка почему-то прерывается. Индикатор прокрутки перемещается не по ширине табуляции, а только на произвольную длину.

@Override public void onViewCreated(View view, Bundle savedInstanceState)
{
    super.onViewCreated(view, savedInstanceState);

    //TODO BUG orientation changes
    PagerAdapter pagerAdapter = new PagerAdapter(getActivity().getSupportFragmentManager());
    pager = (ViewPager) view.findViewById(R.id.viewpager);
    pager.setAdapter(pagerAdapter);

    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view.findViewById(R.id.tabs);
    tabs.setShouldExpand(true);
    tabs.setViewPager(pager);

    pager.setCurrentItem(0);
}

Есть идеи, почему это могло произойти?

1
vandus 20 Авг 2014 в 19:51

1 ответ

Лучший ответ

Основываясь на вашем коде, вы, очевидно, используете ViewPager во фрагменте (и ViewPager также показывает вложенные фрагменты).

Вы должны предоставить дочерний FragmentManager фрагмента, содержащий ViewPager (а не Activity) адаптеру ViewPager.

Вместо того:

PagerAdapter pagerAdapter = new PagerAdapter(getActivity().getSupportFragmentManager());

Использовать это:

PagerAdapter pagerAdapter = new PagerAdapter(getChildFragmentManager());
3
traninho 21 Авг 2014 в 13:49
1
Спасибо! Это было именно то, что мне было нужно!
 – 
vandus
21 Авг 2014 в 13:50