我正在禁用材质浮动操作按钮,但当禁用设置为 true 时,颜色不会改变。我认为 Material 有一个 FAB 主题,禁用后它应该变成浅灰色。我不想在每次启用/禁用背景时添加代码来更改背景。
我目前使用的材料版本:1.1.0
在代码中我只是将 fab 设置为禁用fab.isEnabled = false
这是 XML
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/save_reservation_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/keyline_2"
app:backgroundTint="@color/color_primary"
android:src="@drawable/ic_save_black_72dp"
app:tint="@color/color_on_primary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
禁用/启用的 fab 如下所示:
它应该看起来像这样:
I suspect这是罪魁祸首:
app:backgroundTint="@color/color_primary"
无论 FAB 的状态如何,这都会给 FAB 着色。
您可以通过将色调设置为ColorStateList
而不是原始颜色值。即创建一个名为fab_color.xml
在你的res/color/
目录,并包括以下内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="your gray here"/>
<item android:color="@color/color_primary"/>
</selector>
并将您的色调更改为:
app:backgroundTint="@color/fab_color"
或者,您可以调整 Activity 的主题,使 FAB 的默认颜色是您想要的颜色(@color/color_primary
),然后删除app:backgroundTint
总共 attr。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)