OnClickListener в представлении изображения внутри представления переработчика не работает на Android TV

У меня есть представление ресайклера, и для его строки установлено значение (focusable = "true"), чтобы я мог анимировать его строку с помощью элементов управления d-pad на фокусе, который отлично работает. Но когда я нажимаю ввод, он не обнаруживает щелчок по ресайклеру дочерний элемент представления, который раздражает.

Мой код просмотра ресайклера:

<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>

Мой макет строки RecyclerView:

<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>

Мой адаптер onBindViewHolder:

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);

            }
        }
    });

}

PS: я перепробовал все возможности focusable="true/false", focusableInTouchMode="true/false", clickable="true/false" и android:descendantFocusability везде.


person Hussnain Azam    schedule 08.02.2017    source источник
comment
Вы пытались использовать ImageButton вместо ImageView?   -  person SteelBytes    schedule 09.02.2017
comment
Да Нерабочее поведение одинаково для всех виджетов пользовательского интерфейса внутри Recyclerview   -  person Hussnain Azam    schedule 09.02.2017
comment
Можете попробовать прикрепить OnClickListener к @+id/card?   -  person ULazdins    schedule 09.02.2017
comment
Работаем с @+id/картой   -  person Hussnain Azam    schedule 09.02.2017
comment
Попробуйте проверить эту страницу, если она может вам помочь. Он покажет вам, как добавить OnClickListener внутри RecyclerView.ViewHolder. Для получения дополнительной информации проверьте этот вопрос SO 32779956 и 35584584. Кроме того, я нашел здесь в этой потоке информацию о том, как работать с RecyclerView, в том числе о том, как добавить и настроить RecyclerView, как создать и понять ViewHolder и адаптер, и как добавить прослушиватель кликов   -  person KENdi    schedule 09.02.2017