Фокус не очищается. Jetpack Compose Android TV ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Фокус не очищается. Jetpack Compose Android TV

Сообщение Anonymous »

Итак, у меня есть проект Android TV, и моя структура такая

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

TvLazyColumn(
state = listState,
pivotOffsets = PivotOffsets(0.15F),
modifier = Modifier
.focusRequester(setFocusContinueWatch)
.onKeyEvent {
if (it.nativeKeyEvent.action == KeyEvent.ACTION_DOWN) {
when (it.nativeKeyEvent.keyCode) {
KeyEvent.KEYCODE_DPAD_UP -> {
if (selectedRow > 0) {
selectedRow--
isUpFromList = false
} else {
isUpFromList = true
setFocusContinueWatch.freeFocus()
isFocusOnListing = false

}
}

KeyEvent.KEYCODE_DPAD_DOWN -> {
if (selectedRow < sizeOfRows!!) {
selectedRow++
isFocusOnListing = true
isUpFromList = false
}
}
}
}
false
}
теперь выше этого у меня есть 2 типа просмотра: один при фокусе и один при !focusonlisting, поэтому в случае !focusonlisting у меня есть кнопка watchnowbutton. Итак, у меня есть логика индексации для выбора выбранной строки, теперь, когда я нахожусь в верхней строке, я нажимаю вверх и иначе блокирую логические триггеры

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

 LaunchedEffect(isFocusOnListing) {
if (isUpFromList) {
setFocusContinueWatch.freeFocus()
watchNowBtnFocus = true
setFocusOnWatchNow.captureFocus()
}
}
Теперь, что происходит, когда я нажимаю вверх от первой строки с индексом 0, фокус находится на кнопке, поскольку цвет кнопки меняется в фокусе, но при этом фокус остается на строке, как и показано граница, и при движении влево вправо я двигаюсь влево и вправо по строке. теперь мне нужно нажать еще раз, чтобы перейти к кнопке.

Подробнее здесь: https://stackoverflow.com/questions/793 ... android-tv

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