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

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

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

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

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

华为折叠屏形态简介

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

  • 展开态 显示比例8:7.1(分辨率1536x2200)
  • 折叠态正面屏 显示比例19.5:9(分辨率2480x1148)
  • 折叠态背面屏 显示比例25:9(分辨率2480x892)

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

折叠屏适配原则

  • 应用不在屏幕上不留黑边(Aspect-ratio最小最大比例支持,最小宽高比 1.0,最大宽高比 2.4)
  • 屏幕切换、分屏 Switch/Resize 操作不能有 Crash/ANR
  • 屏幕切换、分屏 Switch/Resize 操作后布局正常(无内容缺失/重叠等)
  • 屏幕切换、分屏 Switch/Resize 操作 Activity 尽量不 Restart
  • Activity支持Multi-Resume(分屏应用失去焦点视频播放不停止/再次播放不重放等)

折叠屏适配点

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

<activityandroid: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 获取。

体验升级,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 模式下,折叠屏优势得到充分体现,以下是几个经典场景。

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

商品对比(设计稿)

最终效果如下:

mate x真机

 

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


双11福利来了!先来康康#怎么买云服务器最便宜# [并不简单]参团购买指定配置云服务器仅86元/年,开团拉新享三重礼:1111红包+瓜分百万现金+31%返现,爆款必买清单,还有iPhone 11 Pro、卫衣、T恤等你来抽,马上来试试手气  https://www.aliyun.com/1111/2019/home?utm_content=g_1000083110

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

SpringBoot2.x 整合 Ueditor

文章目录一、基础准备1. 创建项目并引入依赖2. 下载Ueditor源码3. Java代码整合4. 静态文件整合二、静态页面控制层2.1. index.html2.2. demo1.html2.3. demo2.html2.4. demo3.html2.5. Controller三、配置调整3.1. 图片大小3.2. 修改ueditor.config.js3.3. 修改config.json文件…

无线路由攻击和WiFi密码破解实战[渗透技术]

文章目录一、准备阶段二、攻击阶段1.停止&#x1f6d1;网络管理员2.开启网卡监听模式3. 捕获数据包4.获取数据包5.注入数据包&#xff08;DeAuth洪水攻击&#xff09;5.WiFi密码破解一、准备阶段 攻击主机&#xff1a;kali Linux攻击工具&#xff1a;aircrack-ng、airodump-ng…

支付宝双11狂欢幕后的女程序员:服务全球12亿人,每天和不法分子打攻防战

再过3天&#xff0c;全球最大的购物狂欢节就开始了。 在这个睡不着的午夜&#xff0c;无数男男女女会在闪烁的屏幕前滑屏、抢购、享受秒级付款带来的快感。整个过程大脑分泌的多巴胺&#xff0c;又驱使他们以更快的速度重新填满购物车。 2018年天猫双11成交额2135亿元&#x…

技术直播:程序员副业的修炼指南!(限免报名)

面试造飞机&#xff0c;上班拧螺丝&#xff0c;每天想辞职&#xff0c;但无奈副业还“大器晚成”的样子&#xff01;那可能是你还没有选对副业&#xff01;滴滴 ~福利卡&#xff01;&#xff01;&#xff01;CSDN学院邀请汤小洋老师开设技术直播课《程序员副业之路-三大终极秘籍…

轻松解决Android gradle太慢问题

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 一、解决方案 从网上下载对应版本的gradle,然后把gradle压缩包复制到C:\Users\liuxin\.gradle\wrapper\dists\gradle-6.5-all\2oz4ud9k3tuxjg84bbf55q0tn目录下&#xff0c;重新build工程就搞定了。 安卓开发者平台官…

持续交付体系在高德的实践历程

1. 前序 对于工程团队来说&#xff0c;构建一套具有可持续性的、多方面质量保证的交付体系建设&#xff0c;能够为业务价值的快速交付搭建起高速公路&#xff0c;也能为交付过程中的质量起到保驾护航的作用。本文为大家介绍持续交付体系在高德的演进与落地。 2. 持续交付 正…

RuoYi-Cloud 部署篇_01(windows环境 mysql +nginx版本)

文章目录一、基础准备1. 技术选型2. 源码克隆3. 安装依赖4. 将 RuoYi-Cloud 项目导入到 IDEA5. 安装启动Mysql6. 安装启动Redis7. 创建数据库&#xff0c;执行 SQL脚本文件二、安装与配置 nacos2.1. 下载nacos2.2. 安装 nacos2.3. nacos持久化配置2.4. 执行脚本文件2.5. nacos连…

趣头条基于 Flink 的实时平台建设实践

