最近产品需要实现自动换行功能,在gitHub看了一下,虽然有不少,但都有那么一点不满足需求的,或者感觉用着不方便的。所以干脆自己写了一份,顺便有时间写了一份ios的版本,有兴趣的可点击上面链接。
在这里先提供下载地址:https://github.com/lanqi-x/flowLayout
然后来个图先:
实现概要思路为1、继承ViewGroup,实现对子view进行布局,不进行其他处理,不跟业务挂钩,以保证其灵活性。2、支持adapter方式,仿recycleview的adapter,使用观察者模式。(需要注意的是,1该控件并未实现子view的复用,2不建议同时使用adapter和自己在代码中直接调用addView)
实现该控件,我写了三个类,分别为FlowLayout、FlowAdapter和FlowDataSetObserver,这里按照简易度,简单的介绍下。(如想只看FlowLayout的实现可点击这里)
1、FlowDataSetObserver
先贴下代码:
public void onChanged() {
// Do nothing
}
public void onItemRangeChanged(int positionStart, int itemCount) {
// do nothing
}
public void onItemRangeInserted(int positionStart, int itemCount) {
// do nothing
}
public void onItemRangeRemoved(int