怎么建立一个网站卖东西,html5响应式网站开发教程,上海展厅,html购物网站源代码介绍
本示例主要介绍了利用panel实现底部面板内嵌套列表#xff0c;分阶段滑动效果场景。
效果图预览 使用说明
点击底部“展开”#xff0c;弹出panel面板。在panel半展开时#xff0c;手指向上滑动panel高度充满页面#xff0c;手指向下滑动panel隐藏。在panel完全展开…介绍
本示例主要介绍了利用panel实现底部面板内嵌套列表分阶段滑动效果场景。
效果图预览 使用说明
点击底部“展开”弹出panel面板。在panel半展开时手指向上滑动panel高度充满页面手指向下滑动panel隐藏。在panel完全展开时panel内部列表不处于首项时panel内列表跟随手指滑动当列表位于首项且手指向下滑动时panel高度减小到半展开。
实现思路
本例涉及的关键特性和实现方案如下
通过mode属性设置panel的不同展开模式miniHeight属性设置PanelMode.Mini模式的高度halfHeight属性设置PanelMode.Half高度。通过onChange事件监听panel展开模式的变化实现根据不同的panel模式来变化panel的高度。
Panel(this.show) { // panel内组件内容
}
.miniHeight(MINI_PANEL_HEIGHT) // panel最小高度
.type(PanelType.Foldable)
.mode(this.mode)
.draggable(false) // 关闭拖拽panel
.halfHeight(HALF_PANEL_HEIGHT) // panel一半高度
.onChange((width: number, height: number, mode: PanelMode) {switch (mode) {case PanelMode.Full: {this.mode PanelMode.Full;this.isOpen true;break;}case PanelMode.Half: {this.mode PanelMode.Half;this.isOpen false;break;}case PanelMode.Mini: {this.show false;}}
})通过this.isOpen状态变量来控制panel中嵌套的列表是否可以滑动。
loadMyPanelList() {List({ initialIndex: 0, scroller: this.listScroller }) {LazyForEach(this.panelList, (item: PanelDataType) {ListItem() {panelListItem({ desc: item.desc, include: item.include })}.width(FULL_SIZE)}, (item: PanelDataType) item.desc)}....enabled(this.isOpen)
}
通过panel中嵌套的列表的onTouch事件来控制嵌套的列表在滑动时panel的展开模式。
.onTouch((event?: TouchEvent) {// panel展开时滑动事件if (event) {switch (event.type) {case TouchType.Down: {// 记录手机按下屏幕时的纵坐标this.yStart event.touches[0].y;break;}case TouchType.Up: {break;}case TouchType.Move: {let yEnd: number event.touches[0].y;// 判断是上滑还是下滑if (this.yStart yEnd) {// 下滑this.isUp false;// 在手指下滑且panel内列表达到顶部的情况下panel回到half模式if (this.startIndex 0 this.isUp false) {this.mode PanelMode.Half;}return;} else {// 上滑this.isUp true;return;}}}}
})高性能知识点
本示例使用了LazyForEach进行数据懒加载List布局时会根据可视区域按需创建ListItem组件并在ListItem滑出可视区域外时销毁以降低内存占用。
工程结构模块类型
bottompanelsilde // har类型
|---src/main/ets/components
| |---Component // 自定义组件
|---src/main/ets/view
| |---BottomPanelSilde.ets // panel嵌套列表滑动界面模块依赖
依赖路由管理模块
参考资料
panel触摸事件
鸿蒙全栈开发全新学习指南
也为了积极培养鸿蒙生态人才让大家都能学习到鸿蒙开发最新的技术针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群整理了一套纯血版鸿蒙HarmonyOS Next全栈开发技术的学习路线【包含了大厂APP实战项目开发】。
本路线共分为四个阶段
第一阶段鸿蒙初中级开发必备技能 第二阶段鸿蒙南北双向高工技能基础gitee.com/MNxiaona/733GH 第三阶段应用开发中高级就业技术 第四阶段全网首发-工业级南向设备开发就业技术https://gitee.com/MNxiaona/733GH 《鸿蒙 (Harmony OS)开发学习手册》共计892页
如何快速入门
1.基本概念 2.构建第一个ArkTS应用 3.…… 开发基础知识:gitee.com/MNxiaona/733GH
1.应用基础知识 2.配置文件 3.应用数据管理 4.应用安全管理 5.应用隐私保护 6.三方应用调用管控机制 7.资源分类与访问 8.学习ArkTS语言 9.…… 基于ArkTS 开发
1.Ability开发 2.UI开发 3.公共事件与通知 4.窗口管理 5.媒体 6.安全 7.网络与链接 8.电话服务 9.数据管理 10.后台任务(Background Task)管理 11.设备管理 12.设备使用信息统计 13.DFX 14.国际化开发 15.折叠屏系列 16.…… 鸿蒙开发面试真题含参考答案:gitee.com/MNxiaona/733GH 鸿蒙入门教学视频 美团APP实战开发教学gitee.com/MNxiaona/733GH 写在最后
如果你觉得这篇内容对你还蛮有帮助我想邀请你帮我三个小忙点赞转发有你们的 『点赞和评论』才是我创造的动力。关注小编同时可以期待后续文章ing不定期分享原创知识。想要获取更多完整鸿蒙最新学习资源请移步前往小编gitee.com/MNxiaona/733GH