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

Tho*_*ord 5 android android-layout

我有一个使用主题属性的状态列表颜色资源,即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>
Run Code Online (Sandbox Code Playgroud)

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

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

有没有办法在API 21之前引用颜色选择器中的主题属性?(如果重要,请使用支持库25.3.0)

Sli*_*ion 0

?android:attr/colorBackgroundAPI 21 之前未定义。

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

材料成分的背景值和表面值均在此处定义。