实现边到边的体验 | 让您的软键盘动起来 (一)

本文介绍了如何在Android 11中利用WindowInsets API创建软键盘打开和关闭的平滑过渡动画,实现了边到边的用户体验。通过设置全屏布局、处理视觉冲突,特别是使用新的WindowInsetsController来控制软键盘的显示和隐藏,从而提升应用的交互体验。
摘要由CSDN通过智能技术生成

Android 11 中的新功能之一是可以让应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进。

 

在 Android 11 上有两个针对该功能的例子——这个功能已经被集成到 Google Search 应用和 Messages 应用中了:

两个 Android 11 中软键盘动画效果的示例: Google Search 应用 (左),Messages (右)

  • Android 11

    https://developer.android.google.cn/android11

  • WindowInsets 

    https://developer.android.google.cn/reference/kotlin/android/view/WindowInsets

  • Google Search

    https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=en_GB

  • Messages

    https://play.google.com/store/apps/details?id=com.google.android.apps.messaging

让我们来看看如何在您的应用中添加这种用户体验。总共分为三步:

  • 首先,我们需要做到 "边到边" (edge-to-edge)

  • 第二步,应用需要针对边衬区动画做出反应;

  • 最后第三步就是应用在恰当的场景中控制并使用边衬区动画。

上面的每一步都环环相扣,所以我们会在不同的文章中分别介绍。在这个系列的第一部中,我们会介绍如何实现边到边,以及 Android 11 中相关 API 的改动。

实现边到边 (edge-to-edge)

去年我们介绍了一个关于实现 "边到边" 的概念,这个方法可以让应用深度利用 Android 10 的手势导航: 开启全面屏体验 | 手势导航 (一)

简单回顾一下,实现 "边到边" 会让您的应用渲染在系统状态栏的后面,如左图所示。

 

引用去年我自己的话:

 

实现从边到边的全面屏体验后,系统栏会覆盖在应用内容前方。应用也得以通过更大幅面的内容为用户带来更具有冲击力的体验。

实现边到边跟软键盘有什么关系?

其实,实现边到边不单单只是在状态栏和导航栏之后渲染。应用本身需要开始负责处理那些跟应用重叠的系统 UI 的部分。

 

正如我们前面提到的,两个最直观的例子是状态栏和导航栏。除此之外还有软键盘,有时候也叫 IME (输入法编辑器),这是另外一个我们需要了解的系统 UI 。

应用如何实现边到边?

如果我们回想去年的介绍,实现边到边可以分为三步:

  • 改变系统栏的颜色

  • 设置全屏布局

  • 处理视觉冲突

我们会跳过第一步,因为从去年至今这个部分没有改动。教程中的第二步和第三步有一些针对 Android 11 的改动,让我们来看一下。

 

#2: 设置全屏布局

在以往的第二步中,应用需要使用 systemUiVisibility API 以及一些参数来设置全屏布局:

view.systemUiVisibility = 
    // 通知系统,视窗希望在极端的情况下该如何布局内容。查看文档来获取更具体的信息。
    
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值