Ali*_*aXX 4 android kotlin android-jetpack-compose
我正在使用新品牌 KotlinCompose作为我的观点,我有一排有 2 个项目,我该如何制作它们center-vertical?
Row(
modifier = Spacing(20.dp)
) {
Text(text = "Hello $name!")
Spacing(10.dp)
Padding(padding = 25.dp) {
Button(text = "Click", onClick = { /*do something*/ })
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果没有填充,它们也不会对齐。
Gab*_*tti 19
您可以使用verticalAlignment中的参数Row。
就像是:
Row(
modifier = Modifier.padding(20.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(text = "Hello!")
Spacer(modifier = Modifier.width(10.dp))
Button(onClick = { /*do something*/ },
modifier = Modifier.padding(25.dp)) {
Text(text = "Click")
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用中每个可组合项align中定义的修饰符。
请注意:RowScopeRow
在 中垂直对齐元素
Row。该对齐方式将优先于RowsverticalAlignment参数。
Row(
verticalAlignment = Alignment.CenterVertically
) {
// The child with no align modifier is positioned by default so that is in the middle of
// the vertical axis.
Box(Modifier.size(80.dp, 40.dp).background(Teal200))
// Gravity.Top, the child will be positioned so that its top edge is aligned to the top
// of the vertical axis.
Box(Modifier.size(80.dp, 40.dp).align(Alignment.Top).background(Color.Red))
// Gravity.Center, the child will be positioned so that its center is in the middle of
// the vertical axis.
Box(Modifier.size(80.dp, 40.dp).align(Alignment.CenterVertically).background(Color.Yellow))
// Gravity.Bottom, the child will be positioned so that its bottom edge is aligned to the
// bottom of the vertical axis.
Box(Modifier.size(80.dp, 40.dp).align(Alignment.Bottom).background(Color.Green))
}
Run Code Online (Sandbox Code Playgroud)
在 compose 版本 1.0 上,这是一个解决方案......
Row(
modifier = Modifier.padding(20.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(text = "Hello Android!",
modifier = Modifier.padding(end = 10.dp))
Button(text = { Text("Click") },
onClick = { /*do something*/ },
modifier = Modifier.padding(25.dp)
)
}
Run Code Online (Sandbox Code Playgroud)
Row 中有verticalAlignment争论。您还可以使用align修饰符单独配置项目对齐方式,该修饰符覆盖行的. 例如:verticalAlignment
@Composable
fun RowAlignmentExample() {
Row(verticalAlignment = Alignment.CenterVertically) {
SizeTile(14)
SizeTile(18)
SizeTile(22)
SizeTile(26)
SizeTile(10, modifier = Modifier.align(Alignment.Top))
SizeTile(10, modifier = Modifier.align(Alignment.Bottom))
}
}
@Composable
fun SizeTile(fontSize: Int, modifier: Modifier = Modifier) {
Text(
text = fontSize.toString(),
fontSize = fontSize.sp,
modifier = modifier
.padding(2.dp)
.background(Color.White, RoundedCornerShape(4.dp))
.padding(2.dp)
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3383 次 |
| 最近记录: |