Android开发进阶自定义viewAndroid View

Android自定义View实现流式布局(热门标签效果)

2016-10-07  本文已影响9017人  笑说余生

个人主页
演示Demo下载


效果图

实现效果图

思维导图

思维导图

一、流式布局的实现

实现原理:采用面向对象思想将整个布局分为很多行的对象,每个行对象管理自己行内的孩子,这里通过集合来管理。

1. 内部类Line的实现

1.1 定义行的基本属性
1.2 addView(View view)方法实现
1.3 canAddView(View view)方法实现

2. 对容器进行测量(onMeasure方法的实现)

2.1 获取宽度,计算maxWidth,构造传入Line
2.2 循环获取孩子进行测量

2.3 测量自己

3. 指定孩子的显示位置(onLayout方法的实现)

实现思路:指定孩子的位置,孩子给了行管理,所以这里具体孩子的位置应该交给行去指定。容器只需要指定行的位置就可以。

4. Line中layout方法的实现(指定孩子的位置)

5. 细节处理

6. 使用自定义属性,将水平间距和竖直间距做成属性,在布局中指定,增强扩展性

经过以上步骤之后,FlowLayout基本就已经实现了,接下来就是使用了。

二、流式布局的使用


个人主页
演示Demo下载

以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。如果你觉得学到了东西,请在Github给个赞,谢谢。
上一篇 下一篇

猜你喜欢

热点阅读