XML 中的 backgroundTint 不会改变 BottomActionBar 的颜色,即使使用 min API >= 21

Posted

技术标签:

【中文标题】XML 中的 backgroundTint 不会改变 BottomActionBar 的颜色,即使使用 min API >= 21【英文标题】:backgroundTint in XML does not change color of BottomActionBar, even with min API >= 21 【发布时间】:2020-02-16 10:46:44 【问题描述】:

我正在尝试设置一个带有附加 FloatingActionButton 的基本 BottomActionBar。目前,除了酒吧的背景之外,一切似乎都正常。如果我使用android:background="some_background_color",则该条将填充所需的颜色。

问题是我希望我的 FAB 被放置,而这种方法似乎与 fabCradleMarginfabCradleRoundedCornerRadius 不兼容,因为修改这些值不会影响背景栏。

所有教程都表明app:backgroundTint="some_background_color" 是要走的路,但我的操作栏不受此影响。我已将我的 API 设置为 >= 21,据我所知,那里没有问题。

我的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainActivity">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="parent">

        <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/bottom_app_bar"
            style="@style/Widget.MaterialComponents.BottomAppBar"
            android:layout_
            android:layout_
            android:layout_gravity="bottom"
            app:backgroundTint="@color/colorPrimary"
            app:fabAlignmentMode="center"
            app:fabAttached="true"
            app:fabCradleMargin="10dp"
            app:fabCradleRoundedCornerRadius="10dp" />

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab"
            android:layout_
            android:layout_
            android:src="@drawable/ic_add_white_24dp"
            app:layout_anchor="@+id/bottom_app_bar"
            app:layout_anchorGravity="center_horizontal"
            app:fabSize="normal"/>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

backgroundTint 对 bar 没有影响;它仍然是完全白色的。

对不起,如果这是一个基本问题;我对 Android 很陌生,花了很长时间寻找解决方案无济于事。

【问题讨论】:

app:backgroundTint="@color/..." 有效。使用版本 1.1.0-beta01 我正在使用 1.1.0-beta01,而 app:backgroundTint="@color/..." 对我不起作用。 【参考方案1】:

我测试了你的代码 它显示BottomAppBar 的错误,所以我发现此代码app:fabAttached="true" 未定义...

删除它,它将完美地工作。 祝你好运。

【讨论】:

以上是关于XML 中的 backgroundTint 不会改变 BottomActionBar 的颜色,即使使用 min API >= 21的主要内容,如果未能解决你的问题,请参考以下文章

android:backgroundTint 不工作 - Android

使用波纹效果更改 FAB 颜色

错误:(36, 33) 尺寸类型不允许(在“backgroundTint”处,值为“22dp”)

Android改变图片背景颜色tint(着色)或 backgroundTint

如何将渐变可绘制设置为 FloatingActionButton 上的 backgroundTint 属性

如果 EditText 字段中有文本,如何更改 backgroundtint 颜色?