/ / Android PagerSlidingTabStrip: Przewijanie między kartami przerywa się po zmianie orientacji - Android, przewijanie, android-viewpager, pagerlidingtabstrip

Android PagerSlidingTabStrip: Przewijanie między kartami powoduje przerwanie zmiany orientacji - android, scroll, android-viewpager, pagerslidingtabstrip

ja używam PagerSlidingTabStrip dla stałych kart i ViewPager z pomocy technicznejbiblioteka. Kiedy zmieniam orientację z pionowej na poziomą i próbuję przewijać z jednej strony na drugą lub próbować klikać jedną z kart, przewijanie w jakiś sposób się psuje. Wskaźnik przewijania nie przesuwa się o szerokość tabulatora, ale tylko o losową długość.

@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);
}

Wiesz, dlaczego tak się stało?

Odpowiedzi:

3 dla odpowiedzi № 1

W oparciu o Twój kod, oczywiście używasz ViewPager we fragmencie (a ViewPager pokazuje również zagnieżdżone fragmenty).

Musisz dostarczyć potomnego menedżera FragmentManager fragmentu zawierającego ViewPager (nie działanie) do adaptera ViewPager.

Zamiast:

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

Użyj tego:

PagerAdapter pagerAdapter = new PagerAdapter(getChildFragmentManager());