FragmentManager的使用

FragmentManager的使用

申明fragmentManager

  • 在activity中申明
FragmentManager mFgManager=getFragmentManager();
或者
FragmentManager mFgManager=getSupportFragmentManager()
  • fragment中可以先getActivity()
  • 套娃:在activity中获取其fragment的FragmentManagergetChildFragmentManager()

使用framentManager实例

  • beginTransaction()开启事务

  • commit()提交事务

  • add()add方法会直接将一个fragment添加到指定的id布局中,不管这个布局容器中原来有没有,无条件覆盖。所以会叠加,而之前的fragment只是被遮挡,view并不会被摧毁

  • getFragmentbyTag()getFragmentbyId()这两个方法可以获得有相应的tag或id属性的fragment(这两个属性也可以通过xml里布局设置),那么就出现了有多个fragment拥有相同的tag和id,那调用该方法获得的是哪个呢?实测获得的是最顶层的那个fragment,也就是最近添加的

  • replace()该方法不同于add()可有其注释的出,relplace()会先相应调用该布局id容器中中所有的add的fragment的remove()方法,然后在调用add()方法

  • remove()移除这个fragment,最后会调用onDetach()

  • show()hide() ,这里要注意调用这两个方法并不会走fragment的生命周期,即并不会调用onPause()onStop方法,而是只调用了onHiddenChanged()方法,所有改变应在这个方法里,重写之

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值