写点什么

当手机淘宝遇见折叠屏,让购物更随心

  • 2019-12-17
  • 本文字数:2680 字

    阅读完需:约 9 分钟

当手机淘宝遇见折叠屏,让购物更随心

华为 5G 新品发布会上,Mate X 正式亮相,淘宝也作为重点展示应用出现在发布会的 PPT 上,同时也成为折叠屏生态联盟应用矩阵的第一位。




现场华为折叠屏上的淘宝多任务演示


伴随手淘技术团队对华为折叠屏适配工作的展开。半年前还只是概念方案的分屏设计方案已正式实现。华为折叠屏上的淘宝已全面支持分屏多任务,以后商品比价、边逛边聊更加轻松便捷,为大家带来不一样的购物体验。



折叠屏第二屏的多任务模式

01 华为折叠屏形态简介

华为 mate x 屏幕形态分为三种:


  • 展开态 显示比例 8:7.1(分辨率 1536x2200)

  • 折叠态正面屏 显示比例 19.5:9(分辨率 2480x1148)

  • 折叠态背面屏 显示比例 25:9(分辨率 2480x892)



用户可以在三种形态上进行随意切换,因此第一步需要保证手淘在三种屏幕形态下的主功能没问题。

02 折叠屏适配原则

  • 应用不在屏幕上不留黑边(Aspect-ratio 最小最大比例支持,最小宽高比 1.0,最大宽高比 2.4)

  • 屏幕切换、分屏 Switch/Resize 操作不能有 Crash/ANR

  • 屏幕切换、分屏 Switch/Resize 操作后布局正常(无内容缺失/重叠等)

  • 屏幕切换、分屏 Switch/Resize 操作 Activity 尽量不 Restart

  • Activity 支持 Multi-Resume(分屏应用失去焦点视频播放不停止/再次播放不重放等)

03 折叠屏适配点

允许改变应用尺寸。要适配折叠屏,首先是要让应用支持动态改变尺寸,需要在 menifest 中的 Application 或对应的 Activity 下声明。


<activity           android:name="com.test..TestActivity"           android:resizeableActivity="true"           android:configChanges="orientation|screenSize|keyboardHidden"           android:screenOrientation="portrait"           android:exported="false"
复制代码


在 Manifest 文件的节点中增加数据,设置最大/最小支持比例。


<meta-data android:name="android.max_aspect" android:value="2.4" />  <meta-data android:name="android.min_aspect" android:value="1.0" />
复制代码


APP 支持 Multi-Resume(Android P 开始支持),在 Manifest 文件的节点中增加数据, 在设置了该元数据后,应用在分屏模式下失去焦点后不会收到 onPause() 回调,如果需要知道用户“焦点”是否还在应用上,使用 onWindowFocusChanged() 回调判断。


<meta-data android:name="android.allow_multiple_resumed_activities" android:value="true" />
复制代码


Activity 支持显示动态尺寸/比例变化不重启,在 manifest 文件的节点中的 android:configChanges 属性增加 screenSize|smallestScreenSize|screenLayout 字符串。


当屏幕比例变化时,系统会回调 Activity 的 onConfigurationChanged() 方法,而避免 Activity 重新启动。应用复写 onConfigurationChanged() 方法,通过该方法的 Configuration 参数获得屏幕的分辨率等信息,就可以针对不同比例屏幕下的应用界面布局做相应调整,如切换布局、调整控件位置和间距等。


如果 Activity 走 Restart 销毁模式,需要处理 onSaveInstanceState() 保存状态,以免信息丢失。在分屏模式下,如果希望获得应用实际显示的尺寸,使用 Activity 的 Context 调用 getDisplayMetrics 获取。

04 体验升级,Magic Window 探索

经过几个月的适配,终于完成了第一个折叠屏可用版本的安装包。但是由于手淘是针对窄屏设计的 App ,在展开屏状态下,宽高比接近 1:1 ,可视内容会变得很少,无法发挥折叠屏的大屏优势。为了给用户最佳的使用体验。手淘团队决定适配华为 mate X 的 Magic Window 方案。


Magic window,是华为提供的系统级分屏的解决方案。应用可以根据自身业务设计分屏显示 Activity 组合,以实现符合应用逻辑的最佳单应用多窗口用户体验。


