在CardView悬停时更改背景颜色

时间:2020-07-01 12:16:18

标签: android selector android-cardview

我想在Android Studio中将背景颜色更改为CardView,我想使用选择器,但是我不知道该怎么做

这在我的代码中:

<androidx.cardview.widget.CardView
                android:id="@+id/card_ordina"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="15dp"
                app:cardBackgroundColor="@color/orange"
                app:cardCornerRadius="20dp">

                <ImageView
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_gravity="center_horizontal"
                    android:layout_marginLeft="30dp"
                    android:layout_marginTop="20dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginBottom="40dp"
                    android:background="@drawable/options"
                    android:backgroundTint="#F44336"
                    android:padding="10dp"
                    android:src="@drawable/carrello"
                    android:tint="@color/background" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|center"
                    android:layout_marginBottom="5dp"
                    android:fontFamily="@font/title"
                    android:text="ORDINA"
                    android:textColor="@color/background"
                    android:textSize="18sp" />

            </androidx.cardview.widget.CardView>

1 个答案:

答案 0 :(得分:0)

您需要进行选择,并将以下属性设置为CardView。

android:foreground="@drawable/card_foreground"
android:clickable="true"
android:focusable="true"

这是card_foreground.xml的代码,将其添加到项目的 drawable 文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="#e0F5AD6E"/>
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item android:state_focused="true" android:state_enabled="true">
        <shape android:shape="rectangle">
            <solid android:color="#0f000000"/>
            <corners android:radius="2dp" />
        </shape>
    </item>
</selector>

您可以根据需要更改状态颜色和半径。现在,当您单击CardView时,颜色将更改。如果有帮助,请投票。