在 <API 21 中使用主题属性作为颜色选择器

7

我有一个状态列表颜色资源,使用主题属性,即button_background_tint.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="?attr/colorAccent" android:state_activated="true"/>
    <item android:color="?android:attr/colorBackground"/>
</selector>

使用 app:backgroundTint="@color/button_background_tint" 将其应用于我的 FloatingActionButton 背景色。

在 API 21 或更高版本中,按钮看起来很好,但在 API 21 以下的版本中,无论其状态如何,背景都是红色的(即使 ?android:attr/colorBackgroundTheme.AppCompat.Light 的默认值)。

是否有一种方法可以在 API 21 之前的颜色选择器中引用主题属性?(如果有影响,则使用 Support Library 25.3.0)

1个回答

0

?android:attr/colorBackground 在 API 21 之前未定义。

在使用 AndroidX 和 Material 组件时,似乎可以使用?attr/colorSurface,因为它是相同的颜色。我猜您可以只使用它来避免为 v21 及以上版本定义特定资源。

材料组件的背景和表面值都在这里中定义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接