如何解决是否有一个 Jetpack Compose 等效于 A password 字段,其中密码对用户可见?
- 产品:Android 应用
- 编程语言:kotlin
使用 XML 创建 UI 时。密码字段有一个选项,用户可以看到密码。
开发人员所需要做的就是设置 inputType = TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
在 Jetpack Compose 中有创建 textField() 的选项。然后传入 visualTransformation = PasswordVisualTransformation()
使打字变成点。但是,它不会像使用 XML 那样在变成点之前先预览几秒钟的字母。
想知道是否有密码字段的等效喷气背包撰写功能,用户可以在几秒钟内看到密码然后变成点。
谢谢
解决方法
inputType
配置显示的键盘类型、可接受的字符和编辑文本的外观。
使用 1.0.0
(使用 1.0.0-beta07
测试)拥有密码字段,您可以将 TextField
与 KeyboardType.Password
一起使用:
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
还要检查 this ticket 以获得进一步的配置。
使用带有visualTransformation的密码字段(使用掩码字符代替原始文本):
var password by rememberSaveable { mutableStateOf("") }
TextField(
value = password,onValueChange = { password = it },label = { Text("Enter password") },visualTransformation = PasswordVisualTransformation(),keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
)
要使用用户可见的密码字段,只需删除 visualTransformation(并使用默认的 VisualTransformation.None
):
var password by rememberSaveable { mutableStateOf("") }
TextField(
value = password,keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password)
)
如果要在两个选项之间切换:
var passwordVisibility by remember { mutableStateOf(false) }
TextField(
//...
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),visualTransformation = if (passwordVisibility) VisualTransformation.None else PasswordVisualTransformation(),)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。