14

我正在尝试RelativeLayout在 API 22 上实现涟漪效应,但它没有出现。然而,同样的涟漪在Button.

我的波纹可绘制代码如下:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#d1c4e9">
    <item android:id="@android:id/mask"
        android:drawable="@android:color/white" />
    <item android:drawable="@drawable/rect"/>
</ripple>

相对布局代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/ripple">
</RelativeLayout>

在此之后,波纹被设置为 和 上的Button背景RelativeLayout。按钮上的波纹效果很好,但根本没有出现RelativeLayout

谁能告诉我我做错了什么?

4

5 回答 5

31

添加此属性android:clickable="true"有效。在 Nexus 5 上测试

于 2015-08-11T11:47:18.010 回答
9

除了 Rahunandan 所说,如果您使用的是 appcompat-v7 支持库,您还需要添加 android:background="?attr/selectableItemBackground".

于 2016-01-07T04:23:26.520 回答
6

此属性在布局中。

android:background="?attr/selectableItemBackground"
android:clickable="true"
于 2017-11-03T14:11:58.523 回答
0

在我的情况下,涟漪效应在第一次点击后起作用,但对于第一次点击它对我不起作用。已使用android:state_activated="true"和 main.xml android:clickable="true"更改了背景选择器文件, 那么它一直都可以正常工作。

selector.xml(在 res\drawable\selector.xml 下)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/card_bg_pressed" android:state_enabled="true" android:state_pressed="true"/>
<item android:state_activated="true" android:drawable="@drawable/card_bg_focused" android:state_enabled="true" android:state_focused="true"/>
<item android:state_activated="true" android:drawable="@drawable/card_bg_selected" android:state_enabled="false" android:state_selected="true"/>
</selector>

在 activity_main.xml

 <com.mysample.RecyclingImageView
    android:id="@+id/imageview_overlay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@drawable/selector"
    android:clickable="true"/>
于 2017-06-02T14:51:57.577 回答
0

对我来说,这有效(API 23 及更高版本)

    android:background="@drawable/your_background"
    android:clickable="true"
    android:foreground="?attr/selectableItemBackground"
于 2021-12-08T08:57:35.097 回答