1

固定タブには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);
}

なぜそれが起こるのでしょうか?

4

1 に答える 1

3

コードに基づいて、明らかに ViewPager を Fragment で使用します (ViewPager はネストされた Fragment も表示します)。

ViewPager (Activity のものではない) を保持する Fragment の子 FragmentManager を ViewPager のアダプターに提供する必要があります。

それ以外の:

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

これを使って:

PagerAdapter pagerAdapter = new PagerAdapter(getChildFragmentManager());
于 2014-08-21T09:49:55.117 に答える