2019新征程,开篇拾遗之Android Fragment

Fragment经常用到,可能任何App都离不开的组件,常用组件之一。
其实我们在用Fragment 的时候会发现很多坑,例如,切换时重叠,数据传递等问题。延伸的解决方案一大堆,So有了国人精品系列的Fragmenttion,比较不错的Fragment解决方案。也都在使用Fragmention,所以产生了依赖,对原生的Fragment忘乎所以了,不知道你有没有这种情况,反正我是有了。

那就从Fragment 生命周期说起吧:

onAttch() 依赖宿主Activity ,获取Content

onCreate()  Fragment对象的初始创建时

onCreateView () 布局引入,返回当前View

onActivityCreate() 方法会告诉Fragment对象,它所依附的Activity对象已经完成了Activity.onCreate()方法的执行,当onCreate(),onCreateView(),onViewCreated()方法执行完后调用,也就是Activity被渲染绘制出来后

onStart()方法会让Fragment对象显示给用户(在包含该Fragment对象的Activity被启动后)

onResume() 这个就比较重要了 如:屏幕解锁,回到应用 回到当前页面 onStart() ->onResume() 

onPause() 暂停

onStop() 停止

onDestroyView() 销毁当前视图 ,一般都可以在这里写结束处理

onDestroy() 销毁

onDetach() 解除依赖宿主Activity

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

lateinit var mFragmentTransaction : FragmentTransaction

hide(Fragment fragment) : 隐藏一个存在的Fragment

show(Fragment fragment) : 显示一个以前被隐藏过的Fragment

注意:当使用add(),show(),hide()跳转新的Fragment时,旧的Fragment回调onHiddenChanged(),不会回调onStop()等生命周期方法,而新的Fragment在创建时是不会回调onHiddenChanged(),这点要切记。


commit()、 commitAllowingStateLoss()、 commitNow()、commitNowAllowingStateLoss()

API文档说明:

commit():安排一个事务的提交。

commitAllowingStateLoss():和commit一样,但是允许Activity的状态保存之后提交。

commitNow():同步的提交这个事务。(API_24添加的)

commitNowAllowingStateLoss():和commitNow()一样,但是允许Activity的状态保存之后提交。(API_24添加的)

你可能感兴趣的:(2019新征程,开篇拾遗之Android Fragment)