Итак, у меня есть проект Android TV, и моя структура такая < /p>
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
}
< /code>
Теперь выше этого у меня есть 2 типа просмотра, когда FocusonListing и один на! FocusonListing, так что в случае! FocusonListing у меня есть кнопка WatchNowbutton. Так что у меня есть логика для индексации для Gtting выбранной роли, когда я в верхней строке, я нажимаю вверх, а еще блокируйте логические триггеры < /p>
LaunchedEffect(isFocusOnListing) {
if (isUpFromList) {
setFocusContinueWatch.freeFocus()
watchNowBtnFocus = true
setFocusOnWatchNow.captureFocus()
}
}
< /code>
Теперь то, что происходит, когда я нажимаю из индекса Fist Row ndex 0, сосредоточено на кнопке, так как цвет кнопки меняется на фокусе, но также фокус остается на строке, а также показывает Граница и при движении влево направо я двигаюсь влево и направо в ряду. Теперь мне нужно нажать еще раз, чтобы на самом деле перейти на кнопку.
Подробнее здесь: https://stackoverflow.com/questions/793 ... android-tv