我正在膨胀 onCreateView()
中的布局我的 fragment 。此布局包含自定义 View 。现在documentation的 onActivityCreated()
说它是“在创建 fragment 的 Activity 并且实例化该 fragment 的 View 层次结构时调用”。这意味着布局是膨胀的,并且布局中的 View 是在 onActivityCreated()
之前创建的。 .
这是否意味着 View 的 onLayout()
, onSizeChanged()
和 onDraw()
方法在 onActivityCreated()
之前调用?
最佳答案
否 onActivityCreated()
被首先调用。 onSizeChanged()
, onLayout()
和 onDraw()
稍后调用。 “实例化 View 层次结构”的文档意味着创建 View (调用它们各自的构造函数),您可以使用 findViewById()
获得对意见的引用。仅此而已。
这有什么意义?好吧,这意味着您无法获得 width
或 height
onActivityCreated()
中的 View .它只会返回 0。
以下是调用方法的顺序:
1 ->
Fragment
-onCreateView()
2 ->View
-CustomView()
//Constructor
3 ->Fragment
-onViewCreated()
4 ->Fragment
-onActivityCreated()
5 ->Fragment
-onResume()
6 ->View
-onMeasure()
7 ->View
-onSizeChanged()
8 ->View
-onLayout()
9 ->View
-onDraw()
关于android - 是在 onActivityCreated() 之前还是之后调用 onDraw()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40949163/