关系图简单说明
启动项目进入MainActivity后,MainActivity创建了一个homeroot的fragment,在这个fragment里有4个子fragment,分别对应了首页显示的四个底边tab,但是不管这是个子fragment本身怎么操作,都是在homeroot这个fragment,和fragment并不是在一个栈里。然后在某个子fragment里交互要跳到一个新的fragment,而这个新的fragment事实上和homeroot一个层级,这里可以通过eventbus传递消息,子fragment通知homeroot要切换xxfragment了,然后将这个xxfragment压入roothome所在栈中,这个xxfragment和homeroot一个层级。
注意
假如在某个子fragment(如图紫色层级)里有多个viewpage,每个viewpage就对应一个fragment(如图蓝色),这时候要注意获取fragmentmanager的时候要写getChildFragmentManager(),否则就会和紫色fragment在一个栈里。如
mDetailFMViewPagerAdapter = new ViewPagerFMAdapter(getChildFragmentManager(), mTitles, listFragments);
public ViewPagerFMAdapter(FragmentManager fm, String[] mTitles, List<BaseFragment> mFragments) { super(fm); this.mTitles = mTitles; this.mFragments = mFragments; }