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"
/>
如您所见,outlineAmbientShadowColor
和 outlineSpotShadowColor
应该会更改由高程和 Z 平移产生的阴影颜色,对吗?我尝试同时添加海拔和 Z 平移但没有任何效果,按钮仍然有 0 个阴影。
该按钮是具有黑色背景的约束布局的子视图。如您所见,我什至尝试为 outlineProvider
使用不同的值,例如 bounds
或 paddedBounds
,但..什么都没有。
如果有人对这些大纲属性有经验,我很乐意解决这个问题。问题 并非仅针对 Android 11,我只是说我正在使用 Android 11 进行测试,因为这些大纲属性仅适用于Android 比奥利奥晚的版本。
正如 Mike M. 在评论中提到的,这些属性并没有真正改变颜色,它们只是增加了一点'tint'.
如果您想使用具有更多功能的 material 按钮,您应该看看这个库:
Github Repo: Carbon by ZieIony
它应该成功满足要求的 objective(投射白色阴影)并且在所有 Android API 上都没有问题。
我有一个 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"
/>
如您所见,outlineAmbientShadowColor
和 outlineSpotShadowColor
应该会更改由高程和 Z 平移产生的阴影颜色,对吗?我尝试同时添加海拔和 Z 平移但没有任何效果,按钮仍然有 0 个阴影。
该按钮是具有黑色背景的约束布局的子视图。如您所见,我什至尝试为 outlineProvider
使用不同的值,例如 bounds
或 paddedBounds
,但..什么都没有。
如果有人对这些大纲属性有经验,我很乐意解决这个问题。问题 并非仅针对 Android 11,我只是说我正在使用 Android 11 进行测试,因为这些大纲属性仅适用于Android 比奥利奥晚的版本。
正如 Mike M. 在评论中提到的,这些属性并没有真正改变颜色,它们只是增加了一点'tint'.
如果您想使用具有更多功能的 material 按钮,您应该看看这个库:
Github Repo: Carbon by ZieIony
它应该成功满足要求的 objective(投射白色阴影)并且在所有 Android API 上都没有问题。