IllegalStateException: FocusRequester не инициализируется во время тестирования Jetpack Compose.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 IllegalStateException: FocusRequester не инициализируется во время тестирования Jetpack Compose.

Сообщение Anonymous »

У меня есть экран с TextFields. Мне нужно, чтобы первое TextField автоматически фокусировалось при отображении экрана.
Минимизированный пример кода
@Composable
fun ScreenView(
data: ScreenViewData,
) {
val focusManager = LocalFocusManager.current
val focusRequester = remember {
FocusRequester()
}

LaunchedEffect(
key1 = Unit,
) {
focusRequester.requestFocus()
}

Scaffold() { innerPadding ->
Column {
OutlinedTextField(
modifier = Modifier.focusRequester(focusRequester),
)
}
}
}

Код работает без проблем.
Но при тестировании пользовательского интерфейса я получаю следующую ошибку.

java.lang.IllegalStateException:

FocusRequester не инициализирован. Вот несколько возможных исправлений:
  • Запомните FocusRequester: val focusRequester = помните { FocusRequester() }
  • Вы забыли добавить Modifier.focusRequester() ?
  • Вы пытаетесь запросить фокус во время композиции? Запросы на фокусировку должны быть сделаны

    в ответ на какое-либо событие. Например, Modifier.clickable { focusRequester.requestFocus() }
Тестовый код >
@ExperimentalAnimationApi
class ScreenViewTest {

@get:Rule
val composeTestRule = createComposeRule()

@ExperimentalMaterialApi
@Test
fun ScreenViewElementsAreDisplayed() {
composeTestRule.setContent {
MyAppTheme {
ScreenView(
data = ScreenViewData(),
)
}
}

// Test fails before reaching assert statements
}
}


Подробнее здесь: https://stackoverflow.com/questions/699 ... ck-compose
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему я получаю IllegalStateException, когда FocusRequester не инициализируется в моем приложении Dialog on TV для Andr
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю IllegalStateException, когда FocusRequester не инициализируется в моем приложении Dialog on TV для Andr
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как решить, что FocusRequester не инициализируется?
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как решить, что FocusRequester не инициализируется?
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как решить, что FocusRequester не инициализируется?
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

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