fragment的常用知识点

我们都知道fragment有两种添加的方式,一种是add  一种是replace 两种都可以实现我们的activity里面的布局添加fragment,但是我们发现如果你做页面切换时,同一个activiy里面的viewgroup多次addfragment那么他会根据你当前viewgroup的特性就行排列,那么我们就想到了repalce,replace顾名思义是替换fragment,他的一个运行的原理是移除添加的fragment 添加新的进去。这也就意味着你每调用一次replace他就会给你重新添加新的fragment也就意味着每次都会刷新你的fragment(fragment的生命周期都会执行),这里根据需求去取决你的使用,那么如果是用add又该如何进行操作。那么我么的事务为我们提供了一个方法叫hide可以去隐藏你添加的fragment,再使用show方法展示出我们隐藏的fragment就可以达到一个页面切换的效果。但是如果长时间在后台运行,gc回收了你的对象就可能导致你的fragment为空,这时候在展示将会出现重叠。为了解决该bug代码如下:
public void addfragment(Fragment on Fragment to,String tag){
FragmentTransaction fragmentTransaction =  supportFragmentManager. beginTransaction();  
   
fragmentTransaction  .hide(on);
   if(! to .isaadded ){
    fragmentTransaction .add(R.id.frg,to,tag).show(to);
}else{
if(to!=null){
to=fragmentTransaction .findfrgmentbytag(tag);
}

fragmentTransaction.show(to);
}
 
fragmentTransaction.comit();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值