Android 在片段中的何处启动视图?onViewCreated或onActivityCreated

Android 在片段中的何处启动视图?onViewCreated或onActivityCreated,android,android-fragments,android-lifecycle,android-inflate,fragment-lifecycle,Android,Android Fragments,Android Lifecycle,Android Inflate,Fragment Lifecycle,那么,在片段中启动视图的最佳位置在哪里呢?我们知道,我们应该只在onCreate()中膨胀布局,而不是像设置侦听器那样启动视图 您应该在onCreateView中膨胀布局,但不应该在onCreateView中使用findViewById初始化其他视图 我们知道,onViewCreated()是在onCreateView()之后立即调用的,基本上视图是膨胀的,一切都准备好了。但问题是每次你转到另一个页面并返回时,都会调用onViewCreated!因此,如果您在此处启动视图,例如添加一些侦听器,因

那么,在片段中启动视图的最佳位置在哪里呢?我们知道,我们应该只在
onCreate()
中膨胀布局,而不是像设置侦听器那样启动视图

您应该在onCreateView中膨胀布局,但不应该在onCreateView中使用findViewById初始化其他视图

我们知道,
onViewCreated()
是在
onCreateView()之后立即调用的,基本上视图是膨胀的,一切都准备好了。但问题是每次你转到另一个页面并返回时,都会调用
onViewCreated
!因此,如果您在此处启动视图,例如添加一些侦听器,因为
onViewCreated
被多次调用,您最终会多次启动视图

因此,我的问题是:

  • 我是否理解
    onCreateView()
    onViewCreated
    对吗
  • 使用
    onActivityCreated
    启动视图是否正确,因为它只调用一次,并且在
    onCreateView()之后调用

您应该在
onCreateView()
中为
视图充气

然后您应该在
onViewCreated()
中设置
视图。尽管如此,许多人在膨胀视图后,只需在
onCreateView()中设置它们的
视图


如果该函数被多次调用,则
片段本身已被破坏,需要重建。

否,如果不想破坏视图,应更改ViewPagers屏幕外页面限制。否则,您将违反生命周期。请参阅碎片方法。我不确定碎片是否会被销毁!因为当您从片段导航到某个地方并返回时,
onCreateView
将不会被调用,但
onViewCreated
将被调用。还有,你对创建的活动有什么看法?我很想直接看看发生了什么。我希望在创建视图后只调用一次
onViewCreated()
。然而,我承认我是喜欢在
onCreateView()
中处理所有UI的人之一至于
onActivityCreated()
,我只会在需要保证从
片段
访问
活动
的情况下使用它。过去,最好的回话方式是使用带有回调的
接口。一旦调用了activitycreated()
,则,你知道这个活动已经准备好被调用了。是的,我认为当一个片段事务被调用时,它就会发生used@Knossos是否有可能onViewCreated过载,并且发生的某些事情没有足够的时间进行适当准备,我们需要使用onViewCreated?您是否曾经遇到过需要在ViewCreated上解决的问题?