使用 XML 创建 UI 时。密码字段有一个选项,用户可以看到密码。
开发人员所需要做的就是设置 inputType = TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
在 Jetpack Compose 中有创建 textField() 的选项。然后传入 visualTransformation = PasswordVisualTransformation()
使打字变成点。但是,它不会像使用 XML 那样在变成点之前先预览几秒钟的字母。
想知道是否有密码字段的等效喷气背包撰写功能,用户可以在几秒钟内看到密码然后变成点。
谢谢
答案 0 :(得分:3)
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,
onValueChange = { password = it },
label = { Text("Enter 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(),
)