我一直试图改变材质的浮动动作按钮的颜色,但没有成功。
<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")));
但上述方法都不起作用。我也尝试了提出的重复问题的解决方案,但没有一个可行;按钮仍然是绿色的,也变成了一个正方形。
附:如果知道如何增加连锁反应也很好,我也不明白。
如文档中所述,默认情况下,它接受styles.xml属性colorAccent中的颜色集。
此视图的背景颜色默认为主题的colorAccent。如果你想在运行时改变这个,那么你可以通过setBackgroundTintList(ColorStateList)这样做。
如果你想改变颜色
在XML中带有属性app:backgroundTint
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_add"
app:backgroundTint="@color/orange"
app:borderWidth="0dp"
app:elevation="6dp"
app:fabSize="normal" >
在代码中用.setBackgroundTintList(答案由ywwynm提供)
正如@Dantalian在评论中提到的,如果你想改变设计支持库v22(包括)的图标颜色,你可以使用
android:tint="@color/white"
对于自v23以来的设计支持库,您可以使用:
app:tint="@color/white"
androidX库也需要在你的xml布局中设置一个0dp边界:
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_add"
app:backgroundTint="@color/orange"
app:borderWidth="0dp"
app:elevation="6dp"
app:fabSize="normal" />