问题
On Android Lollipop, I'm using:
android:background="?android:attr/selectableItemBackground"
to have the material animated feedback when I click on a button.
It works well when I have a button contained in a white/light layout, like a CardView for example.
But when I want to use the same thing on a dark background, we barely see the effect, it is not visible enough.
Does someone have an idea?
Thank you
回答1:
On API 21+ you can set android:theme="@android:style/ThemeOverlay.Material.Dark"
on a View
or ViewGroup
to change all of the theme attributes (text color, ripple color, button color, etc.) to the "dark" versions. If you set it on a ViewGroup
, the theme is also applied to all of the child elements during inflation. It's an easy way to have regions of "dark" in an otherwise "light" interface (or vice versa).
<LinearLayout
android:id="@id/my_dark_layout"
...
android:theme="@android:style/ThemeOverlay.Material.Dark">
<TextView
android:id="@id/my_dark_bounded_ripple"
...
android:background="?android:attr/selectableItemBackground"
android:text="Bounded ripple" />
<ImageButton
android:id="@id/my_dark_unbounded_ripple"
...
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/my_icon" />
</LinearLayout>
回答2:
Solution with AppCompat (works on old APIs too)
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
android:background="?attr/selectableItemBackground"
回答3:
There is another way to change the app theme:
Theme.AppCompat.NoActionBar
It works fine for me.
来源:https://stackoverflow.com/questions/28605031/androidattr-selectableitembackground-not-visible-enough-on-a-dark-background