ユーザーの切り替えに基づいてパスワードを表示または非表示にする

ユーザーの切り替えに基づいてパスワードの表示 / 非表示を切り替えるアイコンを作成して、セキュリティを強化し、ユーザー エクスペリエンスを向上させることができます。

結果

図 1. パスワードの表示 / 非表示アイコンの切り替え。

バージョンの互換性

この実装では、プロジェクトの 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 の値を切り替えます。
  • textObfuscationMode 属性と末尾のアイコンの表示/非表示 の状態を showPassword の状態によって定義します。

このガイドを含むコレクション

このガイドは、Android 開発の幅広い目標をカバーする、厳選されたクイック ガイド コレクションの一部です。

テキストは UI の主要な構成要素です。アプリでテキストを表示して、優れたユーザー エクスペリエンスを提供する方法について説明します。
ユーザーがテキストを入力したり、他の入力方法を使用したりしてアプリを操作できるようにする方法について説明します。

ご不明な点やフィードバックがある場合

よくある質問のページでクイック ガイドについて確認するか、お問い合わせください。