自定义View中MeasureSpec和LayoutParams
2018-11-07 本文已影响0人
Android_小马范儿
对于View是由屏幕和LayoutParams控制
- 如果LayoutParams是Match_parent,那么是MeasureSpec.EXACTLY
- 如果LayoutParams是具体的dp,那么是MeasureSpec.EXACTLY
- 如果LayoutParams是wrap_content,那么是MeasureSpec.AT_MOST
对于子View是由ParentSpecMode和子View的LayoutParmas控制
总结图如下:

-
如果ParentSpecMode是MeasureSpec.EXACTLY,子View的LayoutParams是Match_parent或者具体的dp,那么是MeasureSpec.EXACTLY
-
如果ParentSpecMode是MeasureSpec.EXACTLY,子View的LayoutParams是wrap_content,那么是MeasureSpec.AT_MOST
-
如果ParentSpecMode是MeasureSpec.AT_MOST,子View的LayoutParams是具体的dp,那么是MeasureSpec.EXACTLY
-
如果ParentSpecMode是MeasureSpec.AT_MOST,子View的LayoutParams是wrap_content或者match_parent,那么是MeasureSpec.AT_MOST
-
如果ParentSpecMode是MeasureSpec.UNSPECIFIED,子View的LayoutParams是具体的dp,那么是MeasureSpec.EXACTLY
-
如果ParentSpecMode是MeasureSpec.UNSPECIFIED,子View的LayoutParams是wrap_content或者match_parent,那么是MeasureSpec.UNSPECIFIED