本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设&#xff0c;整理者叶里君。文章将从平台的架构、Flink 现状&#xff0c;Flink 应用以及未来计划四部分分享。 一&#xff0e;平台架构 1.Flink 应用时间线 首先是平台的架构&#xff0c;2018 年 3 月之前基本都是基…

我!程序猿!被银行套路了!

作者 | 程序猿石头责编 | Carol封图 | CSDN 付费下载自视觉中国话说&#xff0c;你肯定也经常收到各个银行电话推销&#xff0c;可以办理小额贷款/信用卡账单分期/万用金&#xff0c;或者其他乱七八糟的名字的产品。又或者接到电话说&#xff0c;“石头先生&#xff0c;我们有留…

巧妙地在Windows搭建node服务器

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 文章目录一、 安装node1. 官网下载node.js2. 测试npm是否成功安装3. 配置npm模块和缓存的存放路径4. 安装express5. 配置npm环境变量二、安装cnpm1.执行安装2. 配置cnpm环境变量一、 安装node 1. 官网下载node.js 官…

jdk8下载

文章目录1. 官网2. windows下载链接3. linux下载链接1. 官网 https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html 2. windows下载链接 https://download.oracle.com/otn/java/jdk/8u301-b09/d3c52aa6bfa54d3ca74e617f18309292/jdk-8u301-window…

测试工程师不懂AI,还有未来吗?

阿里妹导读&#xff1a;近几年人工智能、机器学习等词漫天遍地&#xff0c;似乎有一种无AI&#xff0c;无研发&#xff0c;无AI&#xff0c;无测试的感觉。有人说&#xff1a;不带上“智能”二字&#xff0c;都不好意思说自己是创新。我们先暂且不评论对错&#xff0c;只探讨这…

redis 下载、启动 windows环境

文章目录1. 下载2. 启动1. 下载 https://github.com/MicrosoftArchive/redis/releases 2. 启动 进入redis的bin目录双击redis-server.exe

Aruba发布业界首款服务智能边缘的云原生平台Aruba ESP

利用AI 和自动化技术打造智能网络&#xff1b;支持业务连续性任务&#xff0c;驾驭未来智能边缘 慧与公司旗下的Aruba今日推出业内首款 AI 驱动的云原生平台 Aruba ESP&#xff08;边缘服务平台&#xff09;&#xff0c;该平台建立在AIOps、零信任网络安全和统一架构基础上&am…

axios的安装和使用

文章目录一、axios介绍二、安装axios三、 案例四、框架整合五、插件一、axios介绍 什么是 axios? Axios 是一个基于 promise 的 HTTP 库&#xff0c;可以用在浏览器和 node.js 中。 特性: 1、从浏览器中创建 XMLHttpRequests 2、从 node.js 创建 http 请求 3、支持 Promise AP…

达摩院最新AI技术助力天猫双11,提供接近真人的语音交互体验

11月8日&#xff0c;记者了解到&#xff0c;阿里巴巴达摩院机器智能实验室最新研究成果——KAN-TTS将首次大规模应用于今年天猫双11&#xff0c;基于该技术&#xff0c;菜鸟热线机器人、语音机器人小蜜以及天猫精灵将为全球消费者提供接近真人的语音交互体验。 让机器开口说话…

make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error

执行完make以后报错 make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error 1 make[1]: Leaving directory /app/nginx-1.9.9 make: *** [Makefile:8: build] Error 2解决办法 找到对应的Maakefile文件&#xff08;我的在 /nginx/objs/Makefile&#xff09…

原来记录系统日志那么简单【Java】【SpringBoot】【Mybatis Plus】【AspcetJ】

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 文章目录前言一、系统日志是什么二、开发技术三、开发步骤3.1引入依赖坐标3.1.1 导入Lombok3.1.2 数据库连接依赖3.1.3 spring aop依赖3.1.4 aspectJ依赖3.1.5 Druid连接池&#xff08;阿里巴巴&#xff09;3.1.6 myb…

程序员风光背后:从零到今日头条数据分析师,我走了1年!

笔者最近在今日头条上&#xff0c;看到了头条员工的自述&#xff1a;“从什么都不懂的小白&#xff0c;到入职头条成为数据分析工程师&#xff0c;我走了1年的时间。”评论区却炸锅了&#xff01;大家不明白&#xff0c;1年时间为什么要学这个&#xff1f;半年时间学Java不香吗…

前端内存优化的探索与实践

引言 标注是地图最基本的元素之一&#xff0c;标明了地图每个位置或线路的名称。在地图 JSAPI 中&#xff0c;标注的展示效果及性能也是需要重点解决的问题。 新版地图标注的设计中&#xff0c;引入了 SDF &#xff08; signed distance field&#xff09;重构了整个标注部分…