我知道片段的视图层次结构必须在onCreateView中进行夸大,但是onCreateView中可以有哪些其他功能,而onActivityCreated应该等待什么呢?我当前的实现对所有内容使用单独的活动,一个典型的活动在其onCreate方法中完成其大部分工作,包括扩大视图,设置内容视图,使用数据初始化各种小部件,设置侦听器等。
那么,是否可以将所有这些都移到onCreateView中,还是应该将某些函数放入onActivityCreated方法中?
Answers:
如果您的视图是静态的,则无需将任何代码移至onActivityCreated方法。但是,例如,当您从适配器填充一些列表时,则应该在onActivityCreated方法中执行此操作,并在使用setRetainInstance进行操作时还原视图状态。
另外,必须在onActivityCreated(而不是尽快)中访问父活动的视图层次结构。
onActivityCreated()
是在片段1.3.0 alpha02弃用,并有使用推荐onViewCreated()
来代替。视图已在此处创建,您可以设置侦听器,从ViewModel观察LiveData,初始化recyclerView等。
为了更好地理解,您可以看一下我的博客文章,其中描述了137秒内的Android Fragment生命周期。