使用单Activity多Fragment架构的一些总结

节选自:使用单Activity多Fragment架构的一些总结


MainFragment中,PagerAdapter的FragmentManager要使用Fragment的FragmentManager,通过getChildFragmentManager()获得,而不能使用getActivity().getSupportFragmentManager();

getChildFragmentManager()区别于getActivity().getSupportFragmentManager(),因为在Fragment中使用ViewPager显示多个Fragment,所以需要使用fragment中的FragmentManager;

如果使用getActivity().getSupportFragmentManager(),在ViewPager中的Fragment打开另一个Fragment时有两个问题:
(1)、两个Fragment的onCreateOptionsMenu都会被调用,从而导致被打开的Fragment的Toolbar菜单按钮点击事件失效,且会一起显示出来;
(2)、返回时,ViewPager中的Fragment的视图会为空,显示空白;

发表评论