【发布时间】:2023-02-09 06:49:48
【问题描述】:
我正在尝试实现像这张图片中那样的正常键盘布局
然而,在过去的 3 个小时里,我一直坚持这个结果,我不知道我应该如何复制它,也许我遗漏了什么。键需要具有相同的宽度和高度,并且字母数量较少的行将居中。
现在我的代码看起来像这样:
@Composable
fun GameKeyboard() {
val firstRow = listOf("Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P")
val secondRow = listOf("A", "S", "D", "F", "G", "H", "J", "K", "L")
val thirdRow = listOf("Z", "X", "C", "V", "B", "N", "M")
Column(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(4.dp)
) {
GameKeyboardRow(firstRow)
GameKeyboardRow(secondRow)
GameKeyboardRow(thirdRow)
}
}
@Composable
fun GameKeyboardRow(keyList: List<String>) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(2.dp)
) {
keyList.forEach {
GameKeyboardKey(it, Modifier.weight(1f, true))
}
}
}
@Composable
fun GameKeyboardKey(key: String, modifier: Modifier) {
Box(contentAlignment = Alignment.Center,
modifier = modifier
.aspectRatio(1f)
.border(
width = 2.dp,
color = MaterialTheme.colorScheme.outline,
shape = MaterialTheme.shapes.small
)
.clickable {
}) {
Text(
text = key,
textAlign = TextAlign.Center
)
}
}
【问题讨论】:
标签: android android-jetpack-compose