【发布时间】:2018-11-06 13:33:28
【问题描述】:
那么,在片段中启动视图的最佳位置在哪里?我们知道我们应该只在 onCreate() 内部扩展一个布局,而不是启动视图,比如设置监听器。
您应该在 onCreateView 中扩展您的布局,但不应该在 onCreateView 中使用 findViewById 初始化其他视图。
我们知道onViewCreated() 是在onCreateView() 之后立即调用的,基本上视图已经膨胀,一切都准备好了。但问题是每次转到另一个页面并返回时都会调用onViewCreated!因此,如果您在此处启动视图,例如添加一些侦听器,因为 onViewCreated 被多次调用,您最终会多次启动视图。
所以我的问题是:
- 我理解
onCreateView()和onViewCreated对吗? - 使用
onActivityCreated启动视图是否正确,因为它只调用一次,并且在onCreateView()之后调用?
【问题讨论】:
-
不,如果您不想破坏视图,则应更改 ViewPagers 屏幕外页面限制。否则你将违反 Fragments 生命周期。请参阅 Fragments
onDestroyView方法。
标签: android android-fragments android-lifecycle android-inflate fragment-lifecycle