View的工作原理 理解MeasureSpec

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的模式总是最大化,并且大小不能超过父容器的剩余空间
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序邦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值