无法更改 Android Studio 上 FloatingActionButton 布局文件中的图标颜色

Unable to change icon color in layout file for a FloatingActionButton on Android Studio

所以,我的布局文件具有以下骨架:

<layout>
  <CoordinatorLayout>
    <AppBarLayout>
    ... some tags and stuff ...
    </AppBarLayout>
    <NestedScrollView>
    .... nested scroll view stuff
    </NestedScrollView>
    <!-- Finally! Here comes.... -->
    <FloatingActionButton>
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="8dp"
        android:backgroundTint="@color/someDarkBlueColor"
        android:tint="@color/colorWhite"
        android:src="@drawable/ic_white_camera" />
        ... closing tags and stuff ....

ic_white_camera如下:

<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="200dp" android:height="200dp" android:viewportWidth="24.0" android:viewportHeight="24.0">
    <path android:fillColor="@color/colorWhite" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
    <path android:fillColor="@color/colorWhite" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>

@color/colorWhite 是.. 你猜对了。白色...

然而android坚持将相机图标渲染成黑色!

我试过添加 android:tint="@color/colorWhite"。不行..

添加了 android:foregroundTint="@color/colorWhite" 和... Nada!

还在收到这个:

关于这个有什么线索吗?

向大家致以最诚挚的问候.. :-)

我不确定你真正想要的效果是什么,但你可以尝试评论或删除这一行:

android:backgroundTint="@color/someDarkBlueColor"

或调整someDarkBlueColor的值。

如果您使用 com.google.android.material 包中的 FloatingActionButton,您应该添加 app:tint 而不是 android:tint。然后在你的 xml 中你应该使用 app:tint="@color/colorWhite" 而不是 android:tint="@color/colorWhite".

右边的attributes是:

  <com.google.android.material.floatingactionbutton.FloatingActionButton
      app:srcCompat="@drawable/ic_white_camera"
      app:tint="@color/colorWhite"
      app:backgroundTint="@color/someDarkBlueColor"/>

app:srcCompat 对于与 VectorDrawable 一起工作很重要。