更改?selectableItemBackgroundBorderless波纹颜色

时间:2017-01-05 23:38:37

标签: android material-design

我正在尝试使用?selectableItemBackgroundBorderlessLinearLayout创建无边框涟漪,它工作正常,但不清晰可见。

如何更改?selectableItemBackgroundBorderless的默认颜色以使涟漪效果可见?

我尝试将ThemeOverlay.AppCompat.Dark主题应用于父版面,但它没有帮助。

3 个答案:

答案 0 :(得分:9)

Theming with AppCompat blog post中所述:

  

colorControlHighlight控制纹波着色

因此,创建一个ThemeOverlay.AppCompat可以将该值设置为您选择的颜色,这样您就可以更改该视图及其子项的波纹颜色。

答案 1 :(得分:1)

另一种选择是制作自己的选择器。我知道这不是一个很好的解决方案,但是无论如何它可能是一个解决方案:

res / drawable / circular_item_background_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="@color/your_color"/>
        </shape>
    </item>

    <item android:drawable="@android:color/transparent"/>

</selector>

res / drawable-v21 / circular_item_background_selector.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="@color/your_color">

    <item android:drawable="@android:color/transparent"/>

    <item android:id="@android:id/mask">
        <shape android:shape="oval">
            <solid android:color="@color/your_color"/>
        </shape>
    </item>

</ripple>

答案 2 :(得分:0)

使用属性 foreground 而不是 background 对我来说效果很好:

<Button
...    
android:foreground="?android:attr/selectableItemBackground"
android:backgroundTint="@color/blue"
android:textColor="@color/white"
.../>