onDraw() 是在 onActivityCreated() 之前还是之后调用?
Is onDraw() called before or after onActivityCreated()?
我正在为我的 Fragment 的 onCreateView()
中的布局充气。此布局包含自定义视图。现在,onActivityCreated()
的 documentation 表示它是“在创建片段的 activity 并且实例化该片段的视图层次结构时调用 ”。这意味着布局被膨胀并且布局中的视图在onActivityCreated()
.
之前创建
这是否意味着视图的 onLayout()
、onSizeChanged()
和 onDraw()
方法在 onActivityCreated()
之前被调用?
没有
onActivityCreated()
首先被调用。 onSizeChanged()
、onLayout()
和 onDraw()
稍后调用。 “view hierarchy instantiated”文档的意思是创建了视图(调用了它们各自的构造函数),您可以使用 findViewById()
来获取对视图的引用.仅此而已。
这有什么意义?那么,这意味着您无法获取 onActivityCreated()
中视图的 width
或 height
。它只是 return 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()
我正在为我的 Fragment 的 onCreateView()
中的布局充气。此布局包含自定义视图。现在,onActivityCreated()
的 documentation 表示它是“在创建片段的 activity 并且实例化该片段的视图层次结构时调用 ”。这意味着布局被膨胀并且布局中的视图在onActivityCreated()
.
这是否意味着视图的 onLayout()
、onSizeChanged()
和 onDraw()
方法在 onActivityCreated()
之前被调用?
没有
onActivityCreated()
首先被调用。 onSizeChanged()
、onLayout()
和 onDraw()
稍后调用。 “view hierarchy instantiated”文档的意思是创建了视图(调用了它们各自的构造函数),您可以使用 findViewById()
来获取对视图的引用.仅此而已。
这有什么意义?那么,这意味着您无法获取 onActivityCreated()
中视图的 width
或 height
。它只是 return 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()