文章目录
- 1.Alignment 对齐
- 1.1Alignment 对齐方式
- 1.2AbsoluteAlignment 绝对对齐
- 1.3BiasAlignment 偏差对齐
- 1.4BiasAbsoluteAlignment偏差绝对对齐
- 2.Arrangement 排列
- 2.1Arrangement 排列方式
- 2.2Arrangement.Horizontal
- 2.3Arrangement.Vertical
1.Alignment 对齐
1.1Alignment 对齐方式
Alignment
类型 | 对齐方式 | 说明 | ||
---|---|---|---|---|
Alignment | TopStart | 顶部左对齐 | ||
TopCenter | 顶部居中对齐 | |||
TopEnd | 顶部右对齐 | |||
CenterStart | 居中左对齐 | |||
Center | 居中 | |||
CenterEnd | 居中右对齐 | |||
BottomStart | 底部左对齐 | |||
BottomCenter | 底部居中 | |||
BottomEnd | 底部右对齐 | |||
Alignment.Vertical | Top | 竖直的置顶 | ||
CenterVertically | 竖直的居中 | |||
Bottom | 竖直的置底 | |||
Alignment.Horizontal | Start | 水平的置左 | ||
CenterHorizontally | 水平的居中 | |||
End | 水平的置右 |
疑问:为什么有 Alignment
了,还需要有 Alignment.Vertical
和 Alignment.Horizontal
呢?
因为有些控件,如 Row
只能调整竖直方向上的对齐方式,水平方向上调的是 Arrangement
排列,因此对齐枚举需要限制为特定方向上的
1.2AbsoluteAlignment 绝对对齐
AbsoluteAlignment
不知道布局方向的常见对齐方式的集合。
类型 | 对齐方式 | 说明 | ||
---|---|---|---|---|
Alignment | TopLeft | 左上角 | ||
TopRight | 右上角 | |||
CenterLeft | 居中左侧 | |||
CenterRight | 居中右侧 | |||
BottomLeft | 底部左侧 | |||
BottomRight | 底部右侧 | |||
Alignment.Horizontal | Left | 水平方向左侧 | ||
Right | 水平方向右侧 |
当不知道是横向还是纵向布局方式时使用,暂时还没想到应用场景。(欢迎评论补充)
1.3BiasAlignment 偏差对齐
BiasAlignment
-1: 表示 start/top
0: 表示 center
1: 表示 end/bottom
data class BiasAlignment(
val horizontalBias: Float, // 水平方向对齐方式
val verticalBias: Float // 竖直方向对齐方式
)
1.4BiasAbsoluteAlignment偏差绝对对齐
BiasAbsoluteAlignment
-1: 表示对齐到左上角
0: 表示居中
1: 表示右下角
就是在 左上角
到 右下角
这条斜线上对齐
data class BiasAbsoluteAlignment(
private val horizontalBias: Float,
private val verticalBias: Float
)
2.Arrangement 排列
2.1Arrangement 排列方式
Arrangement
对齐方式 | 说明 | ||
---|---|---|---|
Equal Weight | 等宽/高 | ||
Space Between | 等间距 | ||
Space Around | 每个item等padding | ||
Space Evenly | 每个item等margin | ||
End | 尾部对其 | ||
Center | 居中 | ||
Start | 头部对其 |
2.2Arrangement.Horizontal
如:Row
的 horizontalArrangement
2.3Arrangement.Vertical
如:Column
的 verticalArrangement
参考:
androidx.compose.foundation.layout
Componse教程 | 关于 Alignment与Arrangement