美文网首页
Layout文档整理

Layout文档整理

作者: 卡路fly | 来源:发表于2020-04-03 15:13 被阅读0次

ConstraintLayout

【ConstraintLayout】


【Toast通知栏权限填坑指南】


【ViewPager2】


Flexbox

容器属性

flexDirection

这个属性用于确定主轴方向,可选的值有:

  • row 水平方向,起点在左边。默认值
  • row_revers 水平方向,起点在右边。
  • column 垂直方向,起点在上边。
  • column_reverse 垂直方向,起点在下边。

flexWrap

这个属性控制容器是单行还是自动换行,以及主轴的方向,可选的值有:

nowrap 单行。默认值
wrap 自动换行,第一行在上方
wrap-reverse 自动换行,第一行在下方

justifyContent

这个属性控制项目在主轴上的对齐方式,可选的值有:
注意:具体的对齐方式与主轴的方向有关,下面的说明是基于默认值

  • flex_start 左对齐,默认值
  • flex_end 右对齐
  • center 居中对齐
  • space_between 两端对齐,项目之间的间隔相等
  • space_around 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍

alignItems

这个属性定义项目在交叉轴上的对齐方式,可选的值有:
注意:具体的对齐方式与主轴的方向有关

  • stretch 占满整个容器高度,默认值
  • flex_start 交叉轴的起点对齐
  • flex_end 交叉轴的终点对齐
  • center 居中对齐
  • baseline 项目的第一行文字的基线对齐

alignContent

这个属性控制容器的多条主轴的对齐方式,这也是我们前面提到的主轴可以有多条,当flexWrap:wrap|wrapreverse。可选的值有:
注意:只有一条主轴,该属性不起作用

  • stretch 占满整个交叉轴,默认值
  • flex_start 与交叉轴的起点对齐
  • flex_end 与交叉轴的终点对齐
  • center 与交叉轴的中心对齐
  • space_between 与交叉轴两端对齐,轴线之间的间隔平均分布
  • space_around 每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍

这里需要注意区别下和alignItems的区别,alignContent是多条主轴基于交叉轴的对齐方式,而后者是项目基于交叉轴的对齐方式,一个是轴,一个是项目。

showDividerHorizontal

dividerDrawableHorizontal

showDividerVertical

dividerDrawableVertical

showDivider

dividerDrawable

这几个属性都是跟分隔符有关,具体用法可以看文档。


项目属性

layout_order(integer)

这个属性可以改变项目的排列顺序,默认值为1。

layout_flexGrow(float)

  • 这个属性定义项目基于当前行的放大比例,默认值为0。这个属性类似LinearLayout中的layout_weight属性,如果当前行只有一个项目的layout_flexGrow为正值,则该项目将占满当前行剩余的空间。

  • 如果存在多个layout_flexGrow为正值的情况,则这几个项目则会按设置的值为比例占用当前行剩余的空间

layout_flexShrink (float)

这个属性定义了项目的缩小比例,默认为1,即如果当前行空间不足,该项目缩小的方式。

如果所有项目的layout_flexShrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的layout_flexShrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

个人理解,注意:要设置flexWrap:nowrap为单行

layout_alignSelf

该属性允许单个项目与其他项目不一样的基于交叉轴的对齐方式。默认值为auto,即按照容器的alignItems属性,设置其他值,则会覆盖容器的值,可选的值:

  • auto 默认值
  • flex_start
  • flex_end
  • center
  • baseline
  • stretch

layout_flexBasisPercent (fraction)

这个属性设置项目长度相对于容器的百分比,如果设置了这个值,则从layout_width或layout_height指定的长度会被覆盖,需要注意的是,这个属性只在容器长度确定的情况下有效,即MeasureSpec.EXACTLY。默认值为-1,表示不设置。

layout_minWidth / layout_minHeight (dimension)

layout_maxWidth / layout_maxHeight (dimension)

这些属性设置对项目的最大最小限制

layout_wrapBefore (boolean)

这个属性默认值为false,如果设置为true,则该项目将强制成为当前行的第一个项目,会忽略flex_wrap:nowrap设置。


官方文档

来源


相关文章

网友评论

      本文标题:Layout文档整理

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