【问题标题】:Nested Recyclerview of Images not clicked未单击图像的嵌套 Recyclerview
【发布时间】:2017-06-28 05:39:07
【问题描述】:

如图所示,它具有列表的 recyclerview,并且每个 recyclerviews 项目再次具有包含图像列表的新 recyclerview。红色区域正在捕获单击事件,但来自同一项目嵌套的 recyclerview 区域/项目没有被点击。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_marginBottom="6dp"
    android:background="@color/colorWhite"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/ll_offer_product_item"
        android:background="?attr/selectableItemBackground"
        android:clickable="true"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <RelativeLayout
            android:paddingTop="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:layout_marginRight="8dp"
                android:src="@drawable/ic_user"
                android:id="@+id/img_user"
                android:layout_width="42dp"
                android:layout_height="42dp" />

            <TextView
                android:textColor="@color/colorNickname"
                android:textSize="16sp"
                android:id="@+id/lbl_nickname"
                android:layout_toRightOf="@+id/img_user"
                android:text="U*36"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <LinearLayout
                android:gravity="center_vertical"
                android:orientation="horizontal"
                android:layout_below="@+id/lbl_nickname"
                android:layout_toRightOf="@+id/img_user"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:src="@drawable/ic_positive_sm"
                    android:layout_width="14dp"
                    android:layout_height="14dp" />

                <TextView
                    android:id="@+id/lbl_positive"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:text="32"
                    android:textColor="@color/colorTextDefault"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

                <ImageView
                    android:src="@drawable/ic_negative_sm"
                    android:layout_width="14dp"
                    android:layout_height="14dp" />

                <TextView
                    android:id="@+id/lbl_negative"
                    android:layout_marginLeft="5dp"
                    android:text="1"
                    android:textColor="@color/colorTextDefault"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </RelativeLayout>

        <TextView
            android:id="@+id/lbl_product_name"
            android:paddingBottom="4dp"
            android:paddingTop="4dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:textSize="17sp"
            android:textStyle="bold"
            android:textColor="@color/colorProductName"
            android:text="Apple iPhone 6, 128GB, White "
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <LinearLayout
            android:gravity="center_vertical"
            android:paddingLeft="16dp"
            android:paddingBottom="4dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:src="@drawable/ic_location"
                android:layout_width="14dp"
                android:layout_height="14dp" />

            <TextView
                android:textColor="@color/darkerGray"
                android:id="@+id/txt_kms"
                android:text="1km"
                android:textSize="12sp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

        <android.support.v7.widget.RecyclerView
            android:duplicateParentState="true"
            android:clickable="false"
            android:id="@+id/recyclerView_offer_product_images"
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:scrollbars="none" />

        <RelativeLayout
            android:paddingTop="8dp"
            android:gravity="center_vertical"
            android:paddingLeft="16dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <TextView
                android:textColor="@color/colorTimeEndsIn"
                android:id="@+id/txt_endsin"
                android:padding="8dp"
                android:text="00:30"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <LinearLayout
                android:background="@color/colorOfferProductPrice"
                android:paddingTop="8dp"
                android:paddingBottom="8dp"
                android:paddingLeft="32dp"
                android:paddingRight="32dp"
                android:gravity="right"
                android:layout_alignParentRight="true"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/lbl_currency"
                    android:textColor="@color/colorWhite"
                    android:paddingRight="2dp"
                    android:text="d"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

                <TextView
                    android:maxLines="1"
                    android:ellipsize="end"
                    android:textStyle="bold"
                    android:id="@+id/lbl_price"
                    android:textColor="@color/colorWhite"
                    android:text="24.750.000"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

对于嵌套的recyclerview,下面是xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:clickable="false"
    android:duplicateParentState="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <com.android.volley.toolbox.NetworkImageView
        android:clickable="false"
        android:duplicateParentState="true"
        android:id="@+id/img_offer_product"
        android:scaleType="centerCrop"
        android:layout_width="100dp"
        android:layout_height="100dp" />

    <View
        android:background="@color/colorLightGray"
        android:layout_width="1px"
        android:layout_height="match_parent" />
</LinearLayout>

【问题讨论】:

  • 分享java代码

标签: android android-recyclerview imageview xml-layout


【解决方案1】:

尝试如上设置可点击属性为真,

<android.support.v7.widget.RecyclerView
        android:duplicateParentState="true"
        android:clickable="true"
        android:id="@+id/recyclerView_offer_product_images"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:scrollbars="none" />

【讨论】:

  • 也在 RecyclerView 中设置 clickable true
【解决方案2】:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:duplicateParentState="true"
    android:orientation="horizontal">

    <com.android.volley.toolbox.NetworkImageView
        android:id="@+id/img_offer_product"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:clickable="true"
        android:duplicateParentState="true"
        android:scaleType="centerCrop" />

    <View
        android:layout_width="1px"
        android:layout_height="match_parent"
        android:background="@color/colorLightGray" />
</LinearLayout>

您应该使您的视图可点击。 正如我所见,您的视图具有可点击的 false ,因此您需要为子 recyclerview 的子项进行这样的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    相关资源
    最近更新 更多