@@ -22,6 +22,7 @@ import androidx.compose.foundation.BorderStroke
22
22
import androidx.compose.foundation.background
23
23
import androidx.compose.foundation.basicMarquee
24
24
import androidx.compose.foundation.border
25
+ import androidx.compose.foundation.clickable
25
26
import androidx.compose.foundation.layout.Arrangement
26
27
import androidx.compose.foundation.layout.Box
27
28
import androidx.compose.foundation.layout.Column
@@ -32,6 +33,10 @@ import androidx.compose.foundation.layout.width
32
33
import androidx.compose.foundation.text.KeyboardOptions
33
34
import androidx.compose.foundation.text.selection.DisableSelection
34
35
import 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
35
40
import androidx.compose.material3.LocalTextStyle
36
41
import androidx.compose.material3.MaterialTheme
37
42
import androidx.compose.material3.OutlinedTextField
@@ -839,3 +844,36 @@ private val firaSansFamily = FontFamily()
839
844
840
845
val LightBlue = Color (0xFF0066FF )
841
846
val 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
+ }
879
+ // [END android_compose_text_auto_format_phone_number_showhidepassword]
0 commit comments