fragment使用经验(填过的坑)

0、

FragmentManager用于管理,获取frag,可通过id或者tag获取Fragment

FragmentTransaction 用于在容量里对frag进行增加,删除等操作,实现切换frag的效果

 

 

 

一、FragmentManager的事务执行是异步的,在commit之后只是表示提交,不是执行完成。如果前后两个事务有冲突,会报错。建议放在同一个事务中执行

二、Fragment 和viewpage一同使用时要注意,因为viewpage有预加载,最小为1,所以调用onResume和onStop方法的时机有所差异。本地例子在RxjavaApp

父activity 的生命周期 ,Fragment的生命周期,如果判断特定的Fragment在viewpage是否显示

1、正常初始化(打开activity)
parent MainPage onStart
parent MainPage onResume
//方法 setUserVisibleHint 比子Fragment的 onCreate还快调用,一定要注意
MainPageFragment1 setUserVisibleHint isVisibleToUser=false,thread is :main
MainPageFragment1 onAttach
MainPageFragment1 onCreate
MainPageFragment1 onCreateView
MainPageFragment1 onResume


2、viewpage预加载后,(不销毁的情况下 vp.setOffscreenPageLimit(3);)
左右切换页面是不会触发生命周期方法,但会触发setUserVisibleHint方法
MainPageFragment1的生命周期执行到onResume,就不会改变


3、跳转到新的activity再回来,会触发正常的生命周期方法,但不会触发 setUserVisibleHint
parent MainPage onPause
MainPageFragment1 onPause
parent MainPage onStop
MainPageFragment1 onStop
parent MainPage onStart
parent MainPage onResume
//注意,父onResume调用完后才调用子onResume
MainPageFragment1 onResume

fragment 切换判断界面是否可见 setUserVisibleHint和onHiddenChanged使用场景

https://blog.csdn.net/tantion/article/details/97926346

 

三、父activity调用子fragment 的方法前,把保证fragment已经调用onCreateview进行了初始化操作。就是fragment已经显示或者hide

 

四、嵌套Fragments (Nested Fragments) 的使用及常见错误

https://blog.csdn.net/tantion/article/details/81179040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值