?android:attr / selectableItemBackground在黑暗的背景下不够可见

时间:2015-02-19 11:19:42

标签: android android-5.0-lollipop material-design

在Android Lollipop上,我正在使用:

android:background="?android:attr/selectableItemBackground"

在我点击按钮时获得材料动画反馈。

当我有一个包含在白色/浅色布局中的按钮时,它很有效,例如CardView。

但是当我想在深色背景上使用相同的东西时,我们几乎看不到效果,它不够明显。

有人有想法吗?

谢谢

3 个答案:

答案 0 :(得分:18)

在API 21+上,您可以在android:theme="@android:style/ThemeOverlay.Material.Dark"View上设置ViewGroup,以将所有主题属性(文字颜色,波纹颜色,按钮颜色等)更改为"暗"版本。如果您在ViewGroup上设置它,主题也会在通胀期间应用于所有子元素。这是一个简单的方法来区域"黑暗"否则"光"界面(反之亦然)。

<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>

答案 1 :(得分:3)

AppCompat解决方案(也适用于旧API)

android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
android:background="?attr/selectableItemBackground"

答案 2 :(得分:0)

还有另一种方法可以更改应用主题:

Theme.AppCompat.NoActionBar

它适用于我。