【发布时间】:2020-12-22 10:07:55
【问题描述】:
我正在使用 Jetpack Compose 创建一个简单的闪存卡。 这个想法是你点击闪存卡,它会给你答案。 但是,我遇到了一个基本问题。
不幸的是……我什至找不到官方文档,所以我的学习风格一直相信自动更正系统……
无论如何,我认为问题出在 Box() 或 Text() 上。 我为盒子的重力添加了一个 Align.CenterEnd。然而,这似乎是在盒子方面居中的唯一方法。另一方面,Text() 没有提供任何方法来做到这一点(它有重力但似乎没有改变任何东西)
朝着正确的方向伸出援助之手会很棒。
顺便说一句,我知道这将提供免费答案。但是我如何在点击时更改 $question 的文本。正如我认为 Composables 刷新?...因此,应该在屏幕上重新生成?也许不是?
谢谢!
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,
)
}
}
【问题讨论】:
-
居中文本是什么意思?文本在您的框中居中。你在找什么?一种合理的风格?
标签: android android-layout kotlin android-jetpack-compose