jetpack compose Row有两个子控件,居中并且两个子控件需要有间隙,如何实现
时间: 2024-09-18 21:08:23 浏览: 122
Jetpack Compose 中的 `Row` 组件可以轻松地实现子控件的居中对齐和间距设置。要让两个子控件居中,并且它们之间有一定的间隔,你可以这样做:
首先,在布局上,给 Row 提供 `verticalAlignment = Alignment.CenterVertically` 属性来使其内容垂直居中,然后通过设置 `Modifier.padding(horizontal =.dp(8), vertical = dp(4))` 来添加水平和垂直间隙。
这是一个简单的例子:
```kotlin
val padding = 8.dp // 可以自定义间隙大小
@Composable
fun CenteredRow(child1: @Composable () -> Unit, child2: @Composable () -> Unit) {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.padding(horizontal = padding, vertical = padding)
) {
child1()
Spacer(modifier = Modifier.size(0).weight(1f)) // 使用 Spacer 消耗剩余空间并保持间距
child2()
}
}
// 在其他地方使用
CenteredRow {
Text("子控件1")
}, {
Text("子控件2")
}
```
在这个例子中,`Spacer` 的 `size(0).weight(1f)` 表示它不占空间,但是会按照其权重分配剩余的空间,这样就能保证两个子控件之间的间距。
阅读全文