?android:attr/selectableItemBackground not visible

2020-05-23 09:07发布

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

3条回答
迷人小祖宗
2楼-- · 2020-05-23 09:34

Solution with AppCompat (works on old APIs too)

android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
android:background="?attr/selectableItemBackground"
查看更多
祖国的老花朵
3楼-- · 2020-05-23 09:35

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>
查看更多
我命由我不由天
4楼-- · 2020-05-23 09:46

There is another way to change the app theme:

Theme.AppCompat.NoActionBar

It works fine for me.

查看更多
登录 后发表回答