Nawigacja za pomocą pada kierunkowego na Androidzie TV
Pilot do Androida TV ma pad kierunkowy, który wysyła polecenia docierające jako kluczowe zdarzenia do dispatchKeyEvent(KeyEvent) w Activity. Należy je przekazać do 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 zaznaczenia elementu PlayerView jest ważne w przypadku poruszania się po elementach sterujących odtwarzaniem i pomijania reklam. Rozważ poproszenie o ustawienie fokusu w elemencie onCreate w obiekcie 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 jako element, który można zaznaczyć, i przekazać zdarzenie, przekazując parametr modyfikatora do AndroidView:
AndroidView( modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) }, factory = { playerView }, )
Używanie funkcji kompozycyjnej Player
Jeśli używasz elementu kompozycyjnego Player z biblioteki media3-ui-compose-material3, nawigacja za pomocą pada kierunkowego jest domyślnie obsługiwana. Komponenty Player i PlayerDefaults mają automatyczną instancję FocusRequester, która przechodzi przez komponenty za pomocą pada kierunkowego, więc nie potrzebujesz dodatkowego kodu ani Modifier.focusRequester do obsługi zdarzeń zaznaczenia i klawiszy:
Elementy PlayerDefaults są rozmieszczone w górnych, środkowych i dolnych boksach, dzięki czemu nawigacja za pomocą pada kierunkowego jest intuicyjna. W przypadku dostosowań i zastąpień tych boksów upewnij się, że udostępniasz komponent, który jest łatwy w obsłudze. Pamiętaj, że większość komponentów Compose, takich jak Slider czy Row zawierające przyciski, zarządza zaznaczeniem od razu po zainstalowaniu.