提问者:小点点

带插图的 Android 导航栏和状态栏透明度


在尝试为 Android 实现透明导航和状态栏(边缘到边缘)时,我遵循了本指南。我正在使用自定义顶部栏,以便我可以在滚动时隐藏它。

    <com.google.android.material.appbar.AppBarLayout
        app:liftOnScroll="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/topAppBar"
            app:layout_scrollFlags="scroll|enterAlways|snap"
            app:title="Calorie Vault"
            style="@style/Widget.MaterialComponents.Toolbar.Primary"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize" />

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

我将 WindowCompat.setDecorFitsSystemWindows(window, false) 添加到我的 MainActivity 中。然后,在我的 Fragment 中,我使用插图来向上推送 UI,以便 3 按钮导航不会覆盖某些可点击的界面。

        ViewCompat.setOnApplyWindowInsetsListener(view) { view, windowInsets ->
            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())

            view.updatePadding(
                top = insets.top, // this is for the tool bar inset
                bottom = insets.bottom // lift up the bottom part of the UI above navigation bar
            )
            WindowInsetsCompat.CONSUMED
        }

我的主题是这样的:

    <style name="Theme.Calorie_vault" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/white</item>
        <item name="colorPrimaryVariant">@color/light_teal</item>
        <item name="colorOnPrimary">@color/black</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/light_teal</item>
        <item name="colorSecondaryVariant">@color/light_teal</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">@android:color/transparent</item>
        <item name="android:enforceStatusBarContrast">false</item>
        <!-- Customize your theme here. -->
        <item name="android:enforceNavigationBarContrast">false</item>
        <item name="android:navigationBarColor">@android:color/transparent</item>
        <item name="android:windowLightStatusBar">true</item>
    </style>

但我添加的那些插图并不透明。这是一张他们看起来的照片:屏幕截图。请注意,手势导航栏的颜色不同。

如何去除插图的颜色?


共1个答案

匿名用户

将视图的背景设置为透明。