在 Android 中,UI 绘制的过程涉及到三个关键步骤:Measure(测量)、Layout(布局)和Draw(绘制),这些步骤协同工作以完成视图的最终显示。
1. Measure(测量)
测量阶段是确定每个视图(View)的大小(宽度和高度)的过程。
-
触发时机:
- 当一个视图被添加到视图层次结构中时,或者当视图的大小发生变化时(如窗口大小变化、布局变化等),测量过程会被触发。
-
调用顺序:
- 系统会自顶向下遍历视图树,调用每个视图的
measure()方法。 - 在
measure()方法中,视图会根据父容器传递的测量要求(MeasureSpec),计算出自身的尺寸大小。
- 系统会自顶向下遍历视图树,调用每个视图的
-
MeasureSpec:
- 在测量过程中,每个视图会根据父容器传递的
MeasureSpec来计算自身的大小。 MeasureSpec包含了两部分信息:大小(Size)和测量模式(Mode)。- 测量模式包括三种类型:UNSPECIFIED、EXACTLY 和 AT_MOST,分别表示未指定模式、精确模式和最大模式。
- 在测量过程中,每个视图会根据父容器传递的
2. Layout(布局)
布局阶段是确定每个视图在父容器中的位置(左上角的坐标)和大小的过程。
-
触发时机:
- 当视图的大小发生变化或者布局结构发生改变时,布局过程会被触发。
- 系统会调用每个视图的

最低0.47元/天 解锁文章
1184

被折叠的 条评论
为什么被折叠?



