安卓自定义控件之自动换行ViewGroup

时间:2023-01-27 06:07:18

安卓自定义控件之自动换行ViewGroup

目标:

安卓自定义控件之自动换行ViewGroup

需求:

1、内部样式可变

2、内部内容不用对齐,但是需要自动换行

实现思路:

其实思路挺简单的,就是需要重新去自定义一个ViewGroup。在

在onMeasure中根据添加的子view去测绘每一个子view的宽高,然后确定整个父ViewGroup的长宽,然后再设置给父控件。

在onLayout中根据子view需要的位置重新给子view进行位置排布。

整体就只需要重写这两个地方。

功能实现:

1、  在Onmeasure中根据子空间对父控件需要的位置进行测绘:

安卓自定义控件之自动换行ViewGroup

安卓自定义控件之自动换行ViewGroup

安卓自定义控件之自动换行ViewGroup

这里注意两种情况,一种是:子view的宽度累加量没有超过父控件的宽度。另外一种是:子view的宽度累加量超过了父控件的宽度。

2、在onlayout中为子空间进行排版

安卓自定义控件之自动换行ViewGroup

安卓自定义控件之自动换行ViewGroup

这里还是需要讨论两种情况,一种是:子view的宽度累加量没有超过父控件的宽度。另外一种是:子view的宽度累加量超过了父控件的宽度。

使用

安卓自定义控件之自动换行ViewGroup

安卓自定义控件之自动换行ViewGroup

因为,子view的样式各异,所以我们需要独自定义。而我们自定义的父控件仅仅是帮忙换行用的。