这期是 HenCoder 布局部分的第二期:重写 onMeasure() 来全新定制自定义 View 的尺寸。
简介
这期虽然距离上期的时间比较久,但主要是我的个人原因,而不是因为这期的内容难。这期的内容还是比较简单的,主要是一些概念和原理上的东西,实操方面非常容易,所以和上期一样,主要把视频看看就差不多啦:
总结
和上期一样,这期同样是视频之后就直接是总结。
因为关键点全都在视频里讲清楚了,所以这里只总结一下视频中的关键点:
全新定制尺寸和修改尺寸的最重要区别
需要在计算的同时,保证计算结果满足父 View 给出的的尺寸限制
父 View 的尺寸限制
- 由来:开发者的要求(布局文件中
layout_
打头的属性)经过父 View 处理计算后的更精确的要求; - 限制的分类:
UNSPECIFIED
:不限制AT_MOST
:限制上限EXACTLY
:限制固定值
全新定义自定义 View 尺寸的方式
- 重新
onMeasure()
,并计算出 View 的尺寸; - 使用
resolveSize()
来让子 View 的计算结果符合父 View 的限制(当然,如果你想用自己的方式来满足父 View 的限制也行。
练习项目
没有练习项目。
最近我的工作状态一直很不好,现在也还没有完全恢复,所以各位,这次就没有练习项目了。
下期预告
下期是布局部分的最后一期:重写 onMeasure()
和 onLayout()
来定制 ViewGroup
的内部布局。