Android随笔——搞定流动布局(FlexboxLayout)

转载请标明地址 QuincySx:[www.jianshu.com/p/fbeb3808a…]


简介

FlexboxLayout 是 Google 推出的一个布局,它的作用就和 LinearLayout 相似,如果只是功能相似的话,那个谷歌就没有推出他的必要性了,他是一个聪明的布局,他和LinearLayout最大的区别就是能够换行,并且可以和 RecyclerView 无缝使用,今天我们就一点点的来介绍一下这个布局

使用方式

  1. 添加依赖 compile 'com.google.android:flexbox:0.3.0'

2.在布局中使用

<com.google.android.flexbox.FlexboxLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
</com.google.android.flexbox.FlexboxLayout>
复制代码

这个布局的最新版本、用法大家可以去 Github 上去看,点这里

注: 0.3.0 或以上版本才可以与 RecyclerView 配合使用

主要的几个属性

flexDirection 属性

这个属性的作用就和 LinearLayoutorientation 属性类似,用来控制视图显示是横向还是竖向 row:默认值 表示横向排列 row_reverse:表示横向排列,但是是从右往左排 column:表示竖向排列 column_reverse:表示竖向排列,从下到上排列

flexWrap 属性

这个属性是表示换不换行,因为这个控件默认是不会换行的 nowrap:默认值 不会换行 wrap:换行 wrap:换行,但是排列顺序是反的

alignItems 属性

这是属性是表示各个 View 的对齐方式,这个控件默认的对齐方式是 View 高或宽是一样的,怎讲呢,如果你的排列方式是横向的,那么每个子控件的宽都是一样宽的,但是你的排列方式是竖向的,那么每个子控件的高是相同的 stretch:默认值 表示子控件的高或宽相同 flex_start:左对齐/上对齐 这里它是根据 flexDirection 属性的值不同会有响应变化 flex_end:右对齐/下对齐 center:根据中线居中对齐 baseline:根据内容对齐,和 ConstraintLayout 里面那个对齐有一点类似的意思

justifyContent 属性

这个属性是表示在主轴上的排列方式,再控件无法排列满整个布局时 flex_start:默认值 整体控件都连在一起排列在上方,或下方 center:控件都连在一起,居中排列 flex_end:整体控件都连在一起排列在上方,或下方 space_around:控件都分散开排列,第一个控件,与最后一个控件与父容器有间隔 space_between:遇上一个属性类似,差别在第一个控件,与最后一个控件是贴在父容器边上的

alignContent 属性

此属性与上一个属性是类似的,当开启了换行,由于显示了多行主轴就可能发生了变化,所以效果也会产生变换,当前这个属性就是针对多轴的情况而使用的属性 flex_start:默认值 整体控件都连在一起排列在上方,或下方 center:控件都连在一起,居中排列 flex_end:整体控件都连在一起排列在上方,或下方 space_around:控件都分散开排列,第一个控件,与最后一个控件与父容器有间隔 space_between:遇上一个属性类似,差别在第一个控件,与最后一个控件是贴在父容器边上的

猜你喜欢

转载自juejin.im/post/5c974833e51d454c693bdcb8
今日推荐