1.介绍
Compose中把ListView分成了Column垂直列表,Row横向列表。
Column
垂直布局,以垂直顺序放置其子级的布局组合。默认情况下,子布局不会滚动;请参见Modifier.verticalScroll以添加此行为。有关仅构成和布局当前可见项的垂直滚动列表,请参见LazyColumn。列布局能够根据使用ColumnScope.weight修改器提供的权重来指定子级高度。如果未向child提供weight,则在根据剩余可用空间按weight比例计算分配给child,如果fill = false ,将根据child提供其首选高度来分配高度。(使用实例中会详细介绍分配规则)
Row
水平布局,以水平顺序放置其子级的布局组合。默认情况下,子布局不会滚动;请参见Modifier.horizontalScroll以添加此行为。有关仅构成和布局当前可见项的水平滚动列表,请参见LazyRow。行布局能够根据使用RowScope.weight修改器提供的权重来指定子级宽度。如果未向child提供weight,则在根据剩余可用空间按weight比例计算分配给child,如果fill = false ,将根据child提供其首选宽度来分配宽度。
2.属性一览
@Composable
inline fun Column(
modifier: Modifier = Modifier,
verticalArrangement: Arrangement.Vertical = Arrangement.Top,
horizontalAlignment: Alignment.Horizontal = Alignment.Start,
content: ColumnScope.() -> Unit
): @Composable Unit
@Composable
inline fun Row(
modifier: Modifier = Modifier,
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
verticalAlignment: Alignment.Vertical = Alignment.Top,
content: RowScope.() -> Unit
): @Composable Unit
参数
| 参数 | 含义 |
|---|---|
| modifier: Modifier = Modifier | [布局修饰符](Jetpack Compose - Modifier(基础) (juejin.cn)) |
| verticalArrangement: Arrangement.Vertical = Arrangement.Top | 子布局级的垂直放置方式,默认从Top到Bottom |
| horizontalAlignment: Alignment.Horizontal = Alignment.Start | 子布局级的垂直放置方式,默认从start开始 |
| content: BoxScope.() -> Unit | 子布局内容 |
Box中Modifier拓展函数
- fun Modifier.weight(
/@FloatRange(from = 0.0, fromInclusive = false)/
weight: Float,
fill: Boolean = true
): Modifier
Column 和 Row的权重分配函数,weight: Float 为比例,fill: Boolean = true 是否填充满下文使用实例会具体介绍 - fun Modifier.align(alignment: Alignment.Vertical): Modifier
类似于设置layout_gravity,大多数空间都有的函数,不做过多介绍 - fun Modifier.alignByBaseline(): Modifier
基于baseline对其 - fun Modifier.alignBy(alignmentLineBlock: (Measured) -> Int): Modifier
- fun Modifier.alignBy(alignmentLine: HorizontalAlignmentLine): Modifier