View的工作原理 理解MeasureSpec

来源:互联网 发布:mysql 默认是什么join 编辑:程序博客网 时间:2024/04/30 11:30
View的工作原理  理解MeasureSpec
一、
1.MesureSpec 测量规格的意思,决定了View的测量过程。
2.在测量过程还受父容器的影响
3.在测试过程中,系统会将View的LayoutParams根据父容器所施加的规则转换成对应的MesureSpec,
然后再根据这个measureSpec来测量出View的宽/高。
4.这里的宽/高是测量宽/高,不一定等于View的最终宽/高

二、SpecMode有三类

UNSPECIFIFD
父容器不对View有任何限制,要多大给多大,这种情况一般用于系统内部,表示一种测量的状态

EXACTLY 恰好的
父容器已经检测出View所需要的精确大小,这个时候View的最终大小就是SpecSize所指定的值,
它对应LayoutParams中的match_parent          和             具体的数值这两种模式

AT_MOST
父容器指定了一个可用大小即 SpecSize,View的大小不能大于这个值,
它对应LayoutParms中的wrap_content

三、
1.普通的View,其MeasureSpec由父容器的MeasureSpec和自身的LayoutParms来共同决定

2.当View的宽/高是match_parent时,
  如果父容器是精准模式,那么View也是精准模式并且其大小是父容器的剩余空间
  如果父容器是最大模式,那么View也是最大模式并且其大小不会超过父容器的剩余空间

  当View断点宽/高是wrap_content时
  不管父容器的模式是精准还是最大化,View的模式总是最大化,并且大小不能超过父容器的剩余空间
 

原创粉丝点击