我一直试图改变材质的浮动动作按钮的颜色,但没有成功。

<android.support.design.widget.FloatingActionButton
    android:id="@+id/profile_edit_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/ic_mode_edit_white_24dp" />

我试着补充:

android:background="@color/mycolor"

或者通过代码:

FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab);
fab.setBackgroundColor(Color.parseColor("#mycolor"));

or

fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor")));

但上述方法都不起作用。我也尝试了提出的重复问题的解决方案,但没有一个可行;按钮仍然是绿色的,也变成了一个正方形。

附:如果知道如何增加连锁反应也很好,我也不明白。


当前回答

文档建议它默认采用@color/accent。但是我们可以在代码中使用

fab.setBackgroundTintList(ColorStateList)

还记得,

使用这个库的最低API版本是15,所以你需要更新它!如果你不想这样做,那么你需要定义一个自定义绘图和装饰它!

其他回答

我也有同样的问题,都在抓我的头发。谢谢你 https://stackoverflow.com/a/35697105/5228412

我们能做什么…

 favourite_fab.setImageDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.favourite_selected));

这对我来说很好,希望其他人也能到达这里。

感谢自动完成功能。经过几次尝试,我很幸运:

    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    card_view:backgroundTint="@color/whicheverColorYouLike"

——或——(两者基本上是一样的)

    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:backgroundTint="@color/whicheverColorYouLike"

这在API Version 17和设计库23.1.0上为我工作。

在芬兰湾的科特林:

val gray = getColor(requireContext(), R.color.green)
binding.fabSubmit.backgroundTintList = ColorStateList.valueOf(gray)

在color.xml文件中添加颜色,然后添加这行代码… floatingActionButton.setBackgroundTintList (ColorStateList.valueOf (getresource () .getColor (R.color.fab2_color)));

材质1.1.0中浮动动作按钮的新主题属性映射

在你的应用主题中:

设置colorSecondary为FAB设置背景颜色(映射到backgroundTint) 设置colorOnSecondary为图标/文本和FAB的波纹色设置颜色(映射到tint和rippleColor)


<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <!-- ...whatever else you declare in your app theme.. -->
    <!-- Set colorSecondary to change background of FAB (backgroundTint) -->
    <item name="colorSecondary">@color/colorSecondary</item>
    <!-- Customize colorSecondary to change icon/text of FAB (maps to tint and rippleColor) -->
    <item name="colorOnSecondary">@android:color/white</item>
</style>