FlexboxLayout是库项目带来的类似功能的 CSS弹性框布局模块到Android。
安装
添加下面的依赖关系到你的build.gradle
文件中:
dependencies {
compile 'com.google.android:flexbox:0.2.5'
}
用法
FlexboxLayout扩展了ViewGroup,如LinearLayout和RelativeLayout。您可以从布局XML中指定属性,如:
< com .google.android.flexbox.FlexboxLayout
xmlns : android = " http://schemas.android.com/apk/res/android "
xmlns : app = " http://schemas.android.com/apk/res- auto "
android : layout_width = " match_parent "
android : layout_height = " match_parent "
app : flexWrap = " wrap "
app : alignItems = " stretch "
app : alignContent = " stretch " >
< TextView
android : id = " @+id/textview1 "
android : layout_width = " 120dp "
android : layout_height = " 80dp "
app : layout_flexBasisPercent = " 50% "
/>
< TextView
android : id = " @+id/textview2 "
android : layout_width = " 80dp "
android : layout_height = " 80dp "
app : layout_alignSelf = " center "
/>
< TextView
android : id = " @+id/textview3 "
android : layout_width = " 160dp "
android : layout_height = " 80dp "
app : layout_alignSelf = " flex_end "
/>
</ com .google.android.flexbox.FlexboxLayout>
或从代码如:
FlexboxLayout flexboxLayout = ( FlexboxLayout ) findViewById( R . id . flexbox_layout);
flexboxLayout . setFlexDirection( FlexboxLayout . FLEX_DIRECTION_COLUMN ); View view = flexboxLayout . getChildAt( 0 );
FlexboxLayout . LayoutParams lp = ( FlexboxLayout . LayoutParams ) view . getLayoutParams();
lp . order = - 1 ;
lp . flexGrow = 2 ;
view . setLayoutParams(lp);
支持的属性
FlexboxLayout的属性:
-
flexDirection
-
此属性确定主轴(和横轴,垂直于主轴)的方向。子项目放置在Flexbox布局内的方向。可能的值有:
- 行(默认)
- row_reverse
- 柱
- column_reverse
-
-
flexWrap
-
此属性控制flex容器是单行还是多行,以及横轴的方向。可能的值有:
- nowrap(默认)
- 包
- wrap_reverse
-
-
justifyContent
-
此属性控制沿主轴的对齐。可能的值有:
- flex_start(默认)
- flex_end
- 中央
- space_between
- space_around
-
-
alignItems
-
此属性控制沿横轴的对齐。可能的值有:
- 拉伸(默认)
- flex_start
- flex_end
- 中央
- 基线
-
-
alignContent
-
此属性控制flex容器中的flex线的对齐。可能的值有:
- 拉伸(默认)
- flex_start
- flex_end
- 中央
- space_between
- space_around
-
-
showDividerHorizontal(一个或多个
none | beginning | middle | end
) -
dividerDrawableHorizontal(参照绘)
-
提出弯曲线(或当flexDirection设置为柔性项目之间的水平分隔线
column
或column_rebase
)。
-
提出弯曲线(或当flexDirection设置为柔性项目之间的水平分隔线
-
showDividerVertical(一个或多个
none | beginning | middle | end
) -
dividerDrawableVertical(参照绘)
-
提出柔性物品(或当flexDirection设置为弯曲线之间的垂直分隔
column
或column_rebase
)。
-
提出柔性物品(或当flexDirection设置为弯曲线之间的垂直分隔
-
showDivider(一个或多个
none | beginning | middle | end
) -
dividerDrawable(参照绘)
-
用于设置水平和垂直分频器的速度。请注意,如果与其他属性(如使用
justifyContent="space_around"
或alignContent="space_between"
...等),用于将弯曲线或柔性项目之间的空间,你可能会看到意想不到的空间。请避免同时使用这些。
放置垂直和水平分隔线的示例。
res/drawable/divider.xml
< shape xmlns : android = " http://schemas.android.com/apk/res/android " > < size android : width = " 8dp " android : height = " 12dp " /> < solid android : color = " # 44A444 " /> </ shape >
res/layout/content_main.xml
< com .google.android.flexbox.FlexboxLayout xmlns : android = " http://schemas.android.com/apk/res/android " xmlns : app = " http://schemas.android.com/apk/res- auto " android : layout_width = " match_parent " android : layout_height = " match_parent " app : alignContent = " flex_start " app : alignItems = " flex_start " app : flexWrap = " wrap " app : showDivider = " beginning|middle " app : dividerDrawable = " @drawable/divider " > < TextView style = " @style/FlexItem " android : layout_width = " 220dp " android : layout_height = " 80dp " android : text = " 1 " /> < TextView style = " @style/FlexItem " android : layout_width = " 120dp " android : layout_height = " 80dp " android : text = " 2 " /> < TextView style = " @style/FlexItem " android : layout_width = " 160dp " android : layout_height = " 80dp " android : text = " 3 " /> < TextView style = " @style/FlexItem " android : layout_width = " 80dp " android : layout_height = " 80dp " android : text = cambrian.render('body') 上一篇:Android流式布局,支持单选、多选等,适合用于产品标签等。
下一篇:Android TabLayout Lib的3种TabLayout-
Android 网格分页布局PagerLayoutManager
PagerLayoutManager 具有分页功能的 Recyclerview 布局管理器,主打分页,可以替代部分场景下的网格布局,线性布局,以及一些简单的ViewPager,但也有一定的局限性,并不能适用于所有场景,请选择性使用。 另外,该库并不是特别完善,欢迎提交 Issues 或者 P
-
Android开发通用圆角布局
RCLayout(圆角布局) Android 通用圆角布局,快速实现圆角需求。 之前做项目的时候有圆角相关需求,在网上找了很多方案都不够满意,于是自己做了一个,目前已经使用了一段时间,更新了多个版本,我遇到的问题都进行了修复,并且添加了很多方便的可配置属性,
-
Android多功能的标签流布局
多功能的标签流布局 截图 不同标签形状: 标签单选和多选模式: 标签编辑模式: 标签换一换模式: 单个标签的其它用法: 依赖 需要你在项目的根 build.gradle 加入如下JitPack仓库链接: 所有项目 {存储库{ .. 。行家{URL https://jitpack.io }}} 接着在你的
-
一个包括拖拽、滚动、动画、背景模糊功能的安卓UI布局
这是一个辅助开发的UI库,适用于某些特殊场景,如固定范围拖拽、动画、背景模糊效果等。 直接看下效果图会直观点。 Screenshot Drag模式 ,能够拖拽指定的 View,并能和 ViewPager 进行联动,实现拖拽和 ScrollView 的平滑滚动,带有坠落回弹效果: Animate
-
Android流式布局,支持单选、多选等,适合用于产品标签等。
FlowLayout Android流式布局,支持单
- 导航条代码
- 电子书籍
- 源码天空
- 公司网站源码
- 第三方支付源码
- 网站模板
- 网页之家
- 模版
- html代码大全
- 电影网站源码
- 网页框架
- php教程下载
- php网站
- 个人网站模板下载
- 网站模板下载
- 网页模版
- 个人简历网页模板
- 网页制作代码
- 模板之家
- 在线客服源码
- 源码分享
- 网站下载
- 免费下载
- 中国源码
- 个人主页源码
- 网络编程技术
- html个人主页模板
- 网站源代码
- 源码中国
- 源码大全
- discuz下载
- 外贸网站源码
- 后台管理系统模板
- 网页作业
- 网站右下角广告
- ppvod
- PHP源码
- php论坛
- 企业网站源码
- 免费论坛
- 源码站
- 源代码 在线
- 网站后台管理模板
- 网站模版
- 安卓源码
- 个人网页设计模板
- 整站模板
- asp 源代码
- 电影网站程序
- 建站代码
-
用于设置水平和垂直分频器的速度。请注意,如果与其他属性(如使用