折叠工具栏在夜间模式下会改变颜色。

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

我有一个折叠式工具栏布局,展开时以主色为背景。

enter image description here

但当我切换到夜间模式时,彩色背景变成了黑色,但我希望它保留原色。不过折叠后的工具栏还是可以的。

enter image description here

我不知道这个背景是怎么来的。谁能告诉我正确的方向?

编码。XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
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_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:fitsSystemWindows="true">

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appbar"
    android:layout_height="@dimen/app_bar_height"
    android:layout_width="match_parent"
    android:fitsSystemWindows="true"
    android:theme="@style/Theme.Tacho.AppBarOverlay">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/collapsingToolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="4dp"
        app:expandedTitleMarginStart="100dp"
        app:expandedTitleMarginBottom="50dp"
        app:expandedTitleTextAppearance="@style/PosterText"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        tools:title="Hello MindOrks!">

        <ImageView
            android:id="@+id/toolbarImage"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            android:transitionName="@string/moviePosterTransitionName"
            tools:background="#AA202020"
            app:layout_collapseMode="parallax" />

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom">

            <ImageView
                android:id="@+id/poster"
                android:layout_width="70dp"
                android:layout_height="0dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                tools:background="#AA202020"
                android:adjustViewBounds="true"
                android:layout_marginStart="@dimen/activity_horizontal_margin"
                android:layout_marginBottom="@dimen/activity_horizontal_margin"
                android:elevation="6dp"
                app:layout_constraintDimensionRatio="h,60:89"/>

            <LinearLayout
                android:id="@+id/bgSubtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:gravity="center_vertical"
                app:layout_constraintBottom_toBottomOf="@id/poster"
                app:layout_constraintStart_toEndOf="@id/poster"
                android:layout_marginStart="12dp"
                >

                <ImageView
                    android:id="@+id/show_type"
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:src="@drawable/ic_local_movies_24dp"
                    android:tint="@color/colorOnDark"
                    android:scaleType="centerInside"
                    android:layout_marginEnd="@dimen/line_spacing"/>

                <TextView
                    android:id="@+id/item_desc"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="14sp"
                    android:textAlignment="center"
                    android:maxLines="2"
                    tools:maxLines="1"
                    android:ellipsize="end"
                    android:layout_marginEnd="2dp"
                    tools:text="2019"
                    android:textColor="@color/colorOnDark"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="@id/show_type"
                    app:layout_constraintBottom_toBottomOf="@id/show_type"
                    android:gravity="center"/>

            </LinearLayout>

        </androidx.constraintlayout.widget.ConstraintLayout>

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:titleTextColor="@color/colorOnDark"
            app:popupTheme="@style/Theme.Tacho.PopupOverlay" />

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

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

<include layout="@layout/content_movie_detail"/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

风格.xml

<style name="Theme.TheMovieApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorSecondary">@color/colorSecondary</item>
    <item name="colorSecondaryVariant">@color/colorSecondaryDark</item>
    <item name="colorOnSecondary">@color/white</item>

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

    <item name="colorSurface">@color/colorSurface</item>
    <item name="colorOnSurface">@color/colorOnSurface</item>

    <item name="android:textColorPrimary">@color/textColorPrimary</item>

    <item name="android:windowDrawsSystemBarBackgrounds">true</item>

    <item name="android:fontFamily">@font/roboto_light</item>
    <item name="fontFamily">@font/roboto_light</item>
</style>

<style name="Theme.TheMovieApp.Collapsing">
    <item name="android:windowTranslucentStatus">true</item>
</style>

<style name="Theme.Tacho.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="Theme.Tacho.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
android androidx
1个回答
1
投票

我相信在你的onCreate方法中加入这个就可以解决这个问题。

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

0
投票

鉴于你使用的是 DayNight 主题,安卓系统会自动为你的用户界面应用黑暗主题。

如果你想支持黑暗主题,你可以创建一个 night 在你的颜色的变化 res/values-night/colors.xml

然后覆盖你喜欢的颜色。

例子

resvalues-nightcolors.xml

<color name="colorPrimary">#000000</color>

resvaluescolors.xml

<color name="colorPrimary">#FFFFFF</color>

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