根据用户切换显示或隐藏密码

您可以创建一个图标,根据用户切换来隐藏或显示密码,以提高安全性并增强用户体验。

版本兼容性

此实现要求您的项目 minSDK 设置为 API 级别 21 或更高。

依赖项

根据用户切换显示或隐藏密码

要根据用户切换显示或隐藏密码,请创建一个用于输入信息的输入字段,并使用一个可点击的图标作为切换。

@Composable
fun PasswordTextField() {
    val state = remember { TextFieldState() }
    var showPassword by remember { mutableStateOf(false) }
    BasicSecureTextField(
        state = state,
        textObfuscationMode =
        if (showPassword) {
            TextObfuscationMode.Visible
        } else {
            TextObfuscationMode.RevealLastTyped
        },
        modifier = Modifier
            .fillMaxWidth()
            .padding(6.dp)
            .border(1.dp, Color.LightGray, RoundedCornerShape(6.dp))
            .padding(6.dp),
        decorator = { innerTextField ->
            Box(modifier = Modifier.fillMaxWidth()) {
                Box(
                    modifier = Modifier
                        .align(Alignment.CenterStart)
                        .padding(start = 16.dp, end = 48.dp)
                ) {
                    innerTextField()
                }
                Icon(
                    if (showPassword) {
                        Icons.Filled.Visibility
                    } else {
                        Icons.Filled.VisibilityOff
                    },
                    contentDescription = "Toggle password visibility",
                    modifier = Modifier
                        .align(Alignment.CenterEnd)
                        .requiredSize(48.dp).padding(16.dp)
                        .clickable { showPassword = !showPassword }
                )
            }
        }
    )
}

关于代码的关键点

  • showPassword中维护密码可见性状态。
  • 使用 BasicSecureTextField 可组合项进行密码输入。
  • 有一个可点击的后置图标,它切换showPassword的值。
  • 通过showPassword的状态定义textObfuscationMode属性以及后置图标的可见/不可见状态。

结果

图 1. 切换显示和隐藏密码图标。

包含本指南的收藏

本指南是这些精选的快速指南收藏的一部分,涵盖更广泛的 Android 开发目标

文本是任何 UI 的核心部分。了解在应用中呈现文本的不同方法,以提供愉悦的用户体验。
了解如何实现用户通过输入文本和其他输入方式与您的应用交互的方法。

有疑问或反馈

访问我们的常见问题页面,了解快速指南,或与我们联系并告诉我们您的想法。