安卓自定义控件之自动换行ViewGroup
目标:
需求:
1、内部样式可变
2、内部内容不用对齐,但是需要自动换行
实现思路:
其实思路挺简单的,就是需要重新去自定义一个ViewGroup。在
在onMeasure中根据添加的子view去测绘每一个子view的宽高,然后确定整个父ViewGroup的长宽,然后再设置给父控件。
在onLayout中根据子view需要的位置重新给子view进行位置排布。
整体就只需要重写这两个地方。
功能实现:
1、 在Onmeasure中根据子空间对父控件需要的位置进行测绘:
这里注意两种情况,一种是:子view的宽度累加量没有超过父控件的宽度。另外一种是:子view的宽度累加量超过了父控件的宽度。
2、在onlayout中为子空间进行排版
这里还是需要讨论两种情况,一种是:子view的宽度累加量没有超过父控件的宽度。另外一种是:子view的宽度累加量超过了父控件的宽度。
使用
因为,子view的样式各异,所以我们需要独自定义。而我们自定义的父控件仅仅是帮忙换行用的。