状态栏和导航栏统称为系统栏。它们显示电池电量、时间和通知提醒等重要信息,并提供来自任何位置的直接设备互动功能。
无论您是要设计用于与 Android 操作系统、输入法还是其他设备功能互动的界面,都必须考虑系统栏的显眼程度。将系统栏置于大多数层的顶部,以确保考虑到它们。
断球数
在设计中添加系统栏,以便将界面安全区、系统交互、输入法、刘海屏和其他设备功能考虑在内。将系统栏置于最顶层,确保考虑到它们。
正确做法:将系统栏设为透明,并全屏布置应用,在栏下方延续界面,以提供全面的全面体验。
如果您无法将两个栏都设置为透明,请确保栏的颜色与应用正文的颜色一致。例如,使底部导航栏颜色与手势栏的颜色保持一致,并将顶部状态栏颜色与正文颜色进行匹配。
避免在手势边衬区下方添加点按手势或拖动目标;这些会与无边框和手势导航冲突。
在系统栏后面绘制内容
借助无边框功能,Android 可以在系统栏下方绘制界面,从而提供沉浸感更强的体验。我们建议您全屏显示导航栏,因为将导航栏设置为透明是用户经常会提出的一项请求。(了解如何支持无边框)。
应用可以通过响应边衬区来解决内容重叠问题。边衬区说明了需要为应用内容留出多大尺寸的内边距,以避免与 Android OS 界面的某些部分(如导航栏或状态栏)或实体设备功能(如刘海屏)重叠。
在针对无边框用例进行设计时,请注意以下类型的边衬区:
- 系统栏边衬区适用于既可点按又不应被系统栏在视觉上遮挡的界面。
- 系统手势边衬区适用于系统用来优先于您的应用的手势导航区域。
状态栏
在 Android 中,状态栏包含通知图标和系统图标。用户可通过将状态栏下拉来访问通知栏来与该状态栏互动。
根据上下文、一天中的时段、用户设置的偏好设置或主题以及其他参数,状态栏的显示方式可能会有所不同。您还可以设置状态栏样式,如以下示例所示。
收到通知时,状态栏中通常会显示图标。这会向用户表明,抽屉式通知栏中有内容可看。可以是代表频道的应用图标或符号。请参阅通知设计。
设置状态栏样式
将状态栏背景设置为应用主题的一部分,使用自定义颜色或样式,并设置透明度和不透明度。
<style name="Theme.MyApp">
<item name="android:statusBarColor">
@android:color/transparent
</item>
</style>
如果您手动设置背景颜色,则可以选择将状态栏内容的样式设置为浅色或深色,以获得最佳对比度。
刘海屏和状态栏
刘海屏是某些设备上的一个区域,它延伸至显示屏表面,为前置传感器提供空间。它可能会影响状态栏的外观。刘海屏因制造商而异。
了解如何支持刘海屏。
导航栏
Android 允许用户使用返回、主屏幕和概览控件来控制导航:
- “返回”会直接返回上一个视图。
- 主屏幕从应用和设备主屏幕过渡。
- “概览”部分显示应用已打开和最近打开过。
用户可以从各种导航栏配置中进行选择,包括手势导航(推荐)和三按钮导航。
手势导航
手势导航是在 Android 10(API 级别 29)中引入的,是推荐的导航类型,不过您无法替换用户的偏好设置。手势导航不使用“返回”“主屏幕”和“概览”按钮,而是显示单个手势手柄以提供功能。用户可通过从屏幕左侧或右侧边缘滑动来返回、从底部向上和向上滑动,从而返回主屏幕。向上滑动并按住即可打开概览。
手势导航是一种可扩展性更高的导航模式,适用于在移动设备和更大屏幕上进行设计。为了提供最佳用户体验,请考虑以下因素来考虑手势导航:
- 支持全屏内容。
- 避免在手势导航边衬区下方添加互动或触摸目标。
了解如何实现手势导航。
三按钮导航
“三按钮”导航提供了“返回”“主屏幕”和“概览”三个按钮。
导航栏的其他变体
您的用户也许可以使用其他导航栏配置,具体取决于 Android 版本和设备。例如,“双按钮”导航提供“主屏幕”和“返回”两个按钮。
设置导航样式
以下示例展示了如何实现导航样式。
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
</style>
Android 会在手势导航模式或按钮模式下处理界面的所有视觉保护。
手势导航模式:系统会应用动态配色自适应,其中系统栏的内容根据其后面的内容改变颜色。在以下示例中,如果导航栏中的手柄放置在浅色内容上方,它会变为深色,反之亦然。
按钮模式:系统会在系统栏(适用于 API 级别 29 或更高级别)或透明系统栏(适用于 API 级别 28 或更低级别)后面应用半透明纱罩。
键盘和导航
每种导航类型都会对屏幕键盘做出适当反应,以便用户执行关闭甚至更改键盘类型等操作。为了确保键盘平稳过渡,为了确保平稳过渡,可以让应用的过渡与键盘在屏幕底部上下滑动同步过渡,请使用 WindowInsetsAnimationCompat
。
沉浸模式
当您需要全屏体验时(例如,当用户观看电影时),可以隐藏系统栏。用户应仍能够点按以显示系统栏和界面,以便进行导航或与系统控件互动。详细了解如何针对全屏模式进行设计,或了解如何隐藏系统栏以实现沉浸模式。