Android弹性布局(FlexboxLayout)
FlexboxLayout是属于CSS的一种布局方案,可以简单、完整、响应式的实现各种页面布局。
也可以理解是一个LinearLayout,不过这个的子view具备自动换行而已。
惯例 先上效果图:
GIF 展示的只是FlexboxLayout的一小部分,具体的还需要看大家需求。
具体使用方法:
1 在app gradle 里面添加
compile 'com.google.android:flexbox:0.3.0'
2.使用方法:
1 在xml中直接使用和添加子控件
上面说了FlexboxLayout就想LinearLayout。所以我们可以自己把控件添加在flexboxlayout里面
如下:
这样的textview 你想添加多少就添加多少。
2.在代码中去添加
因为Flexboxlayout 不支持子view回收,当数据过多的时候就不太友好。
不过还好Flexboxlayout支持和recyclerview一起使用。如下
3 和Recyclerview一起使用 (FlexboxLayoutManager)
这个若是放图片的话,就可以和recyclerView的流式布局差不多了。
流式布局需要设置每组几个,这个却不需要,更智能。
3种方法。效果就是开始看到的。当然还有其他展现形式,可以自己拿api去尝试。
下面是关于FlexboxLayout中使用的一些参赛说明
flexWrap
属性表示换行与否,默认为noWrap,表示不换行,wrap表示自动换行,还有一个wrap_reverse 表示副轴反转。
flexDirection 表示子元素的排列方向,元素的排列方向为主轴的方向
alignContent 表示控件在副轴上的对齐方向(针对多行元素),默认值为stretch,表示占满整个副轴
alignItems 也是描述元素在副轴上的对齐方向(针对单行)
另外这是一个小Demo 就不传源码了,附上其他代码
数据 和 viewholder
adapter
基本就是这些了
最后附上flexbox-layout的源码
地址:https://github.com/google/flexbox-layout。