赞
踩
本示例介绍使用ArkUI中的容器组件FolderStack在折叠屏设备中实现音乐播放器场景。
使用说明
采用MVVM模式进行架构设计,目录结构中区分展示层、模型层、控制层,展示层通过控制层与模型层沟通,展示层的状态数据与控制层进行双向绑定,模型层的变更通过回调形式通知给控制层,并最终作用于展示层。
在可折叠设备上使用FolderStack组件作为容器组件,承载播放器的所有功能组件,在半折叠态上,使需要移动到上屏的子组件产生相应的动态效果。
// TODO:知识点:FolderStack继承于Stack控件,通过upperItems字段识别指定id的组件,自动避让折叠屏折痕区后移到上半屏
FolderStack({ upperItems: [CommonConstants.FOLDER_STACK_UP_COMP_ID] }) {
MusicPlayerInfoComp({ musicModel: this.musicModel, curFoldStatus: this.curFoldStatus })
.id(CommonConstants.FOLDER_STACK_UP_COMP_ID)
MusicPlayerCtrlComp({ musicModel: this.musicModel })
}
Image(this.musicModel.cover)
.width(this.curImgSize)
.height(this.curImgSize)
.margin(20)
.animation(this.attrAniCfg)
.interpolation(ImageInterpolation.High)
.draggable(false)
display.on('foldStatusChange', (curFoldStatus: display.FoldStatus) => {
this.curFoldStatus = curFoldStatus;
this.windowModel.updateMainWinPreferredOrientation(curFoldStatus);
})
暂无
foldablescreencases // har类型 |---common | |---constants | | |---CommonConstants.ets // 通用常量 | | |---SysCapConstants.ets // 系统能力常量 |---components | |---MusicPlayerCtrlComp.ets // 自定义组件-音乐播放器控制栏 | |---MusicPlayerInfoComp.ets // 自定义组件-音乐播放器歌曲详情展示 |---model | |---AVPlayerModel.ets // 模型层-音频播放管理器 | |---MusicModel.ets // 模型层-音乐歌曲数据模型 | |---SysCapModel.ets // 模型层-系统能力管理器 | |---WindowModel.ets // 模型层-窗口管理器 |---pages | |---MusicPlayerPage.ets // 展示层-音乐播放器 |---viewmodel | |---MusicPlayerViewModel.ets // 控制层-音乐播放器控制器
依赖本地的utils模块
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/D2k9D5
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。