Android片段onCreateView与onActivityCreated


74

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

那么,是否可以将所有这些都移到onCreateView中,还是应该将某些函数放入onActivityCreated方法中?

Answers:


77

如果您的视图是静态的,则无需将任何代码移至onActivityCreated方法。但是,例如,当您从适配器填充一些列表时,则应该在onActivityCreated方法中执行此操作,并在使用setRetainInstance进行操作时还原视图状态。

另外,必须在onActivityCreated(而不是尽快)中访问父活动的视图层次结构。


为什么在“静态”情况下不需要它?似乎每个人都知道了,但我没有。
2015年

6
Diffy,不要以为每个人都知道,但是他们只是对答案很满意:)
Boy

7
@Diffy,他的意思是静态视图,显示给用户的视图不过是膨胀的xml布局。无需在编码或运行时进行任何修改。
Hamzeh Soboh,2015年

2
@vitakot您能否详细说明一下适配器用例中的列表。为什么不能放入onCreateView?
lujop

1
很好的答案,但是如果您可以@vitakot解释为什么将适配器中的数据填充到listview / reyclerview中时,为什么需要使用onActivityCreated方法会更有用。
user3189761 '20

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.