使っています PagerSlidingTabStrip サポートからの固定タブおよびViewPager用としょうかん。縦向きから横向きに向きを変えて、あるページから別のページにスクロールしようとしたり、タブの1つをクリックしようとすると、スクロールがどうにか中断されます。スクロールインジケータはタブ幅では移動しませんが、ランダムな長さだけ移動します。
@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の場合は3あなたのコードに基づいて、あなたは明らかにFragmentでViewPagerを使います(そしてViewPagerはネストされたFragmentsも示します)。
ViewPagerを保持するFragmentの子FragmentManager(Activityのアクティビティではない)をViewPagerのアダプタに提供する必要があります。
の代わりに:
PagerAdapter pagerAdapter = new PagerAdapter(getActivity().getSupportFragmentManager());
これを使って:
PagerAdapter pagerAdapter = new PagerAdapter(getChildFragmentManager());