谷歌今天早些时候刚刚发布了 Android 14 Beta 1,所以如果你一直渴望在你的日常驱动程序 Pixel 上试用 Android 14,那么现在是时候注册 Android Beta 程序了,如果你还没有的话。但是,当您升级到 Android 14 Beta 1 时,您可能想知道应该先检查什么。好吧,Android 14 中有很多新功能,而 Beta 1 在功能集上进行了扩展,增加了一个呼声很高的功能:透明导航栏。
多年来,用户一直在Reddit和Google Issue Tracker等论坛上要求谷歌将导航栏默认设置为透明。他们描述的问题是,在某些应用程序中,导航栏的背景是黑色的,这与浅色主题的用户界面形成鲜明对比。另一方面,导航栏要么是透明的,要么至少与其他应用程序中的 UI 相匹配,从而导致视觉上不一致的体验。
自 Android 5.0 Lollipop 以来,应用程序开发人员已经能够更改Android 导航栏的颜色,默认情况下为纯黑色。虽然使导航栏透明从表面上看似乎相当简单,但开发人员不得不考虑如何处理重要 UI 元素和导航栏之间的视觉重叠。例如,如果不设置系统栏 inset,一个浮动操作按钮(如上面屏幕截图中的复选标记)将绘制在导航栏下方,使其难以点击。
通过将透明度设为可选,Google 确保导航栏永远不会遮挡应用程序中的关键 UI 元素。但是,由于某些应用程序从未实现此功能,因此我们会遇到导航栏与某些应用程序中的 UI 匹配但其他应用程序中的 UI 不匹配的情况。Android 14 Beta 1 对这个问题有一个有趣的解决方案:添加一个切换开关,使导航栏的背景色默认透明。
在 Android 14 Beta 1 中,在“设置”>“系统”>“开发人员选项”中有一个名为“透明导航栏”的新设置,“默认情况下使 [s] [the] 导航栏背景颜色透明。” 在后台,启用此设置会启用“TransparentNavigationBar”运行时资源覆盖 (RRO),它将布尔值 config_navBarDefaultTransparent 设置为“true”。这个布尔值由将导航栏的背景颜色设置为透明的框架读取。
有趣的是,启用此功能后,应用程序的 UI 不会绘制在导航栏下方,这意味着应用程序和导航栏之间不会有任何视觉重叠。这是启用和不启用“透明导航栏”功能的示例:
该功能是否会真正出现在稳定的 Android 14 版本中还有待观察。我们只发布了第一个测试版,因此不能保证 Google 会在稳定版本中保留此功能,更不用说未来的测试版了。使导航栏的背景与应用程序相匹配是用户多年来一直要求的,因此我们希望 Google 保留此功能。