我设置了CardView,在其中我放了RelativeLayout。
布局看起来像这样:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_basket_list_card_view"
android:orientation="horizontal"
android:layout_width="match_parent"
android:clickable="true"
android:layout_margin="5dp"
card_view:cardCornerRadius="@dimen/basket_list_cardview_corner_radius"
card_view:cardElevation="@dimen/basket_list_cardview_elevation"
card_view:cardUseCompatPadding="true"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground">
...
当我在Lollipop手机上点击CardView时,我会得到一个很好的涟漪效果,每个人都很开心。但是,当我在Lollipop手机上点击那个CardView时,它只会变成一些蓝色的半透明颜色。它看起来还不错,但我想改变那种颜色。
我该怎么做?
最佳,
Deveti
答案 0 :(得分:1)
您可以使用
android:background="?attr/selectableItemBackground"
获得浅灰色而不是蓝色。然后它使用App的主题,这可能是你案例中的AppCompat主题。
如果您想要完全控制,我担心您必须创建自己的state list并覆盖selectableItemBackground或创建新项目。
链接示例:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
drawable也可以是RippleDrawable。您可以使用文件夹&#34; drawable&#34;对于默认选择drawable和&#34; drawable-21&#34;对于涟漪效果可绘制。有关概述,请参阅this answer。
如果您使用android:foreground
,它的行为就像叠加层,因此像#20000000
这样的透明黑色会产生灰色。