@@ -22,6 +22,7 @@ import androidx.compose.foundation.BorderStroke
2222import androidx.compose.foundation.background
2323import androidx.compose.foundation.basicMarquee
2424import androidx.compose.foundation.border
25+ import androidx.compose.foundation.clickable
2526import androidx.compose.foundation.layout.Arrangement
2627import androidx.compose.foundation.layout.Box
2728import androidx.compose.foundation.layout.Column
@@ -32,6 +33,10 @@ import androidx.compose.foundation.layout.width
3233import androidx.compose.foundation.text.KeyboardOptions
3334import androidx.compose.foundation.text.selection.DisableSelection
3435import androidx.compose.foundation.text.selection.SelectionContainer
36+ import androidx.compose.material.icons.Icons
37+ import androidx.compose.material.icons.filled.Visibility
38+ import androidx.compose.material.icons.filled.VisibilityOff
39+ import androidx.compose.material3.Icon
3540import androidx.compose.material3.LocalTextStyle
3641import androidx.compose.material3.MaterialTheme
3742import androidx.compose.material3.OutlinedTextField
@@ -839,3 +844,35 @@ private val firaSansFamily = FontFamily()
839844
840845val LightBlue = Color (0xFF0066FF )
841846val Purple = Color (0xFF800080 )
847+
848+ // [START android_compose_text_auto_format_phone_number_showhidepassword]
849+ @Composable
850+ fun PasswordTextField () {
851+ var password by rememberSaveable { mutableStateOf(" " ) }
852+ var showPassword by remember { mutableStateOf(false ) }
853+ val passwordVisualTransformation = remember { PasswordVisualTransformation () }
854+
855+ TextField (
856+ value = password,
857+ onValueChange = { password = it },
858+ label = { Text (" Enter password" ) },
859+ visualTransformation = if (showPassword) {
860+ VisualTransformation .None
861+ } else {
862+ passwordVisualTransformation
863+ },
864+ keyboardOptions = KeyboardOptions (keyboardType = KeyboardType .Password ),
865+ modifier = Modifier .fillMaxWidth(),
866+ trailingIcon = {
867+ Icon (
868+ if (showPassword) {
869+ Icons .Filled .Visibility
870+ } else {
871+ Icons .Filled .VisibilityOff
872+ },
873+ contentDescription = " Toggle password visibility" ,
874+ modifier = Modifier .clickable { showPassword = ! showPassword })
875+ }
876+ )
877+ }
878+ // [END android_compose_text_auto_format_phone_number_showhidepassword]
0 commit comments