
背景介绍
目前坐标福州,已经从云南回到福州了,上一个项目基本宣告失败。第一次创业机会因为云南的整体环境,以及合伙人的对于整个市场的过分乐观,导致项目最终黄掉。
目前在福州和朋友再次尝试创业,这次是在确定了有前期市场以及合作方提供稳定渠道的情况下,加上我合作的三个小伙伴,还有一个在温州的老板,我们再次扬帆起航。
RecycleView 上使用Flex布局,达成类似前端flex布局的效果
前段时间在偶然的情况下,接触了谷歌的一个开放出来的RecycleView的布局管理,相对于已有的集成在SDK中的布局管理,这个库是单独被谷歌开放出来供给开发者使用。
我们常用的就两种,一种 LinearLayoutManager ,另一种是 GridLayoutManager 。其中LinearLayoutManager 这个布局管理者,能够支持横向和纵向的排列。
上面的两种应该都很好理解,用过的都知道,就不需要画图了。下面开始通过画图的方式来介绍这个FlexboxLayoutManager。
横向和纵向:
主轴走向,说的是每个单项的主要轴方向,是横向的排列还是纵向的排列:

在确定了主轴方向之后,就有了接下来的几种分布区别:
- FLEX_START 从主轴的方向开始,对齐主轴的方向起点。

- FLEX_END从主轴的方向开始,对齐主轴的方向终点。

- CENTER 沿着主轴方向的居中对齐

- SPACE_BETWEEN 沿着主轴方向,左右端对齐,中间间隙均匀分布

- SPACE_AROUND 沿着主轴,所有的子项目从左到右的之间的左右间隔都相等

- SPACEEVENLY和上一个SPACE_AROUND 基本没有区别
今天就涉及到一个需求,在一个横向的给定的一定空间内,能够将有限数量的子item进行均匀的分布,我使用的是SPACE_BETWEEN这个功能,横向排列,左右对齐,中间的子元素都能够均匀的排布。
使用这种方式,相比以前的使用LinearLayout的布局,然后设置权重的方式来的要简单和效率很多,能够快速的开发出相同的功能效果,非常的方便,建议后期都使用这种RecycleView + flexble的布局方式,来实现类似的需求。
以上的几个选项主要针对的是主轴方向上的分布设置。还可以进行复轴上的方向分布设置。
最后忘记一件事了,使用FlexboxLayoutManager需要将库进行导入
在项目的app目录下的build.gradle文件中添加如下的代码:
dependencies {
implementation 'com.google.android:flexbox:2.0.1'
}