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() 中视图的 widthheight。它只是 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()