1

我将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);
}

知道为什么会发生这种情况吗?

4

1 回答 1

3

根据您的代码,您显然在 Fragment 中使用 ViewPager (并且 ViewPager 也显示嵌套的 Fragments)。

您必须向 ViewPager 的适配器提供持有 ViewPager(不是 Activity 的)的 Fragment 的子 FragmentManager。

代替:

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

用这个:

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