android - 是在 onActivityCreated() 之前还是之后调用 onDraw()?

标签 android android-fragments android-canvas android-view ondraw

我正在膨胀 onCreateView() 中的布局我的 fragment 。此布局包含自定义 View 。现在documentationonActivityCreated()说它是“在创建 fragment 的 Activity 并且实例化该 fragment 的 View 层次结构时调用”。这意味着布局是膨胀的,并且布局中的 View 是在 onActivityCreated() 之前创建的。 .

这是否意味着 View 的 onLayout() , onSizeChanged()onDraw()方法在 onActivityCreated() 之前调用?

最佳答案


onActivityCreated()被首先调用。 onSizeChanged() , onLayout()onDraw()稍后调用。 “实例化 View 层次结构”的文档意味着创建 View (调用它们各自的构造函数),您可以使用 findViewById()获得对意见的引用。仅此而已。

这有什么意义?好吧,这意味着您无法获得 widthheight 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/

相关文章:

Android - 如何直接转到返回堆栈中的上一个 Activity 并忽略 fragment 返回堆栈或当前 Activity 中的剩余 fragment ?

java - 移动手指时看不到路径

java - 沿 Canvas 上的路径绘制位图

java - 用于日历 View 的 GridView

android - 将项目从Eclipse导入Android Studio时在gradle中使用Flavors

android - 返回 ViewPager,我的 GoogleMap fragment 不可见

android - 在暗弧顶部绘制亮弧使下弧部分可见

java - 从其他 Activity 接收数据 ArrayList [Java]

android - 工具栏在 TabLayout 上投下阴影

android - 在 Fragments 之前使用什么?