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.height
和
Modifier.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)) } } }
|