我正在尝试为货币的TextField元素给予一些格式。我不想在开始时接受$或€符号。我只想接受以下范围的值。
MIN VALUE: X
MAX VALUE: XXX.XX
我想接受一个.从小数中分离整数。
例如最小一个整数,最大三个整数(0 - 999)
对于小数部分,最多不接受两位数(0.99 - 0.1 - 1)
对于验证,我只想有一个前导零,如果它与十进制数字一起出现,但是如果我输入一个整数,前导零应该被删除。例如:
无法接受这些值:
00.2
0123.30
如何在Android上使用Jetpack Compose实现此功能?
1条答案
按热度按时间f87krz0w1#
首先,文本字段的可组合项是androidx.compose.material.TextField。鉴于只允许数字,请选择数字键盘类型,并使用:
你可以在onValueChange函数闭包中限制错误的输入:
但是,不建议在onValueChanged回调中更改可视部件的文本,因为文本状态与进程IME(软件键盘)共享,然后您将不得不使用键盘处理错误。
您需要为可视部件实现自己的可视转换类
您可以阅读:https://blog.shreyaspatil.dev/filtering-and-modifying-text-input-in-jetpack-compose-way
标签:How to format number with comma in TextField in compose
再见。