Android 14 之返回界面升级:预览目标界面 + 全新返回箭头

news2024/11/24 18:51:21

在这里插入图片描述

Android 13 的版本里 Android 就针对返回导航进行了大量更改,包括:

  1. 废弃原有的 KEYCODE_BACK KeyEvent
  2. 提供 Manifest 属性 enableOnBackInvokedCallback 以配置是否应用全新的 Back 导航特性
  3. 提供 Activity、Dialog 里处理 Back 导航的 OnBackInvokedDispatcher 入口
  4. 提供自定义 Back 导航逻辑的 OnBackInvokedCallback 回调
  5. 引入 Back 导航触发前目标界面的预览

具体的,可以查看笔者当时写的文章:Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势。

支持预览目标界面

写上述文章时系统尚处于 13 beta 阶段,笔者并未看到 5 对应的 Back 预览效果,并以为 13 的最终版会实现该特性。但事实上直到 13 正式发布,该特性都没有到来,甚至是 14 beta 版都还没有正式发布。

我们先来简单回顾一下全新的 Back 导航的适配方式:

  1. 开启 enableOnBackInvokedCallback 属性。
<application
    ...
    android:enableOnBackInvokedCallback="true"
    ... >
</application>
  1. 就是应用新的 back 相关 API,具体逻辑不赘述了。
  class Activity ... {
     private var onBackInvokedCallback: OnBackInvokedCallback? = null

     override fun onCreate(savedInstanceState: Bundle?) {
        ...
 
        if (BuildCompat.isAtLeastT()) {
            onBackInvokedCallback = OnBackInvokedCallback {
                onBackEvent()
            }.also {
                onBackInvokedDispatcher.registerOnBackInvokedCallback(
                    OnBackInvokedDispatcher.PRIORITY_DEFAULT,
                    it
                )
            }
        }
    }
 
    override fun onDestroy() {
        super.onDestroy()
 
        if (BuildCompat.isAtLeastT()) {
            onBackInvokedCallback?.let {
                onBackInvokedDispatcher.unregisterOnBackInvokedCallback(it)
            }
        }
    }
} 

然后在 14 上运行试下,可以看到并没有返回预览效果:

在这里插入图片描述

经过查阅,发现了官方的一些解释:

在 Android 13 中,我们为手机、大屏设备和可折叠设备等 Android 设备引入了预测性返回手势。该功能的发布历程跨度将达多年;在完全实现后,该功能可让用户在完全完成某个返回手势之前就能预览此手势完成后的目的地或其他结果,以便用户能够决定是继续完成手势还是留在当前视图中。

可以理解,这个功能的实现比较复杂,对系统全局的影响颇大,如何开放、开放什么样的返回预览 API 给 App 都需要研究、尝试,所以 13 没有发布,14 是否能发布,也比较悬。

但官方提示其实可以在开发者选项中体验下开发中的返回预览效果:

  • 设置 > 系统 > 开发者选项 > 预测性返回手势动画(Predictive back animation)

13 上是找不到该选项的,14 上可以找到:

在这里插入图片描述
开启之后,再执行 back 导航,可以看到返回的预览效果:

在这里插入图片描述

但是返回视图里的箭头 icon 突然不见了,说明该功能还在开发当中,14 正式版是否能够开发完毕,还需要时间。

全新的返回箭头

13 及以前的返回效果是比较简单的,只有一个依据 touch 角度、速度变化的箭头。

在这里插入图片描述

为了突出箭头的显示,能让用户更加清晰地看到箭头的出现、返回的触发,14 上给箭头添加了背景、边框。

在这里插入图片描述

甚至还支持该箭头依据设备 Theme 进行变化,能更好地融入系统 UI。

比如我们将 theme 的 basic color 改为绿色。

在这里插入图片描述

再看一下箭头的新效果:

在这里插入图片描述

结语

在支持预览返回的目标界面功能之前,确实非常有必要借助返回箭头来提示返回手势的进度。但一旦这个预览功能开发完毕,这个箭头则显得不那么必须,因为判断目标界面出现的多少即可,就像 iOS 那样。

