我正在尝试使用?selectableItemBackgroundBorderless
为LinearLayout
创建无边框涟漪,它工作正常,但不清晰可见。
如何更改?selectableItemBackgroundBorderless
的默认颜色以使涟漪效果可见?
我尝试将ThemeOverlay.AppCompat.Dark
主题应用于父版面,但它没有帮助。
答案 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"
.../>