
状态栏、标题栏和导航栏统称为系统栏。它们会显示电池电量、时间和通知提醒等重要信息,并支持用户随时随地直接与设备互动。
无论您是设计用于与 Android OS、输入法或其他设备功能进行交互的界面,都必须考虑系统栏的重要性。

要点总结
在设计应用时,请添加系统栏。请考虑界面安全区域、系统互动、输入法、显示屏缺口、状态栏、字幕栏、导航栏和其他设备功能。
将系统状态栏和导航栏保持透明或半透明状态,并在这些栏后面绘制内容以实现全屏显示。
状态栏
在 Android 中,状态栏包含通知图标和系统图标。用户通过下拉状态栏来访问通知栏,从而与状态栏互动。状态栏样式可以是透明或半透明。

状态栏图标
状态栏图标可能会因上下文、时间、用户设置的偏好设置或主题以及其他参数而有所不同。如需了解详情,请参阅系统栏图标。

收到通知时,状态栏中通常会显示一个图标。这会向用户发出信号,告知他们抽屉式通知栏中有内容可看。此图标可以是代表频道的应用图标或符号。请参阅通知设计。

设置状态栏样式
将状态栏设为透明或半透明,以确保应用内容可跨屏幕显示。然后,设置系统栏图标的样式,以便图标具有适当的对比度。
Android 15 强制采用无边框设计,默认情况下状态栏会设为透明。调用 enableEdgeToEdge()
以实现向后兼容性。
在下图的左侧图片中,状态栏是透明的,TopAppBar
的绿色背景在状态栏后面绘制。

当界面未显示在状态栏下方或在状态栏下方绘制图片时,透明状态栏非常适用。当界面在状态栏下滚动时,半透明状态栏非常适用。如需详细了解渐变保护,请参阅边到边设计。

导航栏
Android 允许用户使用返回、主屏幕和概览控件来控制导航:
- “返回”会直接返回上一视图。
- 主屏幕转场效果会从应用转到设备的主屏幕。
- “概览”会显示正在运行的应用和近期未关闭的应用。
用户可以从各种导航栏配置(包括手势导航 [推荐] 和三按钮导航)中进行选择。为了提供最佳体验,请考虑多种类型的导航。
手势导航
除非用户在其偏好设置中选择其他方式,否则我们建议您使用手势导航。手势导航不会使用返回、主屏幕和概览按钮,而是显示单个手势手柄以提供操作提示。用户通过从屏幕左侧或右侧边缘滑动返回,从底部向上滑动返回主屏幕。向上滑动并按住即可打开概览。
手势导航是一种更可伸缩的导航模式,适用于在移动设备和大屏设备上进行设计。为了提供最佳用户体验,请通过以下方式考虑手势导航:
- 支持全屏内容。
- 避免在手势导航内边距下添加互动或触摸目标。
如需了解详情,请参阅添加对手势导航的支持。

三按钮导航
“三按钮”导航栏提供了三个按钮,分别用于返回、主屏幕和概览。

其他导航栏变体
您的用户可能可以使用其他导航栏配置,具体取决于 Android 版本和设备。例如,“双按钮”导航提供了两个按钮,分别用于返回和主屏幕。

导航栏图标
导航栏图标的显示方式也可能会因用户设置的偏好设置或主题而异。如需了解详情,请参阅系统栏图标。
设置导航栏样式
Android 会在手势导航模式和按钮模式下处理界面的视觉保护。系统会应用动态配色自适应功能,其中系统栏的内容会根据其后面的内容而更改颜色。
手势导航模式
以 Android 15 为目标平台或对 Activity
调用 enableEdgeToEdge
后,系统会绘制透明的手势导航栏并应用动态配色。在以下示例中,如果导航栏中的手柄位于浅色内容上方,则会更改为深色,反之亦然。

我们始终建议使用透明的手势导航栏。

正确做法

错误做法
按钮模式
以 Android 15 为目标平台或对 Activity
调用 enableEdgeToEdge
后,系统会在按钮导航栏后面应用半透明遮罩,您可以通过将 Window.setNavigationBarContrastEnforced()
设为 false 来移除该遮罩。

如果存在底部应用栏或底部应用导航栏,或者界面不会在三按钮导航栏下方滚动,我们建议使用透明三按钮导航栏。如需获取透明导航栏,请将 Window.setNavigationBarContrastEnforced()
设置为 false,并对底部应用栏进行内边距处理,以便在系统导航栏下方绘制,如图 7、8 和 9 所示。如需了解详情,请参阅系统栏保护。
使用半透明的三按钮导航栏滚动内容。如需详细了解半透明导航栏注意事项,请参阅。
键盘和导航

每种导航栏类型都会对屏幕键盘做出适当响应,以便用户执行操作,例如关闭或甚至更改键盘类型。为了确保应用的转换与键盘从屏幕底部上下滑动的转换同步,从而实现平滑的转换,请使用 WindowInsetsAnimationCompat
。
刘海屏
刘海屏是指某些设备显示屏上的一个区域延伸到显示面,这样既能为用户提供全面屏体验,又能为前置传感器留出空间。显示屏切口可能会因制造商而异。考虑显示屏缺口将如何与内容、屏幕方向和边到边显示互动。

沉浸模式

当您需要全屏体验时(例如当用户观看电影时),可以隐藏系统栏。用户仍应能够点按以显示系统栏,并导航或与系统控件互动。详细了解如何针对全屏模式进行设计,或了解如何隐藏系统栏以实现沉浸模式。