最近在咖啡馆调试一个演示用的App,朋友拿过我的折叠屏手机翻了两下,突然卡在某个页面退不出去。他下意识按了两下返回键,没反应,最后只能从首页重新进入。其实问题就出在——退出按钮没做好折叠屏适配。
为什么普通返回逻辑在折叠屏上会“失灵”?
传统直板手机的返回操作基本靠系统导航栏或物理按键完成,逻辑清晰。但折叠屏不同,展开后可能运行分屏、多任务,甚至两个应用同时显示。这时候点击“返回”,到底该退哪个页面?是收起副屏内容,还是关闭整个任务?如果开发时没考虑这些路径,用户就会像我朋友那样“被困住”。
从场景出发设计退出流程
比如做一份产品演示PPT的应用,在折叠状态下,主屏展示幻灯片,副屏用来控制备注或播放进度。当用户看完想退出,直接点返回,理想情况应该是先退出演示模式,而不是直接杀掉整个App。否则下次打开还得重新加载文件。
这就要求我们在代码里明确区分“界面层级”和“任务生命周期”。可以这样处理:
<activity android:name=".PresentationActivity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
同时在 PresentationActivity 中重写返回行为:
@Override
public void onBackPressed() {
if (isInSplitMode) {
exitSplitScreen();
} else if (isInPresentation) {
stopPresentation();
} else {
super.onBackPressed();
}
}
别让“返回”变成猜谜游戏
有些应用在折叠后自动弹出新窗口,但没提供明显的关闭按钮。用户只能凭经验去点左上角或者滑动边缘,这种体验很割裂。建议在副屏操作区增加一个视觉明确的“收起”按钮,配合动画提示当前状态可退。
实际测试时,不妨借一台主流折叠屏手机,把常用操作走一遍。特别是从展开态合上屏幕后的返回路径,很多问题都是在这个瞬间暴露出来的。
适配不是为了炫技,而是让用户觉得“这玩意儿真顺手”。一个小小的退出按钮,可能就是决定别人愿不愿意再打开你做的演示的关键。