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 № 1W 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());