我正在使用Jetpack Compose创建一个布局,其中包含一列。我希望将此列中的项目居中:
Column(modifier = ExpandedWidth) {
Text(text = item.title)
Text(text = item.description)
}
我正在使用Jetpack Compose创建一个布局,其中包含一列。我希望将此列中的项目居中:
Column(modifier = ExpandedWidth) {
Text(text = item.title)
Text(text = item.description)
}
您可以使用这些参数:
horizontalAlignment
= 布局子项的水平对齐方式。verticalArrangement
= 布局子项的垂直排列方式。例如:
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "First item",
modifier = Modifier.padding(16.dp)
)
Text(
text = "Second item",
modifier = Modifier.padding(16.dp)
)
Text(
text = "Third item",
modifier = Modifier.padding(16.dp)
)
}
如果你只想水平居中,只需使用:
Column(
modifier = Modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Column ( ) { ... }
align
上遇到错误,但我将Jetpack Compose依赖更新为1.0.0-alpha03
,就解决了。 之前使用的是1.0.0-alpha02
,谢谢! - Peter HaddadModifier.fillMaxSize()
代替 Modifier.fillMaxWidth().fillMaxHeight()
。 - YektaDev您可以使用
Text(
text = item.title,
textAlign = TextAlign.Center,
modifier = Modifier.align(alignment = Alignment.CenterHorizontally)
)
Modifier.align
仅适用于 BoxScope
。 - Jim OvejeratextAlign = TextAlign.Center
是正确的。请注意它不属于 modifier
。 - undefined使用此功能
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
)
Text(
"Hello World",
textAlign = TextAlign.Center,
modifier = Modifier.width(150.dp)
)
您可以使用TextAlign
属性将文本居中。
heightIn(min = 40.dp)
并测试其在水平方向上是否居中。 - Amir或者你可以创建自己的可组合部件,并在任何地方使用它:
@Composable
fun Center( modifier: Modifier = Modifier, content: @Composable ColumnScope.() -> Unit) {
Column(
modifier = modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally,
content = content
)
}
你可以像这样使用:
Center {
Text(text = "Text 1")
Text(text = "Text 2")
}
我并不是太喜欢它,但这就是对我有效的方法:
Column(modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center) {
//Your composable elements
}
Compose 1.0.0-beta07
Modifier.fillMaxSize()
instead of Modifier.fillMaxWidth().fillMaxHeight()
- Dr.jacky你也可以使用 Text
组件的 textAlign
属性。
Text(
modifier = Modifier.fillMaxWidth(),
text = item.title,
textAlign = TextAlign.Center
)
Text(
modifier = Modifier.fillMaxWidth(),
text = item.description,
textAlign = TextAlign.Center
)
您可以通过以下方式对单个元素应用重力,然后它将居中显示。
Column(modifier = ExpandedWidth) {
Text(modifier = Gravity.Center, text = item.title)
Text(modifier = Gravity.Center, text = item.description)
}
Text(text = item.title, modifier = Modifier.gravity(Alignment.CenterHorizontally))
- ByteMealpha07
时,使用Text(text = item.title, modifier = Modifier.align(Alignment.CenterHorizontally))
。 - ininmm1.0.0-beta09
版本中,Text
的修饰符align
不存在。 - Lucas Sousastyle = TextStyle(textAlign = TextAlign.Center)
- JonikArrangement.Center
。
示例代码
@Composable
fun Column(
arrangement: Arrangement = Arrangement.Center,
)