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

如何创建完全透明的导航栏?

越扬
2023-03-14

我想将导航栏更改为完全透明,如下图所示。

我试过

有解决办法吗?因为我什么也没找到,但我看到一些使用它的应用程序,比如 Nova。它甚至在谷歌的指导方针中 https://material.google.com/layout/structure.html#structure-system-bars


共有3个答案

章禄
2023-03-14

您可以使用FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS实现这一点。文档说明:

表示此窗口负责绘制系统栏背景的标志。如果设置,系统条将以透明背景绘制,并且此窗口中的相应区域用< code>getStatusBarColor()和< code > getNavigationBarColor()中指定的颜色填充。

像在您的活动的on创建中那样设置它:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
呼延才
2023-03-14

在创建您的活动时使用以下代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            }

在你的风格中.xml

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentNavigation">false</item>
羊舌诚
2023-03-14
匿名用户

我受到了Google Keep应用程序的启发,该应用程序具有类似的实现,如下所示:

所以我试图找到一个关于如何实现这件事的合适帖子,但不幸的是什么也没找到,上面的答案也不起作用。所以我决定尝试所有与导航相关的标志 Android Studio 建议的。

让我详细解释一下:

> < li>

当您使用浅色主题时,只有< code > Android:navigationbar color 不起作用。但是在黑暗主题上,它会起作用。

windows Trans家导航设置为true将做2件事:

  • 在软导航栏下方绘制活动
  • 覆盖navigationBarColor并强制其透明

这将如下图所示:

这在某种程度上接近预期的结果,但这并不是因为它在导航栏下方绘制活动组件。而且它会弄乱您的填充和边距(在此处查看完整屏幕截图)。更重要的是,您必须为每个活动执行此操作,并且还必须调整当前边距。

这可以在不损害当前布局的情况下实现。要在黑暗主题中做到这一点,你没有问题,只需设置< code > Android:navigationbar color 即可。

然而,我们在这里目标是用一个轻松的主题字母(#FFFFFF)。使用需要API 27或更高版本的< code > Android:windowLightNavigationBar 和< code > Android:navigationbar color 将得到我们想要的结果。

<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightNavigationBar">true</item>

对于我的应用程序案例,colorPrimaryDark 在浅色主题中#FFFFFF,在深色主题中德古拉,您也可以为此声明一个新变量。这会产生以下结果:

深色主题

这里< code > Android:navigationbar color 正在设置导航条的背景颜色。和< code > Android:windowLightNavigationBar 设置深色按钮颜色,并指示背景为浅色,正如您从其名称中所能理解的那样。

希望这有所帮助!

 类似资料:
  • 我注意到当打开我的应用程序时,有两个屏幕可以到达我的第一个颤动屏幕 1-1屏幕有灰色或(50%透明)状态和导航栏黑色和浅色图标。2-2屏幕有100%透明的状态和导航栏和白色图标。 我怎么能让所有的屏幕像第一次颤动屏幕100透明状态和导航栏与黑色图标(亮度暗)。 第一屏 第二屏 第一个颤振筛 风格xml 主要活动。kt 编辑 现在我已经改变了我的代码,第一个屏幕是正确的,但第二个屏幕仍然图标是白色的

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

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

  • 我在试着做一个Android发射器。我想实现一个完全透明的状态栏和导航栏,这里是我的主题xml文件。 最后两项不管用,Lollipop上还有影子。 我想实现的(新星发射器): 如何让状态栏和导航栏“透明”而不是“半透明”?

  • 我一直在Stack上寻找一些关于这个的指导,但是没有一个问题被问到这么深,答案也没有更新到最新的Swift版本,甚至没有更新到最新的Swift版本。 这是我所拥有的: 带有两个栏项目的导航控制器: 我的目标是:使导航根视图控制器的导航栏透明(但按钮和标题仍然可见),而不是子导航——没有奇怪的细微差别,比如之前的彩色闪光,或切断导航栏(参见gif) 我尝试过的事情: 在<代码>视图将出现(u动画:B

  • 我想要这样的东西: 我不知道如何实现…任何帮助!