FragmentTransaction的add(),hide(),show()方法与Replace()方法的比较

1、在面试的时候,我一开始写的是FragmentTransaction的add()、hide()、show()、解决Fragment直接切换时的闪动问题,这个问题我一开始想的比较简单,首先我先讲一下这几个方法的作用吧。

add():向Activity加入一个片段,这个片段在activity容器中有他自己的视图。

hide():隐藏已经存在的Fragment,但是仅仅对已经添加到父容器中的Fragment有关,隐藏Fragment的View

show():显示一个以前被隐藏的Fragment,这仅仅对已经添加到activity中的Fragment有关,显示Fragment的View

detach():Fragment的视图被销毁,但是它的状态没有被销毁,还是被fragment manager

管理。

attach():Fragment的view重新加载到UI视图中,并显示,也就是执行onCreateView()→onActivityCreate()→onStart()→onResume()

replace():就相当于执行remove(Fragment)add(int, Fragment, String)这两个方法

2、通过介绍上面的几个方法,我们应该已经明白了各个方法的用途,之所以使用add(),hide(),replace()这几个方法不会出现闪动的问题,主要是因为hide()方法仅仅是隐藏了Fragment的View,而没有销毁View,show()方法仅仅是显示之前隐藏的View。

3、replace()是先remove(Fragment),然后add(Fragment),这样会导致fragment的重新创建。

4、detach()是将Fragment的视图销毁,Fragment的状态没有被销毁,还是被FragmentMenager管理。

通过上面的比较,大家应该明白了这几个方法之间的区别了吧,这样会使我们更加的灵活的掌握Fragment

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值