Android常用开源项目(四十一)

时间:2021-11-07 05:25:23

Android弹性布局(FlexboxLayout)


FlexboxLayout是属于CSS的一种布局方案,可以简单、完整、响应式的实现各种页面布局。

也可以理解是一个LinearLayout,不过这个的子view具备自动换行而已。

惯例 先上效果图:

Android常用开源项目(四十一)

GIF 展示的只是FlexboxLayout的一小部分,具体的还需要看大家需求。

具体使用方法:

1 在app gradle 里面添加

compile 'com.google.android:flexbox:0.3.0'

2.使用方法:

1 在xml中直接使用和添加子控件

上面说了FlexboxLayout就想LinearLayout。所以我们可以自己把控件添加在flexboxlayout里面

如下:

Android常用开源项目(四十一)

这样的textview 你想添加多少就添加多少。

2.在代码中去添加

Android常用开源项目(四十一)

因为Flexboxlayout 不支持子view回收,当数据过多的时候就不太友好。

不过还好Flexboxlayout支持和recyclerview一起使用。如下

3 和Recyclerview一起使用 (FlexboxLayoutManager)

Android常用开源项目(四十一)

这个若是放图片的话,就可以和recyclerView的流式布局差不多了。

流式布局需要设置每组几个,这个却不需要,更智能。

3种方法。效果就是开始看到的。当然还有其他展现形式,可以自己拿api去尝试。

下面是关于FlexboxLayout中使用的一些参赛说明

flexWrap

属性表示换行与否,默认为noWrap,表示不换行,wrap表示自动换行,还有一个wrap_reverse 表示副轴反转。

flexDirection 表示子元素的排列方向,元素的排列方向为主轴的方向

alignContent 表示控件在副轴上的对齐方向(针对多行元素),默认值为stretch,表示占满整个副轴

alignItems 也是描述元素在副轴上的对齐方向(针对单行)

另外这是一个小Demo 就不传源码了,附上其他代码

数据 和 viewholder

Android常用开源项目(四十一)

adapter

Android常用开源项目(四十一)

基本就是这些了

最后附上flexbox-layout的源码

地址:https://github.com/google/flexbox-layout。