【发布时间】:2021-12-18 23:15:33
【问题描述】:
我有一个 LazyColumn 由带有数字输入的文本字段组成。当我在文本字段之间切换时,有时会看到闪烁。它首先打开普通文本键盘,然后切换到数字键盘。这导致了非常糟糕的用户体验。
我的代码:
LazyColumn {
items(payers) {
Row {
Image(...)
Text(...)
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
.padding(vertical = 4.dp)
) {
BasicTextField(
value = it.amount,
onValueChange = { /* Update it.amount */ },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number),
)
if (it.amount.isEmpty())
Text(
text = "₹ 0",
modifier = Modifier.alpha(0.5f)
)
}
}
}
}
结果:
如何避免这种闪烁?
【问题讨论】:
-
是的,实际上我现在很困,所以现在,试试吧,而不是使用默认的 KeyBoardType.Number,尝试将其配置为只允许一组数字,例如“12345667890”。
-
我不想向用户显示字母,然后限制他们输入这些内容
-
如何在撰写文本字段中“允许”某些字符?不要说“在触发 onValueChange 时过滤掉那些”。我认为这不会改变键盘类型
标签: android kotlin android-jetpack-compose android-jetpack-compose-text android-compose-textfield