唯客微博客

专注于计算机,嵌入式领域的技术

0%

Jetpack Compose组件-布局(Box.Column.Row)

Jetpack Compose组件-布局(Box.Column.Row)

堆叠布局(Box)

Box 是一个能够将里面的子项依次按照顺序堆叠的布局组件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Composable
inline fun Box(
// 修饰符
modifier: Modifier = Modifier,
// 内容对齐方式
contentAlignment: Alignment = Alignment.TopStart,
// 是否应将传入的最小约束传递给内容
propagateMinConstraints: Boolean = false,
content: @Composable BoxScope.() -> Unit
): Unit

// 一个没有内容的框
@Composable
fun Box(modifier: Modifier): Unit

水平布局(Row)

Row 组件能够将里面的子项按照从左到右的方向水平排列。

1
2
3
4
5
6
7
8
9
10
@Composable
inline fun Row(
// 修饰符
modifier: Modifier = Modifier,
// 水平对齐方式
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
// 垂直对齐方式
verticalAlignment: Alignment.Vertical = Alignment.Top,
content: @Composable RowScope.() -> Unit
): Unit

垂直布局(Column)

Column 是一个布局组件,它能够将里面的子项按照从上到下的顺序垂直排列。

1
2
3
4
5
6
7
8
9
10
@Composable
inline fun Column(
// 修饰符
modifier: Modifier = Modifier,
// 垂直对齐方式
verticalArrangement: Arrangement.Vertical = Arrangement.Top,,
// 水平对齐方式
horizontalAlignment: Alignment.Horizontal = Alignment.Start,
content: @Composable ColumnScope.() -> Unit
): Unit

空白布局(Spacer)

Spacer 能够提供一个空白的布局,可以使用 Modifier.width, Modifier.heightModifier.size 来填充。

1
2
@Composable
fun Spacer(modifier: Modifier): Unit

自适应布局(BoxWithConstraints)

1
2
3
4
5
6
7
8
9
10
11
@Composable
@UiComposable
fun BoxWithConstraints(
// 修饰符
modifier: Modifier = Modifier,
// 内容对齐方式
contentAlignment: Alignment = Alignment.TopStart,
// 是否应将传入的最小约束传递给内容
propagateMinConstraints: Boolean = false,
content: @Composable @UiComposable BoxWithConstraintsScope.() -> Unit
): Unit
1
2
3
4
5
6
7
8
9
10
11
BoxWithConstraints {
val rectangleHeight = 100.dp
if (maxHeight < rectangleHeight * 2) {
Box(Modifier.size(50.dp, rectangleHeight).background(Color.Blue))
} else {
Column {
Box(Modifier.size(50.dp, rectangleHeight).background(Color.Blue))
Box(Modifier.size(50.dp, rectangleHeight).background(Color.Gray))
}
}
}

可滚动布局

1
2
3
4
5
6
7
8
9
10
11
12
13
@Composable
fun ScrollBoxes() {
Column(
modifier = Modifier
.background(Color.LightGray)
.size(100.dp)
.verticalScroll(rememberScrollState())
) {
repeat(10) {
Text("Item $it", modifier = Modifier.padding(2.dp))
}
}
}
-------------本文结束感谢您的阅读-------------

本文标题:Jetpack Compose组件-布局(Box.Column.Row)

文章作者:Vinx

发布时间:2023年01月11日 - 10:24

最后更新:2023年09月18日 - 11:38

原始链接:https://blog.vinkvin.com/post/53/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。