【Android Studio】fragment管理

add()

FragmentManager manager = getSupportFragmentManager();  
FragmentTransaction transaction = manager.beginTransaction();  
transaction.add(R.id.fragment_container, fragment, "fragment");  
transaction.commit(); 

replace()

FragmentA fragment = new FragmentA();
getSupportFragmentManager().beginTransaction()
        .replace(R.id.XXX, fragment,"fragment")
        .commit();

addreplace的区别是:

add 是往container容器里堆加fragment Viewreplace是将container容器里之前添加的View全部清除,然后再添加当前fragment View

一定要记住,replace清除的是container的视图,而不是fragment实例, remove移除的才是fragment实例

add后期可以使用showhide操作,但是replace不可以,原因见①

③使用add,回滚时,fragment不会重新加载,曾经的操作痕迹还存在,使用replace回滚时,之前的fragment会重新加载,原因见①

使用add的时候还有一点需要注意的是,视图重叠的问题,记得设置背景色
add 和 replace 千万不要混合使用,否则会出错

posted @ 2021-11-18 16:31  RikkaXl  阅读(225)  评论(0)    收藏  举报