Android FAB图标始终为黑色,带有MaterialComponents主题

我正在创建一个Android应用程序,我正在使用AndroidX库和Material设计主题. styles.xml上的app主题是:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

我从自定义库中有以下FAB:

<com.leinardi.android.speeddial.SpeedDialView
        android:id="@+id/work_log_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        app:layout_behavior="@string/speeddial_scrolling_view_snackbar_behavior"
        app:sdMainFabClosedSrc="@drawable/ic_add_white_24dp"
        app:sdOverlayLayout="@id/overlay" />

并尝试了默认的FAB:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:src="@drawable/ic_add_white_24dp"
        android:layout_margin="16dp" />

无论图标的颜色(矢量可绘制),FAB内的图标(来自库和默认图标)始终为黑色.我已经将问题缩小到材料设计主题,因为使用旧的Theme.AppCompat.Light.DarkActionBar而不是新的Theme.MaterialComponents.Light.DarkActionBar,FAB内的图标获取原始矢量drawable的颜色.

有谁知道为什么会这样,以及如何解决它?

解决方法:

我通过使用以下方法解决了

app:tint="@color/COLOR_OF_ICON"

并不是:

android:tint="@color/COLOR_OF_ICON"

参考:https://github.com/material-components/material-components-android/blob/master/docs/components/FloatingActionButton.md

上一篇:Androidx错误膨胀视图


下一篇:找不到AndroidX MultiDex