Я только начал с Android разработки телевизора с энергией и застрял в вопросе навигации. Не знаю, как справиться с этим. Вот моя модель макета.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutDescription="@xml/scene_01"
android:id="@+id/motion_layout"
tools:showPaths="false">
<ViewPager
android:id="@+id/home_pager"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="3:3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHeight_percent="0.7" />
<include
android:id="@+id/lyt_toolbar"
layout="@layout/custom_tv_toolbar_layout"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/content_frame"
/>
</androidx.constraintlayout.motion.widget.MotionLayout>
Это простой макет, который я создал, но не могу переходить от одного вида к другому. По умолчанию вид придерживается ViewPager
. Он не перемещается к другому RecyclerView
или макету панели инструментов, который является другим ConstraintLayout
.
Я не хочу go с библиотекой поддержки Leanback, поскольку я еще не думал об этом.
[EDIT]
Я добавил android:descendantFocusability="blocksDescendants"
к ViewPager и android:focusableInTouchMode="true" android:focusable="true"
к дочерним представлениям RecyclerView . Теперь элементы RecyclerView начали прокручиваться с помощью пульта, но теперь это касается только этого. Я не могу обработать go до Панель инструментов и ViewPager
[EDIT]
Теперь я добавил android:nextFocusUp="@id/lyt_toolbar" android:nextFocusLeft="@id/home_pager"
к RecyclerView и android:nextFocusUp="@id/lyt_toolbar" android:nextFocusDown="@id/recycler_view"
до ViewPager . На этот раз фокусировка переместилась в ViewPager из RecyclerView , но затем он никогда не перемещался в любой другой макет.