写点什么

鸿蒙 5 开发宝藏案例分享 --- 折叠屏悬停态开发实践

作者:莓创技术
  • 2025-05-29
    广东
  • 本文字数:903 字

    阅读完需:约 3 分钟

🌟【鸿蒙折叠屏开发宝藏指南】原来官方藏了这么多好东西!手把手教你玩转悬停态开发🌟

Hey 小伙伴们!我是你们的老朋友 XX,最近在肝鸿蒙折叠屏项目时,意外挖到了官方文档里的隐藏宝藏!原来 HarmonyOS 早就准备好了超多实用案例,今天必须带大家解锁"悬停态"开发的正确姿势,手慢无哦~


📱 先来点干货:什么是悬停态?

就是把折叠屏像笔记本电脑那样半折立在桌上,这时候屏幕会自动分成上下两半。鸿蒙提供了三种实现方式,咱们挨个盘!


一、懒人专用:FolderStack 组件

(适合视频/音乐播放器这类简单场景)

// 代码就像夹心饼干一样简单!FolderStack({ upperItems: ['video'] }) {  VideoComponent().id('video')  // 上半屏播放区  ControlPanel()               // 下半屏控制条}
复制代码

实战技巧

  1. 必须设置upperItems数组告诉系统哪些组件要上移

  2. 全屏使用时才会触发悬停布局(划重点!)

  3. 适合直播 App 的评论区自动下沉效果


二、分屏神器:FoldSplitContainer

(游戏/办公 App 双屏操作场景必看)

FoldSplitContainer({  primary: () => <GameScreen/>,  // 上半屏游戏画面  secondary: () => <Joystick/>  // 下半屏虚拟手柄})
复制代码

🎮 案例扩展

  • 外卖 App:上半屏地图+下半屏商家列表

  • 股票软件:上半屏 K 线图+下半屏交易面板


    ⚠️ 注意:系统强制二分栏/三分栏布局,想搞花式布局的看下一个方案!


三、高玩模式:自定义悬停态

(相机 App 特殊角度悬停拍摄场景)

// 重点监听这两个关键事件!display.on('foldStatusChange', (status) => {  if(status === '半折叠' && 横屏){    const 折痕区域 = display.getCurrentFoldCreaseRegion()    // 自定义你的布局魔法...  }})
复制代码

🔥 高级玩法

  1. 限制特定角度触发悬停(比如 60°-120°)

  2. 动态调整相机取景框避开折痕

  3. 实现抖音悬停播放+评论区浮窗


🚀 避坑指南(血泪经验)

  1. 折痕区坐标获取要用px2vp转换单位

  2. 监听事件记得在页面销毁时 off 掉!

  3. 华为 Mate X3 的折痕区比 Pocket S 大 5px(实测数据)

  4. 悬停态下禁用底部导航栏点击(官方推荐方案)


💡 终极选择困难症解药



最后说句大实话:其实官方 Sample 代码里还藏着悬停态手势识别、多窗口联动这些黑科技,点赞过 100 马上肝下一篇!大家在开发中还遇到过什么玄学问题?评论区等你来 battle 👇

用户头像

莓创技术

关注

一只会打代码的羊 2020-03-20 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙5开发宝藏案例分享---折叠屏悬停态开发实践_莓创技术_InfoQ写作社区