Material 按钮不会在 Android 11 上投射白色高度阴影

Material Button won't cast white elevation shadow on Android 11

我有一个 Material 按钮(来自 Google 的 Material 组件)可以正常投射黑色阴影。但是当我改变阴影颜色时,它根本不会出现。这是按钮的 XML 部分:

   <com.google.android.material.button.MaterialButton
           android:id="@+id/next"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_marginTop="@dimen/margin_activity_horizontal"
           android:enabled="false"
           android:elevation="8dp"
           android:layout_margin="16dp"
           android:text="@string/setup_next"
           app:layout_constraintBottom_toBottomOf="parent"
           app:layout_constraintTop_toBottomOf="@id/nickname_entry_wrapper"
           app:layout_constraintLeft_toLeftOf="parent"
           app:layout_constraintRight_toRightOf="parent"
           tools:enabled="true"
           android:textSize="18sp"
           android:textColor="#000000"
           android:backgroundTint="#FFFFFF"
           android:fontFamily="@font/poppins_semibold"
           android:paddingVertical="12dp"
           android:outlineAmbientShadowColor="#FFFFFFFF"
           android:outlineSpotShadowColor="#FFFFFFFF"
           android:outlineProvider="background"
           android:translationZ="8dp"
           />

如您所见,outlineAmbientShadowColoroutlineSpotShadowColor 应该会更改由高程和 Z 平移产生的阴影颜色,对吗?我尝试同时添加海拔和 Z 平移但没有任何效果,按钮仍然有 0 个阴影。

该按钮是具有黑色背景的约束布局的子视图。如您所见,我什至尝试为 outlineProvider 使用不同的值,例如 boundspaddedBounds,但..什么都没有。

如果有人对这些大纲属性有经验,我很乐意解决这个问题。问题 并非仅针对 Android 11,我只是说我正在使用 Android 11 进行测试,因为这些大纲属性仅适用于Android 比奥利奥晚的版本。

正如 Mike M. 在评论中提到的,这些属性并没有真正改变颜色,它们只是增加了一点'tint'.

如果您想使用具有更多功能的 material 按钮,您应该看看这个库:

Github Repo: Carbon by ZieIony

它应该成功满足要求的 objective(投射白色阴影)并且在所有 Android API 上都没有问题。