标签:android
在api中是这么描述ViewGroup的:A ViewGroup is a special view that can contain other views. 根据意思我们可以明白,在ViewGroup中可以包含其他UI控件,包括我们的自定义控件
我们了解UI控件最大的目的是使用它。而要了解控件,必须明白该控件的优点。ViewGroup在Android的UI控件中相对复杂,它的自定义程度很高,借助declare-styleable自定义控件属性,几乎控件的各个方便都可以控制到。
了解到这些优点之后,你会想到哪里有ViewGroup的用武之地呢?考虑考虑,我会在文章最后说说我的理解。
ViewGroup中有两个及其重要的回调方法
Ask all children to measure themselves and compute the measurement of this layout based on the children.
Position all children within this layout.
以上是api中对两个方法的解释,真实使用中onMeasure和onLayout都可能被调用多次,根据log我们会发现onLayout都是在onMeasure之后才调用,这也证实了api的说法,ViewGroup在绘图之前先把数值算好,然后根据对应的值把控件绘制到相对应的地方。
这个方法在这里单独拿出来说一下,在onMeasure方法中计算控件存放位置时,我们会用到getMeasuredWidth()和getMeasuredHeight(),这里得到的值包括padding,不包括margin,在计算的时候要注意
标签:android
原文地址:http://blog.csdn.net/vic_fang/article/details/39961723