但话说回来,这个箭头并不需要 App 适配样式,全部由系统的 SystemUI 完成,不会增加开发者的负担。所以,提供依据系统 Theme 改变的返回箭头算是 Android 返回导航的一大特色

期待包括预览目标画面功能在内的完整 Back 导航功能早日发布!

推荐阅读

  • Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势

参考资料

  • Android 14 Beta 1
  • Predictive back design
  • 添加对预测性返回手势的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/613567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zabbix自定义redis6集群监控项并用python脚本自动创建应用集、监控项、触发器

1.1、编写redis_status.sh脚本 [fieldyangcentos7-135 sbin]$ mkdir -p /usr/lib/zabbix/scripts/ [fieldyangcentos7-135 sbin]$ cd /usr/lib/zabbix/scripts/ [fieldyangcentos7-135 scripts]$ cat >redis_status.sh #!/bin/bash #author&#xff1a;Fieldyang #descr…

day 48 打家劫舍专题:198. 打家劫舍;213. 打家劫舍 II;337. 打家劫舍 III

打家劫舍 198. 打家劫舍1. dp数组以及下标名义2. 递归公式3. dp数组如何初始化4. 遍历顺序5. 代码 213. 打家劫舍 II:房间首尾相连1. dp数组以及下标名义2. 递归公式3. dp数组如何初始化4. 遍历顺序5. 代码 337. 打家劫舍 III&#xff1a;1. 递归,后序遍历动态规划&#xff1a;…

路径规划算法:基于热交换优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于热交换优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于热交换优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

HTTP编码杂谈

一 HTTP编码杂谈 ① 知识铺垫 1) 编码的英文叫encode --> 常见HTTP URL编码、Base64编码等目的&#xff1a; 转变为二进制的stream(字节流),便于网络传输备注&#xff1a; 一般都是基于utf-8编码2) 解码叫decode3) 乱码的根源&#xff1a; 编码和解码的方式不一致4) url…

深入理解深度学习——切面距离(Tangent Distance)、正切传播(Tangent Prop)和流形正切分类器

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 许多机器学习通过假设数据位于低维流形附近来克服维数灾难。一个利用流形假设的早期尝试是切面距离&#xff08;Tangent Distance&#xff09;算法 (Simard。它是一种非参数的最近邻算法&#xff0c;其中使用的度量不是…

libVLC 抓取视频帧并渲染(OpenGL)

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在前面,我们写了几篇文章《libVLC 抓取视频帧并渲染(QWidget)》和《libVLC 抓取视频帧并渲染(QGraphicsView)》,分别介绍了QWidget 和 QGraphicsView 对视频帧的渲染,除了这些方式之外,还有一种最常…

动,静态库(与linux有关)

1.一些与本章标题无关的补充内容 当我们修改文件内容的时候&#xff0c;有可能会修改文件的属性。比如&#xff1a;可能会更改文件的大小属性。 我们在通过指令查看文件的时间相关属性时会往往观察到这样的现象&#xff1a;Access(访问时间&#xff0c;之前有具体讲过)没有及…

C++ string的简单应用

C语言的字符串 C的字符串 头文件&#xff1a; #include<string.h> //c #include<string> //C #include<cstring> //C 比较string的大小 两个string对象相加 使用字符串对象来存放字符串 两个string对象相加 string str "Hello,"; st…

求取平面参数

