展开与折叠是运行中的尺寸突变
别名: 折叠尺寸突变 · 展开折叠 · fold posture change
概念解释
折叠屏从外屏折到内屏、或从展开再折回去,不是换了一台设备,也不是一次冷启动。运行中的尺寸突变指应用还活着、任务还在半截,可用显示面积、比例和安全区在一两秒内换成另一套。外屏往往是窄长条,内屏接近小平板;有的机型还有半折支架态,面积没变但朝向和被铰链切开的方式变了。这和桌面用户拖窗口不同:拖窗口是连续的,折叠是一跳。滚动位置和输入如何保住、铰链上能不能放东西,分开谈。
机制
应用的布局树按当前窗口度量来排。折叠把度量换成另一组:宽度可能翻倍或腰斩,长宽比从手机变成平板,系统栏、挖孔和铰链避让区一起改坐标。若把这次变化当成「新打开」,会走启动布局:列表滚回顶、键盘收起、对话框按新中心重弹,人还停在刚才那一步,界面已经当他是新访客。突变还可能改变栏数——外屏单栏、内屏双栏——信息架构跟着跳,不只是把同一张图放大。半折态把一块屏折成上下两区,下半变成键盘或底座,上半才是「窗口」;若应用仍按整块内屏排,关键操作会落到被折走或被桌面挡住的那一半。尺寸跳变是物理事件,布局必须把它当成一次合法的窗口变化来响应,而不是当成旋转动画的特例。
怎么研究
在真机或可切换双窗口度量的模拟器上,让任务做到一半再折叠或展开,比较「按新尺寸重排并留下任务」与「重建活动、回到首页或默认栏」。覆盖阅读长文、填表到一半、播放中的媒体。
自变量:折叠方向(外→内 / 内→外 / 半折)、是否销毁并重建界面、重建后是否恢复路由。 因变量:任务能否从中断点继续、是否误回到根、布局错位(内容画到已不存在的区域)、主观「我是不是被踢出去了」。
实验室里若由主试按一个按钮切换,会低估真实折叠的时机——人常在走进门、放到桌上、或想用内屏看图时折。要让被试自己决定何时折,才能看到突变落在哪一种未完成态上。不要只用旋转 90 度当代理:旋转几乎保持面积,折叠改变面积。
边界
应用在折叠时已经被系统杀掉(外屏内存更紧、后台限制更狠),这是进程级回收,保的是下次冷启动的持久化,不是这次布局跳变。只有外屏可用的应用(依赖内屏相机或宽画布)可以在折回外屏时说明「此功能需要展开」,但要给出一个外屏上还能做的退路,而不是黑屏。桌面窗口被拖到另一块显示器是连续迁移,不是折叠这种跳变;可把折叠当成一次不连续的窗口变化来处理,但动画和阈值不能直接搬桌面的。用户在折叠过程中手指还按在屏上,可能误触铰链附近,布局切换要等折叠完成再落,而不是折到一半就响应中间态。
怎么落地
- 把折叠、展开、半折登记为窗口度量变化:按新的宽、高和避让区重排,不要按「新设备」走启动页。
- 外屏和内屏用同一任务对象,不要为两个屏准备两套互不通信的界面树。
- 半折时只把内容放到仍朝向用户、未被桌面挡住的那一区,不要假设整块内屏都还能点。
- 验证:读到文章中部、表单填到一半、再折或展开。应仍停在同一条、同一个字段上,只是排法变了。回到首页或出现不可点的空白区,就是把突变当成了重启。