【问题标题】:How to change FAB background color如何更改 FAB 背景颜色
【发布时间】:2016-04-08 23:41:54
【问题描述】:

我正在使用浮动操作按钮,我想更改背景颜色。

这是我的代码

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/btnfab"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="right|center_vertical"
        android:layout_marginBottom="20dp"
        android:src="@drawable/search" />

这是我用来尝试实现此目的的代码:

1- android:background="@color/mycolor"
2- android:backgroundTint="@color/white"

如图所示,我的 FAB 也出现了拐角。我应该如何去除那些角落阴影?

【问题讨论】:

  • 请添加来自build.gradle的依赖项
  • 我没有添加任何 fab 依赖项。我只是通过创建 BlankActivity 来使用 fab,然后将其复制并粘贴到我的项目中。它使用我项目的主题颜色
  • 查看这篇关于FAB“角落”的帖子:stackoverflow.com/questions/34332587/…
  • @Ritesh 我已经更新了我的答案。

标签: android floating-action-button


【解决方案1】:

您可以通过将此属性添加到您的FloatingActionButton 来消除有问题的阴影:

app:borderWidth="0dp"
app:elevation="6dp"

FloatingActionButton 没有背景颜色。您可以通过以下方式更改此组件颜色:

app:backgroundTint="@color/YOURCOLOR"

记得在你的父布局中有以下行:

xmlns:app="http://schemas.android.com/apk/res-auto"

【讨论】:

    【解决方案2】:

    以您的应用风格声明以下内容:

    <item name="colorAccent">@color/yourColor</ item> 
    

    干杯

    【讨论】:

    • 虽然这会起作用,但它影响的不仅仅是 FAB。所以我会推荐一个不同的解决方案。
    • 虽然这对每个人来说可能不是一个好的解决方案(如果他们希望他们的colorAccent 与 FAB 不同),但在我的情况下它是一个完美的解决方案。
    【解决方案3】:

    首先在你的styles.xml中创建一个样式:

    <style name="PrimaryActionButton" parent="Theme.AppCompat.Light">
    <item name="colorAccent">@color/colorPrimary</item>
    </style>
    

    然后将您的工厂的主题设置为这种风格:

    <android.support.design.widget.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_favorite_white_24dp"
    android:theme="@style/PrimaryActionButton"
    app:fabSize="normal"
    app:rippleColor="@color/colorAccent" />
    

    您可以在以下位置查看完整描述: Android: Floating Action button

    【讨论】:

    • 这样你就可以支持少于 21 个的 API。虽然接受的答案不这样做。
    • 我同意...对于小于 21 的 API,这就是解决方案。这也适用于较新的 API,因此这是最通用的答案。
    • 这是最好的解决方案
    【解决方案4】:

    请在build.gradle 中更新您的android 支持和android 材料设计库。

    (请在上面添加您的 build.gradle 文件)

    根据这些网站:

    Android Developers reference 你应该只使用:

       android:backgroundTint="@color/white"
    

    我记得,这个阴影对于浮动操作按钮来说是众所周知的问题,所以请看看这些额外的库:

    http://android-arsenal.com/tag/173

    这可能会帮助您替换这个损坏的元素。

    也检查一下:

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2012-01-02
      • 2022-01-21
      相关资源
      最近更新 更多