3

将孩子添加到 ViewGroup(通过 ViewGroup.addView() )会自动为所有孩子调用 onMeasure() 吗?

4

1 回答 1

2

ViewGroup应该通过首先测量所有孩子来测量它的宽度和高度。如果ViewGroup的宽度或高度是 wrap_content 它肯定会要求onMeasure()所有孩子。不能这么说match_parent。可以肯定的是,将重新计算布局子级位置的调用会调用addView()所有子级。requestLayout()layout(l, t, r, b)

要确定它是否调用,您可以创建一个自定义View并记录每个调用onMeasure()并将它们添加到ViewGroup. 可能是不同的ViewGroup实现会有不同的行为。

于 2013-04-04T13:53:18.293 回答