Вы можете создать значок, чтобы скрыть или показать пароль на основе переключателя пользователя, чтобы повысить безопасность и улучшить взаимодействие с пользователем.
Совместимость версий
Для этой реализации требуется, чтобы в 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:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=ru)
Отображать текст
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=ru)