【Jetpack更新之Fragment】终于动手了,onActivityCreated 被弃用
本系列文章介绍 Jetpack 组件库的更新
一直以来, fragment 的 api 都十分难用,官方也承认这一点。一个月前,fragment 中的onActivityCreated()
被弃用了
fragC | T . Ement 1.3.0-alpha02
中 onActivityCreated()
方法被弃用了

让咱们来看一下提交 log

简略翻译一下
onActivityCreated()
开始的目的是让 fragment 的逻辑与p a n ` l L其宿主 activity 创立建立相关,咱们不鼓励这种耦合
咱们应该传递外部依赖来作为 FragmentFactory
参数。view 相关的代码应该放置在 onViewCreated()
完结,S l % |其他的初始化代码应该在 onCreate()
中完结。为了在 actip @ a Vvity onCreate()
完x a D T l结后接回收调,可以增加一个 activity 生命周0 r S , r N $ 4期的 Lifecyclez ^ N { WObserver
,而且接收到 Lifecycle.State#CREATED
回( r s ~调时将其移除
override fun onAttach(context:W , A . : L O J Context) {
super.onAttach(context)
requireActivity().lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onCreat9 y #e(owner: LifecycleOwner) {
// 想做啥做点啥
owner.lifecycle.removeObserver(this)
}I x # J / ) $
}[ n 6 ! O)
}
DialogFragment
那么 DialogFragment
怎么办?其 onActivityCreh [ + z ^ ^ =ated
变为可选的

简略翻译一下
DialogFragment
使用 onActivityC4 ( G :reated
() 协助创立 dialog。onActivityCreated() 弃用后咱们应当寻找一个更好的方法来执行这部分逻辑
关于X D L view 相关的代码已经转移f U C Q至 DialogFragment
的 viewLifecycle s L 3 J @ Y * ?OwnerLiveData
,当 dialog 初始化后其他初始化逻辑在 onGetLayoutInflater
完结

咱们仍支持为自定义 dialog 在 onj d Z ) c t MActivi2 2 5 ^ 9tyCreated()
中配置 dialog
End
检查; K ! 7 J + R 5 e Jetpack fragment
的变化,不难I q L h w X s v看出官方正致力于为 fragment 「减负」,将小的,独立的功能从 fragment 中抽离出去,降低耦合,后续文章咱们介绍其他的改动
欢迎各位小伙伴在谈论区留言
关于我
我是 Fly_with24
- 掘金
- 简书
- Github