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) 的使用及常见错误