嵌套 Tab 时部分 Fragment 不显示及指示器 Indicator 卡顿问题

在用“ TabLayout+ViewPager 实现双层嵌套 Tab”时遇到这个问题:

问题一:部分子Fragment不显示

问题二:指示器 Indicator 卡顿,停在半道

代码:【代码】

 @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View viewContent = inflater.inflate(R.layout.four_fragment_layout, null);
        mTabLayout = (TabLayout) viewContent.findViewById(R.id.ff_tablayout);
        mViewPager = (ViewPager) viewContent.findViewById(R.id.ff_viewpager);
        initData();
        return viewContent;
    }

    private void initData() {
        mTabLayout.addTab(mTabLayout.newTab());
        mTabLayout.addTab(mTabLayout.newTab());
        mTabLayout.addTab(mTabLayout.newTab());

        List<Fragment> fragments = new ArrayList<>();
        fragments.add(FirstFragment.newInstance());
        fragments.add(SecondFragment.newInstance());
        fragments.add(ThirdFragment.newInstance());
        mTabLayout.setupWithViewPager(mViewPager);

        // MyFragmentAdapter adapter = new MyFragmentAdapter(getActivity().getSupportFragmentManager(), fragments, Arrays.asList(sTitle));
        // MyFragmentAdapter adapter = new MyFragmentAdapter(getFragmentManager(), fragments, Arrays.asList(sTitle));
        // TODO 这里要用getChildFragmentManager()才能解决嵌套tab加载fragment时部分fragment在滑动回来时不能显示的问题
        MyFragmentAdapter adapter = new MyFragmentAdapter(getChildFragmentManager(), fragments, Arrays.asList(sTitle));
        mViewPager.setAdapter(adapter);
    }

如上所述:是因为用错了 FragmentManager,只要采用正确的 FragmentManager 即可。


参考文章:
http://blog.csdn.net/binyao02123202/article/details/51629315
http://blog.csdn.net/qq_21727627/article/details/60870529

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值