【发布时间】:2021-04-10 16:18:50
【问题描述】:
在 Jetpack Compose 中构建一个简单的键盘相当简单明了。 我使用这个构建了一个非常简单的 KeyRow:
Key.kt
@Composable
fun Key(modifier: Modifier = Modifier, label: String, onClick: () -> Unit) {
val shape = RoundedCornerShape(4.dp)
//TODO: make clickable outside but don't show ripple
Box(modifier = modifier
.padding(2.dp)
.clip(shape)
.clickable(onClick = onClick)
.background(Color.White)
.padding(vertical = 12.dp, horizontal = 4.dp), contentAlignment = Alignment.Center) {
Text(text = label, fontSize = 20.sp)
}
}
KeyRow.kt
@Composable
fun KeyRow(keys: List<String>) {
Row(modifier = Modifier.fillMaxWidth().background(color = grey200)) {
keys.forEach {
Key(modifier = Modifier.weight(1f), label = it, onClick = { })
}
}
}
它看起来是这样的:
我要实现这个动画:
但是,我目前对此感到困惑
![4]
层次结构
-Keyboard
--KeyRow
---KeyLayout
----Key
----KeyPressedOverlay (only visible when pressed)
我的主要问题是我不知道如何在不增大父布局的情况下显示 KeyPressedOverlay Composale(大于 Key Composable)。。结果,我需要以某种方式溢出父布局。
【问题讨论】:
标签: android android-jetpack-compose