一.图示:
ParentSpecMode ------------------------ ChildLayoutParams | EXACTLY | AT_MOST | UNSPECIFIED |
固定数值 |
EXACTLY ChildSize |
EXACTLY ChildSize |
UNSPECIFIED ChildSize |
match_parent |
EXACTLY ParentSize |
EXACTLY ParentSize |
UNSPECIFIED 0 |
wrap_content |
AT_MOST ParentSize |
AT_MOST ParentSize |
UNSPECIFIED 0 |
(1)横坐标是父布局的SpecMode(测量模式),纵坐标是子布局的LayoutParams(布局参数)。其实子布局的LayoutParams也可以看成是SpecMode,它们的对应关系如下:
固定数值------------------>MeasureSpec.EXACTLY
match_parent----------->MeasureSpec.EXACTLY
wrap_content------------>MeasureSpec.AT_MOST
(2)UNSPECIFIED这种模式一般是系统自身的测量过程才会使用,一般不需要关注这个模式。
二.快速记忆:
(1)子布局的SpecMode(测量模式)可以根据上面的LayoutParams与SpecMode对应关系来记忆即可。
(2)子布局的SpecSize(测量大小)只有在固定数值的情况下才是自身大小,其他都是父布局的大小。