AndroidUI_布局_MeasureSpec

1. MeasureSpec

子控件通过MeasureSpec获取父控件的measure信息
MeasureSpec封装内容{mode,size}

1.mode的三种类型

类型说明
UNSPECIFIED不对View大小做限制
EXACTLY定值
AT_MOST大小不可超过某数值

2.控件如何获取MeasureSpec

父控件调用控件的View.measure(widthMeasureSpec, heightMeasureSpec)传递

1.当子控件是宽/高是定值,子控件的宽高与父控件无关,它的MeasureSpec是{EXACTLY, 定值}
2.当子控件是宽/高是MATCH_PARENT,子控件的宽高同父控件,子控件的MeasureSpec的mode同父控件,MeasureSpec的size为父控件的宽/高
3.当子控件是宽/高是WRAP_CONTENT,子控件的宽高与父控件相关,子控件的宽/高不能超过父控件的宽高,只有在父控件的mode是EXACTLY时,子控件与父控件的MeasureSpec的mode不同,子控件的mode是AT_MOST,MeasureSpec的size为父控件的宽/高

lp.width/lp.height\parentMeasueSepcEXACTLY/sizeAT_MOST/sizeUNSPECIFIED/size
MATCH_PARENTEXACTLY/(size-padding)AT_MOST/(size-padding)UNSPECIFIED/(size-padding)
WRAP_CONTENTAT_MOST/(size-padding)AT_MOST/(size-padding)UNSPECIFIED/(size-padding)
定值EXACTLY/定值EXACTLY/定值EXACTLY/定值

3.相关代码

1.ViewGroup.getChildMeasureSpec

 public static int getChildMeasureSpec(int spec, int padding, int childDimension) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值