Android更改可点击的卡片视图的悬停颜色

时间:2018-05-21 04:48:48

标签: android android-cardview clickable

当有人点击它时,我正在尝试更改卡片视图的颜色。到目前为止,我已尝试使用以下代码:

 //drawable/selector.xml
<?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true"android:drawable="@color/button_pressed"/> <!-- pressed -->
   <item android:state_focused="true" android:drawable="@color/button_focused"/> <!-- focused --> 
  <item android:drawable="@color/button_default"/> <!-- default -->
</selector>

这是我的选择器代码,当我在按钮代码中使用它时,这非常有效:

<Button
  android:id="@+id/button1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@drawable/selector"
  android:text="Click Me"
 />

我想在卡片视图中执行此操作我无法在卡片视图中看到任何内容我正在使用这样的选择器:

  <android.support.v7.widget.CardView
    android:foreground="?android:attr/selectableItemBackground"
    android:clickable="true"
    android:layout_width="170dp"
    android:layout_height="150dp"
    android:layout_margin="4dp"
    android:onClick="economy"
    android:background="@drawable/selector"
    >
   </android.support.v7.widget.CardView>

我的卡是可点击的我的问题是我可以在卡片视图中执行此操作

1 个答案:

答案 0 :(得分:1)

Cardview在使用selector更改背景时存在限制。如果您仍想继续使用。您可以在前台应用选择器。

<android.support.v7.widget.CardView
   android:foreground="@drawable/selector"  // change
    android:clickable="true"
    android:layout_width="170dp"
    android:layout_height="150dp"
    android:layout_margin="4dp"
    android:onClick="economy"
    >
   </android.support.v7.widget.CardView>

将alpha添加到您在选择器上应用的颜色(例如:#55FFFFFF),以便卡片的内容可见。这不是理想的,但取决于您的输出预期。