工具栏TitleTextColor在黑暗模式下不会更改

时间:2020-07-03 08:26:02

标签: android android-toolbar android-theme android-collapsingtoolbarlayout

我正在集成黑暗模式,我有折叠式工具栏和打包在appbarlayout中的工具栏, 问题是当我尝试将工具栏标题颜色设置为暗模式时将其设置为白色时,在明亮模式下它同时不起作用,颜色会相应显示,我几乎尝试了所有操作,但我不知道到底在发生什么,我有颜色和颜色的夜间文件夹,我为它们都设置了颜色并将其添加到我的工具栏中,但是它没有任何改变,如果有任何帮助,我将深表感谢,谢谢

  • 这是在折叠标题之前 enter image description here

  • 并且在我折叠要在工具栏中设置的标题后,它不显示白色(这是我想要在黑暗模式下显示工具栏标题颜色的颜色) enter image description here

  • 这是我的xml代码

 <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".View.MealDetails">

        <com.google.android.material.appbar.AppBarLayout
            android:id="@+id/appbarlaout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.google.android.material.appbar.CollapsingToolbarLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/collapsingtoolbar"
                android:fitsSystemWindows="true"
                app:contentScrim="@color/toolbarcolor"
                app:titleEnabled="true"
                app:title="@{details.strMeal}"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="190dp"
                    app:mealDetailsImg="@{details.strMealThumb}"
                    android:background="@drawable/noimg"
                    tools:ignore="ContentDescription" />
                    <com.google.android.material.appbar.MaterialToolbar
                        android:layout_width="match_parent"
                        android:layout_height="?attr/actionBarSize"
                        android:id="@+id/mealdetailstoolbar"
                        app:menu="@menu/addfavmenu"
                        app:navigationIcon="@drawable/arrow_back_black"
                        app:layout_collapseMode="pin" />

            </com.google.android.material.appbar.CollapsingToolbarLayout>

        </com.google.android.material.appbar.AppBarLayout>
  • 这是彩色文件夹
<resources>
    <color name="colorPrimary">#6200EE</color> 
    <color name="colorPrimaryDark">#000000</color> // changing status bar color 
    <color name="colorAccent">#000000</color> // changing icons color 
    <color name="textColorPrimary">#000000</color> // i m not sure if this is correct but i think it is for toolbar text ( i could be wrong )
    <color name="ratetextcolor">#000000</color> /// this is to change rate text color
    <color name="iconscolor">#000000</color> // this is for icons color
    <color name="faviconcolor">#d10d06</color> // i have an icon which i wanted to settle to red in light mode and blue in dark mod
    <color name="categoryareacolor">#000000</color> //textviews
    <color name="headerColor">#ffffff</color>
</resources>

  • 这是夜间文件夹
<resources>
        <color name="colorPrimary">#6200EE</color>
        <color name="colorPrimaryDark">#6200EE</color>
        <color name="colorAccent">#6200EE</color>
        <color name="textColorPrimary">#ffffff</color>
        <color name="ratetextcolor">#ffffff</color>
        <color name="iconscolor">#3266a8</color>
        <color name="faviconcolor">#3266a8</color>
        <color name="categoryareacolor">#000000</color>
</resources>

2 个答案:

答案 0 :(得分:0)

您可以使用:

 <com.google.android.material.appbar.AppBarLayout
    ...>

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:fitsSystemWindows="true"
            app:contentScrim="@color/..."
            android:theme="@style/CollapsingToolbarLayout_Overlay"
            >

    

具有:

<style name="CollapsingToolbarLayout_Overlay">
    <!-- Title text color -->
    <item name="android:textColorPrimary">@color/....</item>
    <!-- Toolbar up color -->
    <item name="colorControlNormal">@color/...</item>
</style>   

enter image description here enter image description here

答案 1 :(得分:0)

因为android会根据主题从浅色主题的文件夹values和深色主题的values-night中选择正确的颜色,但是这些toolbarcolor文件中没有xml因此它总是从toolbarcolor的{​​{1}}中选择它

所以我认为以下方法可以工作(如果不行,请告诉我)

添加到AppTheme的{​​{1}}

colors.xml

添加到values的{​​{1}}

<color name="toolbarcolor">your day color</color>

您可以从colors.xml删除values-night