你需要使用一个父容器来对其内部的内容进行对齐。
例如,使用一个Box
:
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Center
) {
Text(
text = "Text",
)
}
或者一个列
:
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Text",
)
}
verticalArrangement
定义了 Column
布局中子元素的垂直排列方式。同时也要检查父容器的高度。 - Gabriele Mariotti首先使用.wrapContentHeight()
在修饰符中,然后可以使用align(CenterVertically)
参数来使文本居中对齐。
如果没有看到您的代码,很难给出确切的答案,但我会建议您使用容器的Alignment.CenterVertically
而不是TextAlign
示例代码:
Row {
Text(
text = "Text",
modifier = Modifier.align(alignment = Alignment.CenterVertically)
)
Image(
...
)
}
Column(
modifier = Modifier
.align(Alignment.CenterVertically)
) {
Text(text = "Text")
Text(text = "Text 2")
}
我在这里提出了相同的问题,使用视图时可以使用android:gravity
参数,如PhilipDukhov所回答的那样,仅使用Text
不可能实现对齐到底部左侧或右侧,您需要另一个容器,最好是Box
来对齐Text
组件。
@Composable
fun Center(
modifier: Modifier = Modifier,
content: @Composable () -> Unit,
) {
Box(
modifier = modifier,
contentAlignment = Alignment.Center
) {
content()
}
}
从任何其他函数中调用它:
@Composable
fun CenterAlignedText() {
Center(Modifier.fillMaxSize()) {
Text("Hello World!")
}
}
Box
。 - danartillaga