专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

沉浸模式 | 手势导航连载 (四)

Android_开发者  · 掘金  · android  · 2019-12-30 02:09

正文

阅读 124

沉浸模式 | 手势导航连载 (四)

作者 / Chris Banes, Android 开发者关系团队工程师

本文是手势导航连载的第四篇文章,如果您希望了解其他手势导航的话题,请查看本系列的其他文章:

本文我们将为大家介绍的是手势交互和冲突在全屏应用 (系统栏也被隐藏) 下的情况和注意事项。让我们紧接 上一篇文章 ,给大家讲讲流程图右侧的两种情况。

△ 请点击图片放大查看
右侧的两个解决方案都是 Android 平台为应用提供的沉浸模式 (immersive mode)。那问题来了: 什么是沉浸模式?

什么是沉浸模式?

沉浸模式是一种让内容全屏呈现的方式,用来隐藏系统栏,从而确保应用拥有最大的屏幕空间。此外,它还提供了防误操作的功能 (比如意外使用手势离开应用),特别适合在游戏中采用。

沉浸模式分为两种:

  1. 非粘性沉浸模式 : 用户可以通过在系统栏上滑动来退出沉浸模式。

  2. 粘性沉浸模式 : 用户可以通过在系统栏上滑动来暂时退出沉浸模式。在经过一小段时间后 (只有几秒) 会重新自动回到沉浸模式。

这两种模式都有两种状态:

  1. 系统栏隐藏: 在此状态下,返回主屏幕手势和后退手势均被禁用。用户必须首先从边缘向内侧滑动才能让系统栏显示。

  2. 系统栏显示: 在此状态下,返回主屏幕手势和后退手势可以正常工作。

现在,我们已经了解了沉浸模式的基础知识,下面介绍这两种不同模式的细节。

非粘性沉浸模式

大家在上面的流程图中可能已经看到,非粘性 (non-sticky) 沉浸模式非常适合需要全屏显示但不需要在屏幕边缘附近使用精确滑动手势的 UI。常见的例子包括全屏视频播放和照片浏览等。

就手势导航而言,非粘性沉浸模式与其在早期版本的 Android 上的工作方式一致。在 Android 10 或以上系统中运行时,应用可以使用我们在 上一篇文章中介绍的手势区域排除 API 。在此模式下,无论系统栏是否可见,每个边缘能排除的区域高度仍旧限制为 200dp。

如果您的应用正在使用非粘性沉浸模式,我们建议您回顾一下 第三篇文章 ,避免在屏幕边缘出现的视图与系统手势出现冲突。

粘性沉浸模式

粘性 (sticky) 沉浸模式适合那些强烈需要使用整个屏幕,并要求在整个屏幕区域内进行触摸输入的 UI。常见的例子是绘图应用,以及使用滑动操作的游戏。







请到「今天看啥」查看全文