Nawigacja za pomocą pada kierunkowego na Androidzie TV
Pilot Android TV ma panel kierunkowy, który wysyła polecenia docierające do dispatchKeyEvent(KeyEvent)
urządzenia Activity
jako kluczowe zdarzenia. Te uprawnienia
muszą zostać przekazane na konto PlayerView
:
Kotlin
override fun dispatchKeyEvent(event: KeyEvent?): Boolean{ return playerView.dispatchKeyEvent(event!!) || super.dispatchKeyEvent(event) }
Java
@Override public boolean dispatchKeyEvent(KeyEvent event) { return playerView.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); }
Żądanie fokusu dla elementu PlayerView
jest ważne w przypadku nawigacji po elementach sterujących odtwarzaniem i pomijania reklam. Rozważ poproszenie o skupienie się na onCreate
w Activity
:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... playerView.requestFocus() // ... }
Java
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... playerView.requestFocus(); // ... }
Jeśli używasz Compose na Androidzie TV, musisz ustawić AndroidView
focusable i przekazać zdarzenie, przekazując parametr modyfikatora do
AndroidView
:
AndroidView(
modifier = modifier
.focusable()
.onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) },
factory = { playerView }
)