美文网首页优秀案例
Android随笔——搞定流动布局(FlexboxLayout)

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

作者: QuincySx | 来源:发表于2017-07-26 17:29 被阅读683次

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


    简介

    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:遇上一个属性类似,差别在第一个控件,与最后一个控件是贴在父容器边上的

    相关文章

      网友评论

        本文标题:Android随笔——搞定流动布局(FlexboxLayout)

        本文链接:https://www.haomeiwen.com/subject/vuqekxtx.html