التنقّل باستخدام لوحة التحكّم الاتجاهية على Android TV
يحتوي جهاز التحكّم عن بُعد في Android TV على لوحة تحكّم اتجاهية تُرسِل أوامر تصل كأحداث رئيسية إلى dispatchKeyEvent(KeyEvent) في Activity. يجب تفويض هذه الأحداث إلى 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); }
من المهم طلب التركيز على PlayerView للتنقّل بين عناصر التحكّم في التشغيل وتخطّي الإعلانات. ننصحك بطلب التركيز في onCreate في 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(); // ... }
إذا كنت تستخدِم Compose على Android TV، عليك جعل AndroidView
قابلاً للتركيز وتفويض الحدث عن طريق تمرير مَعلمة المعدِّل إلى
AndroidView وفقًا لذلك:
AndroidView( modifier = modifier.focusable().onKeyEvent { playerView.dispatchKeyEvent(it.nativeKeyEvent) }, factory = { playerView }, )