BottomNavigationBar+viewpager底部导航切换,出现 Fragment already added

好久没有写博客了,今天bug解决的头晕,把之前遇到的问题总结下吧.
底部导航就不上代码了,搜下BottomNavigationBar+viewpager出来一堆,而且还是一模一样,这在下就没什么好说的,大致的问题是这样的,导航栏里有一个fragment种嵌套了两个fragment,用com.flyco.tablayout.CommonTabLayout,在fragment中做了个顶部导航,第一次切换是没什么问题的,第二次app就会崩溃.

  java.lang.IllegalStateException: Fragment already added: ContactFragment{ac15300 #4 id=0x7f080092}
        at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1886)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:760)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2591)
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2378)
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2333)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2240)

看了网上的一些答案没有自己想要的,没办法只能靠自己了

 @Override
    protected void initView(View rootView) {
        viewById = (CommonTabLayout) rootView.findViewById(R.id.t1);
        viewById1 = (FrameLayout) rootView.findViewById(R.id.fl);
    }

    @Override
    protected void initData() {
            mFragment.add(ContactFragment.newInstance());
            mFragment.add(MainFragmentTwo.newInstance());
            //设置tab的标题、选中图标、未选中图标
            for (int i = 0; i < TITLE.length; i++) {
                mTabEntities.add(new TabEntity(TITLE[i], 0, 0));
            }
            //给tab设置数据和关联的fragment
            viewById.setTabData(mTabEntities,getActivity(), R.id.fl, mFragment);


    }

用的控件代码比较少,emmm完全没看出来,想了下,既然报出了这个错误,那肯定是添加了两次了,那我加个判断了,当mfragment==null时才进行添加的操作,当!=null时就不做任何操作.这样来回切换就没有报错误了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值