onMeasure()方法的视图和视图组之间有什么区别?

时间:2016-07-05 07:43:00

标签: android android-custom-view viewgroup onmeasure

我正在学习自定义组件,我发现方法view的{​​{1}}和viewgroup有所不同。例如,有人调用onMeasure(),有人使用最后super.onMeasure。差异在哪里?而setMeasuredDimension意味着什么?

这是我第一次来到这个社区,希望得到我想要的答案,谢谢。

1 个答案:

答案 0 :(得分:0)

  

super.onMeasure()

当您想要将自定义组件的测量值保留为要扩展的超类时,可以使用此选项。例如,假设您正在为多色文本构建自定义TextView。您真的不想覆盖TextView的onMeasure()实现,因为您没有处理文本的宽度和高度。因此,您可以致电super.onMeasure()并将测量结果保留为TextView

  

setMeasuredDimension()

如果您必须覆盖onMeasure(),则使用setMeasuredDimension()告诉android视图渲染系统最终计算的自定义视图的宽度和高度。视图系统将使用它来渲染视图。

  

measureChildren()   它告诉孩子这个ViewGroup使用给定的MeasureSpec来衡量自己。

非常好的讨论here