我正在使用 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 ( ) { ... }
用这个
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
)
您可以使用
Text(
text = item.title,
textAlign = TextAlign.Center,
modifier = Modifier.align(alignment = Alignment.CenterHorizontally)
)
您可以选择对单个项目应用重力,如下所示,然后它将使项目居中。
Column(modifier = ExpandedWidth) {
Text(modifier = Gravity.Center, text = item.title)
Text(modifier = Gravity.Center, text = item.description)
}
我不太喜欢它,但这对我有用:
Column(modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center) {
//Your composable elements
}
编写 1.0.0-beta07
您可以使用Column(crossAxisAlignment = CrossAxisAlignment.Center)
. 它像重力一样工作。
您可以使用Arrangement.Center
示例代码
@Composable
fun Column(
arrangement: Arrangement = Arrangement.Center,
)
如果您使用lazyColumn 加载列表并希望使整个项目居中,您可以使用它
LazyColumn( horizontalAlignment = Alignment.CenterHorizontally) {
}
您可以使用 FlexColumn 将内容置于中心,因为它支持 CrossAxisAlignment。
FlexColumn(crossAxisAlignment = CrossAxisAlignment.Center) {
inflexible {
Text(text = item.title)
Text(text = item.description)
}
}
将其扭曲在不灵活的内部,以便小部件不会占据整个屏幕。
同样,如果您想使用 FlexColumn 将视图带到屏幕中心,而不是使用 mainAxisAlignment 和 crossAxisAlignment
FlexColumn(mainAxisAlignment = MainAxisAlignment.Center,
crossAxisAlignment = CrossAxisAlignment.Center) {
inflexible {
Text(text = item.title)
Text(text = item.description)
}
}
从最新版本的 compose(0.1.0-dev05) 开始,您就是这样做的
为了使该容器内的文本居中,您需要使用LayoutAlign
修饰符。
Column(modifier = LayoutWidth.Fill + LayoutAlign.Center) {
Text(text = item.title)
Text(text = item.description)
}
如果您正在使用0.1.0-dev09
,您可以通过使用参数horizontalGravity
和verticalArrangement
@Composable
fun centeredColumn() {
return Column (
modifier = Modifier.height(100.dp),
horizontalGravity = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Image(asset = imageResource(id = R.drawable.ic_emojo_logo_white))
Text(text = stringResource(id = R.string.login_subtitle))
}
}
水平居中
Column(modifier = Modifier.fillMaxWidth()) {
Text(text = item.title)
Text(text = item.description)
}
在父曲面中水平和垂直居中
Column(modifier = Modifier.fillMaxWidth().fillMaxHeight(), verticalArrangement = Arrangement.Center) {
Text(text = item.title)
Text(text = item.description)
}
采用
modifier = Modifier.align(Alignment.CenterHorizontally)
Text(
"Hello World",
textAlign = TextAlign.Center,
modifier = Modifier.width(150.dp)
)
您可以使用TextAlign
属性来居中文本。
您还可以使用可组合textAlign
的属性Text
Text(
modifier = Modifier.fillMaxWidth(),
text = item.title,
textAlign = TextAlign.Center
)
Text(
modifier = Modifier.fillMaxWidth(),
text = item.description,
textAlign = TextAlign.Center
)