我正在学习自定义组件,我发现方法view
的{{1}}和viewgroup
有所不同。例如,有人调用onMeasure()
,有人使用最后super.onMeasure
。差异在哪里?而setMeasuredDimension
意味着什么?
这是我第一次来到这个社区,希望得到我想要的答案,谢谢。
答案 0 :(得分:0)
super.onMeasure()
当您想要将自定义组件的测量值保留为要扩展的超类时,可以使用此选项。例如,假设您正在为多色文本构建自定义TextView。您真的不想覆盖TextView的onMeasure()
实现,因为您没有处理文本的宽度和高度。因此,您可以致电super.onMeasure()
并将测量结果保留为TextView
。
setMeasuredDimension()
如果您必须覆盖onMeasure()
,则使用setMeasuredDimension()
告诉android视图渲染系统最终计算的自定义视图的宽度和高度。视图系统将使用它来渲染视图。
measureChildren() 它告诉孩子这个
ViewGroup
使用给定的MeasureSpec
来衡量自己。
非常好的讨论here。