为什么颜色不适用于 android material3?

问题描述 投票:0回答:2

最近在android学习之旅中熟悉了Material3。我已经在我的 colors.xml 文件中成功定义了颜色,但是,我遇到了应用栏、工具栏和 FAB 没有应用这些定义的颜色的问题。此外,我使用的是

Theme.Material3.Light.NoActionBar
主题,但工具栏中的图标显示为黑色,而我希望它们为白色。以下是我目前正在使用的代码片段:

简而言之,在我的应用程序中看不到任何在 colors.xml 中定义的颜色

颜色.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Primary Colors -->
    <color name="colorPrimary">#2BAD7D</color>
    <color name="colorPrimaryVariant">#239366</color>
    <color name="colorOnPrimary">#FFFFFF</color>

    <!-- Secondary Colors -->
    <color name="colorSecondary">#FFFFFF</color>
    <color name="colorSecondaryVariant">#F2F2F2</color>
    <color name="colorOnSecondary">#2BAD7D</color>

    <!-- Background Colors -->
    <color name="colorBackground">#FFFFFF</color>
    <color name="colorOnBackground">#737373</color>

    <!-- Surface Colors -->
    <color name="colorSurface">#F2F2F2</color>
    <color name="colorOnSurface">#737373</color>

    <!-- Error Colors -->
    <color name="colorError">#B00020</color>
    <color name="colorOnError">#FFFFFF</color>

    <!-- On-Surface Colors -->
    <color name="colorHighEmphasis">#1B1B1B</color>
    <color name="colorMediumEmphasis">#737373</color>
    <color name="colorDisabled">#C5C5C5</color>
</resources>

activity_main.xml

 <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/AppBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true">
        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/ToolBar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:title="@string/app_name"
            android:titleTextAppearance="@style/ToolbarTitleAppearance"/>
        <com.google.android.material.tabs.TabLayout
            android:id="@+id/TabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabIndicatorColor="@color/tabIndicator"
            app:tabTextAppearance="@style/TabLayoutStyle"
            app:tabTextColor="@color/tabTextColor"
            app:tabSelectedTextColor="@color/tabSelectedTextColor"
            app:tabGravity="fill"
            app:tabInlineLabel="true"
            app:tabIconTint="@drawable/x_tab_icon_opacity"
            android:contentDescription="@string/homeTabLayout"/>
    </com.google.android.material.appbar.AppBarLayout>
 
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        android:contentDescription="@string/homeFAB"
        android:src="@drawable/x_icon_message"
        tools:ignore="ImageContrastCheck"/>
android xml material-ui floating-action-button material3
2个回答
0
投票

也许你还没有将 Material 3 主题应用到你的布局中。

将 material 3 主题放入你的 activity_main: android:theme="@style/Material3Theme"

并在您的价值观/主题中使用您想要的颜色创建 Material3Theme:

 <style name="Material3Theme" parent="Theme.Material3.Light.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/...</item>
        <item name="colorPrimaryVariant">@color/...</item>
        <item name="colorOnPrimary">@color/...</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/...</item>
        <item name="colorSecondaryVariant">@color/...</item>
        <item name="colorOnSecondary">@color/...</item>
        <!-- Status bar color. -->
        <!--        <item name="android:statusBarColor">?attr/colorPrimary</item>-->
        <item name="android:statusBarColor">@color/...</item>
        <!-- Customize your theme here. -->
    </style>

0
投票

这部分回答了你的问题。

对于

FloatingActionButton
黑色图标;它可以通过使用
app:tint="@null"
来获得预期的颜色应用来解决:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    app:tint="@null"
    ...

关于工具栏,不清楚您指的是工具栏上的哪些图标。

© www.soinside.com 2019 - 2024. All rights reserved.