和自定义View一样ViewGroup的自定义也分成测量和绘制两个部分:

ViewGroup 的测量:

在ViewGroup大小设置为wrap_content 的时候,ViewGroup就需要知道子View的大小,从而确定自己的大小。获得子View的大小是通过遍历子View调用子View的Measure方法来实现的。
和自定义View不同的是自定义ViewGroup最重要的任务就是确定如何放置子View,这个就是View的Layout过程。Layout过程是通过遍历来来调用子View的Layout方法,并指定其具体显示的位置,从而来决定其布局位置。这个工作是在onLayout方法中完成的。
所以在自定义ViewGroup的时候一般都会去覆写onLayout方法。

总而言之,言而总之:
一般都会覆写onLayout方法,并覆写onMeasure方法,因为很少布局不支持wrap_content属性。

ViewGroup 的绘制:

在ViewGroup本身没有什么内容可以绘制的,它只是一个容器,要呈现的内容都是由其子类来提供的,在ViewGroup中会调用dispachDraw方法来绘制子View。

Contents
  1. 1. ViewGroup 的测量:
  2. 2. ViewGroup 的绘制: