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