本次手淘适配 magic window ,使用自定义模式进行适配。即由设计师确定左右屏的交互逻辑,由技术同学针对交互逻辑在指定配置文件进行配置,实现分屏方案。


具体实现方法:在 Manifest 文件中新增标签


<meta-data android:name="EasyGoClient" android:value="true" />
复制代码


在 asserts 目录下新增 easygo.json 文件,文件格式如下:



在 magic window 模式下,折叠屏优势得到充分体现,以下是几个经典场景。



浏览商品同时咨询客服(设计稿)



商品对比(设计稿)


最终效果如下:



手淘技术团队秉承客户第一原则,一直致力于用户体验优化,未来我们将在用户体验上做出更多努力,给用户带来更好的体验。关于折叠屏适配,大家有什么不同的见解?欢迎下方留言区探讨。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/vJ3_guFLJrLeM7E6yxgzgA


2019-12-17 18:10991

评论

发布
暂无评论
发现更多内容

三种插件开发模式,带你玩废tinymce

Five

tinymce 签约计划第三季 8月月更

KubeSphere 新版本3.3.0解读

CTO技术共享

开源 签约计划第三季 8月月更

Kubernetes LIST请求服务调优

CTO技术共享

开源 签约计划第三季 8月月更

《Effective Java》第54条:返回零长度的数组或者集合,而不是null

okokabcd

Java

在线XML转Excel工具

入门小站

工具

Redis 多机

武师叔

8月月更

开源云原生与行业应用 | ChinaOSC

CCF开源发展委员会

Kubernetes分布式持续交付Zadig

CTO技术共享

开源 签约计划第三季 8月月更

急如闪电快如风,彩虹女神跃长空,Go语言高性能Web框架Iris项目实战-初始化项目ep00

刘悦的技术博客

Go golang 框架 go语言 Go 语言

深入浅出sychronized与Lock的实现原理

清风

后端 原理 并发 lock sychronized

什么是研发效能?研发效能定义及核心价值

laofo

DevOps cicd 研发效能 持续交付 工程效率

RT-Thread记录(七、IPC机制之邮箱、消息队列)

矜辰所致

ipc RT-Thread 8月月更

企业架构是当代的屠龙之术吗?

涛哥 数字产品和业务架构

企业架构

IPv6报文头深度解析

穿过生命散发芬芳

ipv6 8月月更

在线文字图标logo文章封面图生成工具

入门小站

工具

开源雨林企业开源治理与贡献论坛| ChinaOSC

CCF开源发展委员会

网络编程(三)数据链路相关知识

Albert Edison

Linux 网络编程 计算机网络 8月月更 数据链路

Kafka基础知识

阿泽🧸

kafka 8月月更

阿里云解决方案架构师张平:云原生数字化安全生产的体系建设

阿里巴巴云原生

阿里云 云原生 安全 数字化

RocketMQ高性能设计之数据存储设计

急需上岸的小谢

8月月更

手把手带你实战 AGP 7.x ASM 字节码插桩

如浴春风

android asm Gradle 签约计划第三季

计算后缀表达式-算法与数据结构-栈的运用-C++语言实现

清风莫追

算法 数据结构, 8月月更

头脑风暴:组合总和 Ⅳ

HelloWorld杰少

8月月更

“红山开源”创新论坛 | ChinaOSC

CCF开源发展委员会

开源一夏 | 见微知著,带你认认数据分析的大门,站在门口感受一下预测的魅力

迷彩

开源 数据分析 预测模型 签约计划第三季 8月月更

每日一R「06」内存管理

Samson

8月月更 ​Rust

开源教育论坛| ChinaOSC

CCF开源发展委员会

CCF开源发展委员会执委增选

CCF开源发展委员会

Kubernetes Docker Compose 迁移

CTO技术共享

开源 签约计划第三季 8月月更

苏彤,你的 Python Flask 编写生成二维码接口写完了

梦想橡皮擦

Python 爬虫 8月月更

一文带你打通Node流的"任督二脉"

战场小包

前端 Node 签约计划第三季

当手机淘宝遇见折叠屏,让购物更随心_语言 & 开发_淘系技术_InfoQ精选文章