当前位置: 首页 > 知识库问答 >
问题:

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

阮昊阳
2023-03-14

在尝试为 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个答案

徐洋
2023-03-14

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

 类似资料:
  • 只有在第一次打开应用程序时,半透明的状态栏才会出现问题。请看屏幕截图: http://i1335.photobucket.com/albums/w673/ductruongcntt/Screenshot_2014-06-26-14-17-26_zps1e9a56f4.png 以下是我使用的样式的XML,其中包括半透明状态栏: 我的主题是:

  • 我一直在寻找一种方法,在状态栏完全透明(而不是半透明)的情况下重新给导航栏上色。要使状态栏完全透明,需要将布局标志设置为无限制,但这也会使导航栏失去颜色。有没有办法做到这一点?

  • 我知道这个问题已经被问过很多次了,但是所有的答案要么不起作用,要么使用不推荐的代码: Android完全透明的状态栏 透明状态栏-Android 4.4(KitKat)之前的版本 Lollipop:在状态栏后面绘制,颜色设置为透明 我想实现与最新的谷歌地图应用程序相同的效果: 完全透明的状态栏(只有状态栏,而不是导航栏!) 部分工作,因为它还隐藏了导航栏

  • 我想制作一个完全透明的状态栏和导航栏,就像Google Play那样。当我使用窗口设置来实现它时,键盘会覆盖编辑文本。 当此代码使用键盘输入覆盖的编辑文本时: 此外,该代码并没有使其完全透明,它只是使其半透明 还是这个

  • 我不确定这是否可行,但我正在尝试在不使状态栏透明的情况下使导航栏透明。之所以选择后者,是因为我有一个工具栏,如果不是这样的话,它会在状态栏后面绘制。 现在,我正在使用一个fakeStatusBar布局,它显示在状态栏之前,这样用户就可以看到所有的东西: 唯一的问题是,在进行多任务处理时,缩略图看起来不太好,因为工具栏不在它应该位于的位置。

  • 我正在尝试为一个学校项目制作我的第一个应用程序。我有时会通过跟随其他人的问题和答案来获得半透明的状态栏,但是导航只是变成灰色,但是没有活动的内容,但是抽屉菜单在状态栏和导航栏下面绘制,我如何使活动也在状态栏和导航栏下面绘制? 在此处输入图像描述 在此处输入图像描述 在onCreate下,图2的代码为: WindowManager。布局参数。旗帜(半透明导航); 我试过使用android:fitsy