3 回答
TA贡献2016条经验 获得超9个赞
getFragmentManager属于Activity
getChildFragmentManager属于Fragment
例如,我们有一个应用程序,它具有MainActivity,Fragment1,Fragment2,container_view_on_main是在布局activty_main.xml
要显示 Fragment1上MainActivity,我们必须使用getSupportFragmentManager()
getSupportFragmentManager().beginTransaction().replace(R.id.container_view_on_main, Fragment1.newInstance());
Fragment2从Fragment1我们有2路显示
使用 getFragmentManager()
getFragmentManager().beginTransaction().replace(R.id.container_view_on_main, Fragment1.newInstance());
使用 getChildFragmentManager()
首先,我们要创建一个ID布局container_view_on_fragment1里面fragment1.xml,然后
getChildFragmentManager().beginTransaction().replace(R.id.container_view_on_fragment1, Fragment2.newInstance()).commit();
结论
在这个演示中,我认为我们应该在使用getFragmentManager()时使用Fragment1,Fragment2因为它简单且对性能有益(Fragment1在Fragment2打开时会停止)
我们用的时候getChildFragmentManager()?
例如你MainActivity有一个ViewPager有3页的页面,你需要在每个页面内替换一些片段。
更多
- getParentFragment()
getFragmentManager() => return null
getChildFragmentManager() =>总是返回根片段(Fragment1在演示中甚至我们去Fragment3 ,, ...)
这个答案是基于我的理解,所以如果我错了请纠正我。希望它有所帮助
- 3 回答
- 0 关注
- 2296 浏览
添加回答
举报