OnClickListener在图像视图内部的回收器视图上无法在Android TV上运行

OnClickListener在图像视图内部的回收器视图上无法在Android TV上运行,android,android-recyclerview,onclicklistener,android-tv,onfocus,Android,Android Recyclerview,Onclicklistener,Android Tv,Onfocus,我有一个recycler视图,它的行被设置为(focusable=“true”),这样我就可以通过d-pad控件在焦点上设置它的行的动画,这很好。但是当我按enter键时,它并没有检测到点击recycler视图的子视图,这很烦人 我的回收器视图代码: <android.support.v7.widget.RecyclerView android:id="@+id/featuredRecyclerView" android:layout_wid

我有一个recycler视图,它的行被设置为(focusable=“true”),这样我就可以通过d-pad控件在焦点上设置它的行的动画,这很好。但是当我按enter键时,它并没有检测到点击recycler视图的子视图,这很烦人

我的回收器视图代码:

<android.support.v7.widget.RecyclerView
            android:id="@+id/featuredRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#000000"
            android:focusable="false"
            android:clipChildren="false"
            >
        </android.support.v7.widget.RecyclerView>

注:我已经尝试了focusable=“真/假”、focusableInTouchMode=“真/假”、clickable=“真/假”的所有可能性android:genderantfocusability无处不在。

您是否尝试过使用ImageButton而不是ImageView?是的,回收服务中的所有UI小部件的工作行为都不一样。您可以尝试将OnClickListener附加到@+id/卡上吗?使用@+id/卡尝试检查这是否对您有帮助。它将向您展示如何在RecyclerView.ViewHolder中添加OnClickListener。有关更多信息,请检查此SO问题和。此外,我在本文中还了解了如何使用RecyclerView,包括如何添加和配置RecyclerView,如何创建和理解ViewHolder和适配器,以及如何添加单击侦听器
<com.open.androidtvwidget.leanback.widget.OpenCardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/card"
android:background="@color/white"
android:clipChildren="false"
android:clipToPadding="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:descendantFocusability="beforeDescendants"
>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    >

    <ImageView
        android:id="@+id/ivMovie"
        android:layout_width="100dp"
        android:layout_height="150dp"
        android:scaleType="centerCrop"
        android:background="@color/placeholder"
        android:focusable="false"
        android:focusableInTouchMode="false"

        />

    <RelativeLayout
        android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/linear_gradiant"
        android:layout_alignRight="@+id/ivMovie"
        android:layout_alignLeft="@+id/ivMovie"
        android:layout_alignBottom="@+id/ivMovie">

        <TextView
            android:id="@+id/runtime_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1m"
            android:textColor="#ffffff"
            android:textSize="16sp"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"
            android:gravity="center"
            android:layout_marginRight="3dp"
            />

    </RelativeLayout>
</RelativeLayout>


</com.open.androidtvwidget.leanback.widget.OpenCardView>
public void onBindViewHolder(MyViewHolder holder, final int position) {


        holder.ivMovie.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent go = new Intent(mContext,LoginActivity.class);
                go.putExtra("movie", movie);
                mContext.startActivity(go);

            }
        });

    holder.card.setOnFocusChangeListener(new     View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                    v.animate().scaleX(1.2f).scaleY(1.2f).setDuration(300).start();
                v.setElevation(20);
            } else {
                v.animate().scaleX(1.0f).scaleY(1.0f).setDuration(300).start();
                v.setElevation(0);

            }
        }
    });

}