更改FloatingActionButton的背景?

时间:2015-06-16 16:48:46

标签: android android-layout material-design

我正在尝试将FAB的背景设置为XML中的不同颜色。我知道我可以在代码中执行此操作,但这也需要我进行很多不方便的重构。

<android.support.design.widget.FloatingActionButton
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:background="#F38E1B"
    android:id="@+id/fab"/>

enter image description here

出于某种原因,当背景为橙色时,背景会保持蓝色。我已经尝试将背景设置为drawable,但产生相同的结果。

这是一个错误还是我错过了什么?

5 个答案:

答案 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))