在Android开发中,自定义view估计大家不陌生,也是大家最头疼的事,如果想学好自定义view,得需要花费一定的时间和精力,在开发中,我们除了自定义view,还有另外一个知识点,自定义viewGroup,下面是我学习自定义viewGroup的一些看法和理解
什么是自定义viewGroup
自定义viewGroup我们可以简单理解为自定义layout,相信LinearLayout,RelativeLayout等大家都不陌生,当在开发之中这些原生的layout不能满足我们需求的时候,我们就需要自定义layout去实现了
viewGroup和view的差别
自定义view是针对某一个view去实现,而viewGroup是一个布局,它里面可以包含view,在自定义viewGroup中,我们需要针对不同的view来进行合理的排列
viewGroup需要用到什么方法
在自定义viewGroup中,它比自定义view的实现多了一个onLayout方法,该方法决定了它的子view的排放,其他的方法跟自定义view一样,onMeasure,onDraw,但是,它的使用方式跟自定义view有所不同,下面我们来看看怎么不一样
onMeasure
这个方法主要是测量,它跟自定义view的测量方式有所差别,自定义view主要是测量本身的宽高,而它则需要测量子view的宽高,在根据子view的宽高来确定layout的宽高,很容易理解,因为viewGroup是一个布局,它可以包含很多个子view,那么它的宽高自然是有子view的宽高总和来决定
onLayout
这个方法主要是确定子view在viewGroup中的位置,它决定了子view在viewGroup中的定位,我们来看看它的方法:
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {}
第一个参数是判断子view是否有改变,第二个参数到最后一个参数分别是:左,右,上,下,表示子view的位置
onDraw
这个方法就比较简单,主要将viewGroup绘制到画布上
好了,简单的介绍下自定义viewGroup,下篇通过个简单的例子来试试