代码之家  ›  专栏  ›  技术社区  ›  Nilay Singh

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

  •  0
  • Nilay Singh  · 技术社区  · 6 年前

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

     //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 回复  |  直到 6 年前
        1
  •  1
  •   rafa    6 年前

    cardView在使用选择器更改背景时有一个限制。如果您仍然想继续。您可以在前台应用选择器。

    <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)中,以便可以看到卡的内容。这并不理想,但取决于您的输出预期。