Android 如何在已设置背景时对textview应用涟漪效应

Android 如何在已设置背景时对textview应用涟漪效应,android,material-design,rippledrawable,Android,Material Design,Rippledrawable,我想在任何项目单击时应用涟漪效应。但我不能应用每一项 android:background="@color/tabColor" 背景已经设置好,所以如何使用下面的代码 android:background="?android:attr/selectableItemBackground" 我希望我的背景选项卡Color和ripple effect都在那里工作。你应该使用android:foreground=?attr/selectableItemBackground来实现ripple effe

我想在任何项目单击时应用涟漪效应。但我不能应用每一项

android:background="@color/tabColor"
背景已经设置好,所以如何使用下面的代码

android:background="?android:attr/selectableItemBackground"
我希望我的背景选项卡Color和ripple effect都在那里工作。

你应该使用android:foreground=?attr/selectableItemBackground来实现ripple effect。

你应该使用android:foreground=?attr/selectableItemBackground来实现ripple effect。

你可以使用自定义的可绘制文件来实现ripple effect。在这里我和你们分享代码。只需实现该代码。希望它能正常工作

  <?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/colorAccent"
    tools:ignore="NewApi">
    <item android:id="@android:id/background">
        <shape xmlns:android="http://schemas.android.com/apk/res/android">

            <solid android:color="@color/white"/>
            <corners
                android:radius="5dp"/>
            <stroke android:width="1dp" android:color="@color/gray_text"/>
            <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />

        </shape>
    </item>
</ripple>
可以使用自定义可绘制文件来实现涟漪效果。在这里我和你们分享代码。只需实现该代码。希望它能正常工作

  <?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/colorAccent"
    tools:ignore="NewApi">
    <item android:id="@android:id/background">
        <shape xmlns:android="http://schemas.android.com/apk/res/android">

            <solid android:color="@color/white"/>
            <corners
                android:radius="5dp"/>
            <stroke android:width="1dp" android:color="@color/gray_text"/>
            <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />

        </shape>
    </item>
</ripple>

在style.xml中添加此行

<item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/backgroundWhite</item>

在style.xml中添加此行

<item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/backgroundWhite</item>
使用此库可获得最佳涟漪效果。。

使用此库可获得最佳涟漪效果。。

当您已经设置了背景时,请在XML代码中执行此操作

android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"

当您已经设置了背景时,请在XML代码中执行此操作

android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"

尝试android:background=?attr/SelectableItemBackgroundless添加涟漪,就像这样我以前使用过:[设置涟漪效果]但我已经添加了背景,所以现在如何添加涟漪答案中提供的解决方案足以产生涟漪效果。但是它只有在设置ClickListener或使视图可单击时才会出现。请尝试android:background=?attr/SelectableItemBackgroundless添加涟漪,就像我以前使用过的那样:[设置涟漪效果]但是我已经添加了背景,所以现在如何添加涟漪答案中提供的解决方案足以创建涟漪效果。但只有当您设置ClickListener或使视图可单击时,才会显示。您的文本视图应可单击,ripple才能工作。设置android:clickable=true或在代码中设置ClickListener。请为您的代码添加一些解释,以便其他人可以从中学习-为什么要使用给定的内容?您的文本视图应该是可单击的,ripple才能工作。要么设置android:clickable=true,要么在代码中设置click侦听器。请在代码中添加一些解释,以便其他人可以从中学习-为什么要使用给定的东西?