Android开发艺术探索笔记(11),kotlin枚举

这里写图片描述

代码中看出我们只需给View设置默认的宽/高(mWidht/mHeight)就行。

2. ViewGroup的measure过程

ViewGroup不仅要完成自身的measure还要去遍历子元素的measure方法。ViewGroup是一个抽象类,不会重写View的onMeasure,但它提供一个measureChildren的方法,这里面去对每个子View进行measure,调用measureChild方法

这里写图片描述

上述方法就是取出子View的LayoutParams,然后通过getChildMeasureSpec来创建子元素的MeasureSpec,接着给子View传入MeasureSpec。

ViewGroup自身的onMeasure各个子类去具体实现。为什么不把每个ViewGroup都统一的onMeasure呢?因为不同的ViewGroup实现细节有很多不同,比如LinearLayout和RelativeLayout就有很多不同。

这里我们做个任务,就是在Activity启动时去获取一个View的宽/高。难处是Activity在启动时onCreate、onStart、onResume中均无法获取View宽/高,不知道measure在什么时候执行完毕,如果没有测完获得的宽高就是0,这里给出四种方法来解决:

(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值