如何在Jetpack Compose Text中将文本居中(水平和垂直)

3
我有一大段文本。
Text(
    text = "Select Bank account",
    color = Color.White,
    fontSize = 18.sp,
    textAlign = TextAlign.Center,
    modifier = Modifier
        .background(Color.Black)
        .fillMaxSize()
        .padding(16.dp)
        .align(Alignment.CenterHorizontally)
)

enter image description here

如何使文本垂直和水平居中?
在基于视图的系统中,我们可以使用“Gravity.CENTER”来实现此目的。 寻找类似的解决方案。
注意: 寻找不使用另一个包装文本的组件(例如Box、Column等)的解决方案。
我知道可以使用包装组件来实现我的要求,如这里所示。

1
你可以使用fillMaxSize().wrapContentHeight(Alignment.CenterVertically) - undefined
2个回答

4
你可以通过在Compose中添加类似于“wrap_content”作为高度的XML属性来实现此功能。
将“wrapContentHeight()”添加到修饰符中,就可以将其对齐到页面的中心。
Text(
        text = "Select Bank account",
        color = Color.White,
        fontSize = 18.sp,
        textAlign = TextAlign.Center,
        modifier = Modifier
            .background(Color.Black)
            .fillMaxSize()
            .wrapContentHeight()
            .padding(16.dp)
    )

这是垂直对齐吗? - undefined
对于一个没有先前XML布局经验的Android新手来说,这并不直观。为什么“包裹”会影响居中对齐? - undefined

1
将文本放入一个框中,并将框的contentAlignment设置为居中。
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center){
    Text(
        text = "Select Bank account",
        color = Color.White,
        fontSize = 18.sp,
        textAlign = TextAlign.Center,
        modifier = Modifier
            .background(Color.Black)
            .padding(16.dp)
            .align(Alignment.Center)
    )
}

4
问题中提到:“寻找一种不使用其他组件(如Box、Column等)来包装文本的解决方案。” - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接