75

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

那么这可能全部移到 onCreateView 中,还是应该将某些函数放入 onActivityCreated 方法中呢?

4

2 回答 2

77

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

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

于 2011-11-20T04:04:25.123 回答
3

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

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

于 2020-08-03T19:48:16.373 回答