在Fragment中何处发起视图? onViewCreated或onActivityCreated

时间:2018-11-06 13:33:29

标签: android android-fragments android-lifecycle android-inflate fragment-lifecycle

那么片段中启动视图的最佳位置是哪里?我们知道,我们只应在onCreate()内填充一个布局,而不要像设置侦听器那样初始化视图。

  

您应该在onCreateView中增加布局,但不应使用onCreateView中的findViewById初始化其他视图。

我们知道onViewCreated()之后onCreateView()被立即调用,并且基本上视图已膨胀并且一切就绪。但是问题在于,每次您转到另一页并返回时,都会调用onViewCreated!因此,如果您在此处启动视图,例如添加一些侦听器,因为多次调用onViewCreated会导致多次启动视图。

所以我的问题是:

  • 我能正确理解onCreateView()onViewCreated吗?
  • 使用onActivityCreated初始化视图是否正确,因为它仅被调用一次,并且在onCreateView()之后被调用?

1 个答案:

答案 0 :(得分:2)

您应该在View中将onCreateView()膨胀。

然后,您应该在View中设置onViewCreated()。不过,很多人会在夸大View之后在onCreateView()中建立他们的Fragment

如果多次调用该函数,则DISTINCT ON (col)本身已被破坏,需要重新构建。