【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 @   RikkaXl  阅读(214)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示