Android 片段 onCreateView 与 onActivityCreated

我知道片段的视图层次结构必须在 onCreateView 中扩展,但是 onCreateView 中还有哪些其他功能,而 onActivityCreated 应该等待哪些功能?我当前的实现对所有事情都使用单独的活动,典型的活动在 onCreate 方法中完成大部分工作,包括扩展视图、设置内容视图、使用数据初始化各种小部件、设置监听器等。

那么,这些函数是否可以全部移动到 onCreateView 中,或者是否应该将一些函数放到 onActivityCreated 方法中?

39160 次浏览

如果视图是静态的,则不需要将任何代码移动到 onActivityCreated 方法。但是,当您——例如,从适配器中填充一些列表时,那么您应该在 onActivityCreated 方法中进行此操作,并在 setRetainInstance 过去这样做时恢复视图状态。

此外,访问父活动的视图层次结构必须在 onActivityCreated 中完成,而不是更早。

onActivityCreated()在片段1.3.0-alpha02中弃用,建议改用 onViewCreated()。这里已经创建了视图,您可以设置监听器、从 ViewModel 观察 LiveData、初始化回收视图等等。

为了更好的理解,您可以看看我的博客文章,其中我在137秒内描述了 Android 片段生命周期