Textfield с Animatedvisibility должна показывать клавиатуру (requestFocus)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Textfield с Animatedvisibility должна показывать клавиатуру (requestFocus)

Сообщение Anonymous »

У меня есть текстовое поле, которое отображается, когда пользователь нажимает на кнопку поиска, и видимость анимирована. Проблема заключается в том, что когда я прошу фокус, чтобы показать клавиатуру, композиция не закончена, поэтому FocusRequester не была инициализирована, вызывая сбой. Одним из возможных решений было бы добавить задержку с той же продолжительностью, что и анимация; Однако это небезопасно, так как это может привести к гоночному состоянию, и авария может произойти в редких случаях. Любая другая альтернатива? < /P>

Код: Выделить всё

@Composable
fun MyComponent() {
var expanded by rememberSaveable { mutableStateOf(false) }
val focusRequester = remember { FocusRequester() }

AnimatedVisibility(
visible = expanded,
enter = expandHorizontally(animationSpec = tween(300)) + fadeIn(),
exit = shrinkHorizontally(animationSpec = tween(300)) + fadeOut()
) {
TextField(
modifier = Modifier.focusRequester(focusRequester),
...)

}

IconButton(onClick = {
expanded = !expanded
focusRequester.requestFocus()
}) {
MyImage(
icon = R.drawable.ic_search,
modifier = Modifier.size(56.dp)
)
}

}
< /code>
java.lang.IllegalStateException:

FocusRequester не инициализируется. Вот некоторые возможные исправления:
  • Помните, что FocusRequester: val FocusRequester = помнить {FocusRequest ()}
  • Вы забыли добавить модификатор.focusrequester () ?
  • rekempting? Запросы на фокусировку должны быть сделаны в ответ на какое -то событие. Например, Modifier.clickable {FocusRequester.RequestFocus ()}


Подробнее здесь: https://stackoverflow.com/questions/797 ... questfocus
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»