Android Jetpack组合-居中文本

Android Jetpack组合-居中文本,android,android-layout,kotlin,android-jetpack-compose,Android,Android Layout,Kotlin,Android Jetpack Compose,我正在使用Jetpack Compose创建一个简单的闪存卡。 这个想法是,你点击闪存卡,它会给你答案。 然而,我被困在一个基本问题上 不幸的是。。。我甚至找不到官方文件,所以我的学习风格一直相信自动更正系统 不管怎么说,我认为问题要么出在Box()上,要么出在Text()上。 我添加了一个Align.CenterEnd以适应长方体的重力。然而,就盒子而言,这似乎是居中的唯一方法。另一方面,Text()没有提供任何方法来实现这一点(它具有重力,但似乎没有改变任何东西) 一只方向正确的手将是令人惊

我正在使用Jetpack Compose创建一个简单的闪存卡。 这个想法是,你点击闪存卡,它会给你答案。 然而,我被困在一个基本问题上

不幸的是。。。我甚至找不到官方文件,所以我的学习风格一直相信自动更正系统

不管怎么说,我认为问题要么出在Box()上,要么出在Text()上。 我添加了一个Align.CenterEnd以适应长方体的重力。然而,就盒子而言,这似乎是居中的唯一方法。另一方面,Text()没有提供任何方法来实现这一点(它具有重力,但似乎没有改变任何东西)

一只方向正确的手将是令人惊奇的

顺便说一句,我知道这将是免费的回答。但是我如何在点击中更改$question的文本呢。正如我所认为的那样,可组合刷新?。。。因此,应该在屏幕上重新生成吗?也许不是

谢谢

 val typography = MaterialTheme.typography

        val context = ContextAmbient.current
        var question = "How many Bananas should go in my Smoothie?"


        Column(modifier = Modifier.padding(30.dp).then(Modifier.fillMaxWidth())
                .then(Modifier.wrapContentSize(Alignment.Center))
                .clickable(onClick = { Toast.makeText(context, "3 Bananas are needed!", Toast.LENGTH_LONG).show()} ) /*question = "3 Bananas required"*/
                .clip(shape = RoundedCornerShape(16.dp))) {
            Box(modifier = Modifier.preferredSize(350.dp)
                    .gravity(align = Alignment.CenterHorizontally)
                    .border(width = 4.dp, color = Gray, shape = RoundedCornerShape(16.dp)),
            shape = RoundedCornerShape(2.dp),
            backgroundColor = DarkGray,
            gravity = Alignment.CenterEnd) {
                Text("$question",
                style = typography.h4,
                )
            }
        }

您可以在
文本中申请:

Column(modifier = Modifier
            .padding(30.dp)
            .fillMaxWidth()
            .wrapContentSize(Alignment.Center)
            .clickable(onClick = { } ) /*question = "3 Bananas required"*/
            .clip(shape = RoundedCornerShape(16.dp)),
) {
    Box(modifier = Modifier
            .preferredSize(350.dp)
            .border(width = 4.dp, color = Gray, shape = RoundedCornerShape(16.dp)),
             alignment = Alignment.Center) {
        Text("Question 1 : How many cars are in the garage?",
                Modifier.padding(16.dp),
                textAlign = TextAlign.Center,
                style = typography.h4,
        )

关于课文

您可以使用以下内容:

var text by remember { mutableStateOf(("How many cars are in the garage?")) }
在可单击的项目中:

.clickable(onClick = { text= "After clicking"} )
在你的文本中:

  Text(text, 
        textAlign = TextAlign.Center,
        ...)

这只是一个简单的问题。您可以使用动态结构来存储和更新值,而不是静态字符串。

居中文本是什么意思?文本在框中居中。你在找什么?对齐方式?谢谢,TextAlign很有用。每门课都有正式的写作文档吗?“我在学习它的过程中一直很困惑。”潘达佩索尔在这里你可以找到所有的。我已经用
TextAlign
的链接更新了答案。如何将文本与底部或顶部对齐?TextAlignment中没有该选项?