Fokus nicht löschen Jetpack Compose Android TVAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Fokus nicht löschen Jetpack Compose Android TV

Post by Guest »

Ich habe also ein Android-TV-Projekt und meine Struktur ist so

Code: Select all

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
}
Jetzt darüber habe ich zwei Arten der Ansicht, eine bei Focusonlisting und eine bei !focusonlisting. Im Falle von !focusonlisting habe ich also eine Schaltfläche „Jetzt ansehen“. Ich habe also eine Logik für die Indizierung, um die ausgewählte Zeile jetzt zu erhalten, wenn ich in der obersten Zeile nach oben drücke und andernfalls Logikauslöser blockiere

Code: Select all

 LaunchedEffect(isFocusOnListing) {
if (isUpFromList) {
setFocusContinueWatch.freeFocus()
watchNowBtnFocus = true
setFocusOnWatchNow.captureFocus()
}
}
Was nun passiert, wenn ich von Index 0 der ersten Zeile nach oben drücke, ist, dass der Fokus auf der Schaltfläche liegt, da sich die Farbe der Schaltfläche bei Fokus ändert, aber auch der Fokus auf der Zeile bleibt, so wie sie angezeigt wird den Rand und wenn ich mich nach links und rechts bewege, bewege ich mich in der Reihe nach links und rechts. Jetzt muss ich noch einmal nach oben drücken, um tatsächlich zur Schaltfläche zu gelangen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post