我一直试图改变材质的浮动动作按钮的颜色,但没有成功。
<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")));
但上述方法都不起作用。我也尝试了提出的重复问题的解决方案,但没有一个可行;按钮仍然是绿色的,也变成了一个正方形。
附:如果知道如何增加连锁反应也很好,我也不明白。
使用材质主题和材质组件FloatingActionButton,默认情况下,它采用styles.xml属性colorSecondary中的颜色集。
你可以在xml中使用app:backgroundTint属性:
<com.google.android.material.floatingactionbutton.FloatingActionButton
...
app:backgroundTint=".."
app:srcCompat="@drawable/ic_plus_24"/>
你可以使用fab.setBackgroundTintList();
您可以使用<item name="backgroundTint">属性自定义样式
<!--<item name="floatingActionButtonStyle">@style/Widget.MaterialComponents.FloatingActionButton</item> -->
<style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
<item name="backgroundTint">#00f</item>
<!-- color used by the icon -->
<item name="tint">@color/...</item>
</style>
从材质组件的1.1.0版本开始,你可以使用新的materialThemeOverlay属性来覆盖某些组件的默认颜色:
<style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
<item name="materialThemeOverlay">@style/MyFabOverlay</item>
</style>
<style name="MyFabOverlay">
<item name="colorSecondary">@color/custom2</item>
<!-- color used by the icon -->
<item name="colorOnSecondary">@color/...</item>
</style>