平面方程AXBYCZD0 变换一下-> A/DX B/DYC/DZ -1 该方程满足Axb 其中A为, x为,b为-1单位阵 求解代码如下: /* comment plane equation: Ax By Cz D 0 convert to: A/D*x B/D*y C/D*z -1 solve: A0*x0 b0 where A0_i [x_i, y_i, z_i], x0 [A/D, B/D, C/D]^T,…

逆向汇编与反汇编——基本数据类型

-1&#xff1a;0xFFFFFFFF 为什么内存使用补码来存储数据&#xff1f; 》因为CPU的设计只有加法器&#xff0c;没有减法&#xff0c;需要使用补码来实现减法 大端&#xff1a;数值的高位放到内存的低字节 小端模式验证&#xff1a;78 78 浮点型&#xff1a;单精度float和双精…

创建类构造器

类的创建 构造器 作用&#xff1a;给类赋值 类实际可分为&#xff1a;构造器属性方法 构造器的重载 重载&#xff1a;方法名相同&#xff0c;参数类型不同 一定要有空构造器&#xff01;&#xff01;&#xff01; TIP&#xff1a;this.指代当前创建对象

数据结构与算法系列之希尔排序

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注再收藏 &#x1f31e; 希尔排序 希尔排序法又称缩小增量法。希尔排序法的基本思想是&#xff1a;先选…

Python读写mat文件(使用scipy.io)

在matlab中&#xff0c;数据可保存为mat文件&#xff0c;使用save和load命令可进行读写操作。而在Python中&#xff0c;也可以对mat文件进行读写。 一、由matlab向Python传数据&#xff08;Python读取mat文件&#xff09; 第一步&#xff1a;使用matlab创建变量并保存至mat文…

某程序员——我应届毕业,年薪23万...

马士兵教育线下训练营第1期 已经圆满结束啦~ 不了解训练营的伙伴 有的在观望、有的在好奇 训练营真的能学到东西吗&#xff1f; 出去了之后能找到工作吗&#xff1f; 不如看看那些参加过的人是怎么说的 或许&#xff0c;你会对我们、对训练营 会有更深入的了解...... 0…

计算机视觉:转置卷积

转置卷积 文章目录 转置卷积基本操作填充、步幅和多通道性质 转置卷积&#xff08;Transposed Convolution&#xff09;&#xff0c;也称为反卷积&#xff08;Deconvolution&#xff09;&#xff0c;是卷积神经网络&#xff08;CNN&#xff09;中的一种操作&#xff0c;它可以将…

排他网关-部署流程定义

类&#xff1a;com.roy.ActivitiGatewayExclusive /*** 部署流程定义*/Testpublic void testDeployment(){ // 1、创建ProcessEngineProcessEngine processEngine ProcessEngines.getDefaultProcessEngine(); // 2、得到RepositoryService实例RepositoryService…

剑指offer刷题笔记--题目11-20

1-旋转数组的最小数字&#xff08;11&#xff09; 主要思路&#xff1a; 一次旋转将最后一个元素移动最前面&#xff0c;由于数组最开始是升序的&#xff0c;因此数组的大部分元素都应该保持升序的状态&#xff08;n1<n2<...<n3>n4<n5<...<n6&#xff09;…

JAVA练习小游戏——贪吃蛇小游戏 PLUS版

目录 基础版本 新增内容 1.添加START开始界面 2.新增背景音乐 3.添加SCORE计分 4.新增游戏机制 代码实现 实机演示 基础版本 JAVA练习小游戏——贪吃蛇小游戏_timberman666的博客-CSDN博客https://blog.csdn.net/timberman666/article/details/131046742?spm1001.201…

xshell使用技巧小节

文章目录 1. 输出日志文件2. 快捷键设置3. 使用ctrlv按键4. 快速命令 1. 输出日志文件 需求&#xff1a;我们使用xshell时会经常需要把xshell中的内容打印到文件中&#xff0c;或者因为内容过多&#xff0c;xshell界面无法显示先显示出的内容&#xff0c;或者需要明确记录文件…

AlterNET Studio v9.0 Crack

AlterNET Studio v9.0 改进了代码编辑器、表单设计器和 Python LSP 解析器。 2023 年 6 月 5 日 - 11:22新版本 特征 代码编辑器 编辑器中添加了 Microsoft Visual Studio 主题。现在包括一个放大镜区域&#xff0c;可以更轻松地浏览文档的内容。带有 alpha 通道的图像现在用于…