Intereting Posts
PopupWindow вне экрана, когда размер неуточнен Как заставить Android Studio прекратить возвращать сгенерированный код в результатах поиска? Flash-видео не отображается в WebView для Android 3.0.1 Невозможно использовать android: icon = "@ mipmap / ic_launcher" в Manifest после игровых сервисов 7.5.0 Отправка сообщений (уведомление) группе – Android Обнаружение или предупреждение, если пользователь использует поддельное местоположение Совместите один элемент слева от ActionBar Виджет Android NumberPicker, как получить значение, введенное через softkeyboard? Доступ к API Google – GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken () ToggleButton в ListView, значение автоматически изменяется при прокрутке Как сделать андроид мм чистым? Как добавить изображение в spinner в Android AddToBackStack не работает, закрывает активность, вместо того, чтобы возвращать фрагменты Android Studio – запись ресурсов уже определена Android sdk main.out.xml ошибка синтаксического анализа

Как поддерживать элементы управления dpad для RecyclerView

В настоящее время я пытаюсь подключить мобильное приложение Android к Android TV. У меня есть RecyclerView, который, кажется, правильно отображается в приложении Android TV. Я использую linearLayout для моего RecyclerView. Но, похоже, я не могу перемещаться внутри RecyclerView с помощью элементов управления dpad.

Есть идеи?

Вот интересующий xml:

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/RecyclerView" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="@color/nav_bg" android:scrollbars="vertical" tools:showIn="@layout/activity_content" /> 

Solutions Collecting From Web of "Как поддерживать элементы управления dpad для RecyclerView"

Попробуйте установить android:descendantFocusability="afterDescendants" в RecyclerView

Создайте корневой вид вашего макета объекта android:focusable="true"

У моего кода возникали проблемы с тем, чтобы сосредоточиться на первом ребенке recyclerview. Как только он там был, он, похоже, хорошо справился с dpad.

Не видя больше своего кода, это лучшее предложение. Пожалуйста, предоставьте свою активность и полный xml, если это не сработает. Удачи!

В вашем xml:

  <!-- make sure this is an attribute for the layout that would get focus before the recycler view --> android:nextFocusDown="@+id/RecyclerView" <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/RecyclerView" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="@color/nav_bg" android:scrollbars="vertical" tools:showIn="@layout/activity_content" android:focusable="true" /> 

В вашей деятельности:

  public static final int BANNER = 0; public static final int RECVIEW1 = 1; public static final int RECVIEW2 = 2; private static int currFocus = 0; //you will need to do something similar to this listener for all focusable things RecyclerView.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { Log.i("ONFOCUSCHANGE- reclist", "focus has changed I repeat the focus has changed! current focus = " + currFocus); if(currFocus != RECVIEW1){ currFocus = RECVIEW1; RecyclerView.getChildAt(0).requestFocus(); } } });