我正在尝试将FAB的背景设置为XML中的不同颜色。我知道我可以在代码中执行此操作,但这也需要我进行很多不方便的重构。
<android.support.design.widget.FloatingActionButton
android:layout_width="40dp"
android:layout_height="40dp"
android:background="#F38E1B"
android:id="@+id/fab"/>
出于某种原因,当背景为橙色时,背景会保持蓝色。我已经尝试将背景设置为drawable,但产生相同的结果。
这是一个错误还是我错过了什么?
答案 0 :(得分:4)
我也尝试使用与您相同的方法,并获得相同的结果。我的解决方案就是:
<item name="colorAccent">@color/yourColor</item>
在我的应用主题中。
但是,此颜色也将用于所有小部件中。
希望这有帮助!
答案 1 :(得分:3)
我遇到了同样的问题。这就是我解决问题的方法:我只是为我的按钮创建一个新主题。
我的FAB xml:
INT_MAX = ((1 << (sizeof(int)*8 - 2) - 1) * 2) + 1
我在style.xml中的新主题:
<android.support.design.widget.FloatingActionButton
...
android:theme="@style/MapButton"/>
我根据App的主题创建了一个新主题,只更改了我想要的颜色。
希望它有所帮助。
答案 2 :(得分:2)
好的我明白了。事实证明你必须将背景设置为drawable(感谢@Nilesh),但是我将它设置为drawable时出现了问题。我用过这个:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<solid android:color="@color/al_color_accent_orange_light"/>
</shape>
</item>
</layer-list>
作为我的绘画,它的工作原理。
答案 3 :(得分:1)
FloatingActionButton
延伸ImageView
请参阅此link
另见第76行
他们将background
作为drawable
并且您正在设置color
因此我认为您无法使用color
更改它。
尝试将drawable
设为背景
请参阅此link和第20行
答案 4 :(得分:1)
in xml
<android.support.design.widget.FloatingActionButton
...
app:backgroundTint="@color/background_tint"
android:src="@drawable/ic_add" />
代码
mFlaotsetBackgroundTintList(ColorStateList.valueOf(Color.Blue))