如何支持RecyclerView的dpad控件

我目前正尝试将Android移动应用移植到Android TV。 我有一个RecyclerView似乎在我的Android TV应用程序中正确显示。 我为我的RecyclerView使用linearLayout。 但我似乎无法使用dpad控件在RecyclerView内导航。

有任何想法吗?

这里是有关的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" /> 

    尝试在RecyclerView上设置android:descendantFocusability="afterDescendants"

    让你的项目布局的根视图android:focusable="true"

    我的代码遇到的问题是把重点放在回收站的第一个孩子。 一旦它在那里似乎很好地处理dpad控件。

    没有看到更多的代码,这是最好的build议。 请提供您的活动和完整的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(); } } });