微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有一个 Jetpack Compose 等效于 A password 字段,其中密码对用户可见?

如何解决是否有一个 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 测试)拥有密码字段,您可以将 TextFieldKeyboardType.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 举报,一经查实,本站将立刻删除。