首页 > 其他 > 详细

自定义View系统总结之MeasureSpec

时间:2018-12-15 19:30:24      阅读:143      评论:0      收藏:0      [点我收藏+]

  在测量过程中,系统会将View的LayoutParams根据父容器所施加的规则转换成对应的MeasureSpec,然后再根据这个mesureSpec来测量出View的宽/高。

MeasureSpec代表一个32位int值,高2位代表SpecMode(测量模式),低30位代表SepcSize(指在某种测量模式下的规格大小)。

SpecMode有三类:

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

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

AT_MOST:父容器指定了一个可用大小即SpecSize,View的大小不能大于这个值,具体是什么值要看不同View的具体实现。它对应于LayoutParams中的wrap_content。

自定义View系统总结之MeasureSpec

原文:https://www.cnblogs.com/kyun/p/10124198.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!