如何只让cardview的孩子点击,而不是整个cardview本身?

时间:2015-12-07 17:46:19

标签: android xml

这里是上下文中cardview的布局:

<android.support.v7.widget.CardView
        android:id="@+id/card"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dp"
        android:layout_marginRight="1dp"
        android:layout_marginTop="-25dp"
        android:clickable="true"
        app:cardUseCompatPadding="true"
        android:foreground="?android:attr/selectableItemBackground"
        app:cardBackgroundColor="@color/md_white_1000"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="10dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_centerVertical="true"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:layout_alignParentLeft="true"
                android:layout_toLeftOf="@+id/icon"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:maxLines="4"
                android:textColor="@color/md_teal_900"
                android:textSize="15sp"
                android:textStyle="bold" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:layout_height="wrap_content"
                android:focusable="true"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="5dp"
                android:clickable="true"
                android:id="@+id/icon"
                android:src="@mipmap/ic_download" />


        </RelativeLayout>
    </android.support.v7.widget.CardView>

我只希望图标(imageview)可以点击。这个cardview是recyclerview的一部分,我只能让整张卡响应点击,而我只想让imageview可点击。

2 个答案:

答案 0 :(得分:1)

您可以使用onClick()方法然后

执行@Michele Lacorte的回答
ImageView image = (ImageView) findViewById(R.id.icon);
image.setOnClickListener(this);

答案 1 :(得分:0)

OnClickListener设为ImageView,此处为示例:

ImageView image = (ImageView) findViewById(R.id.icon);
image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Do operation
        }
});

修改

如果您使用onClick()方法:

@Override
public void onClick(View v) {
    switch(v.getId()){

        //Add this case to your switch
        case R.id.icon:

           //Do operation

        break;
    }
}

正如@vspallas所说,不要忘记添加Listener

image.setOnClickListener(this);