当前位置: 首页 > news >正文

鸿蒙应用开发之通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果

当上拉时,外层先滚动慢慢的黄色签到图片会消失、然后List列表可以继续上拉

效果预览:

实现思路:

  1. 实现页面结构布局,红、黄、绿、列表
@Entry
@Component
struct Index {build() {Column() {// 红色(不要放到Column   因为后续下面黄色、蓝、列表需要滚动  而这个红色不需要)Text().width('100%').height(150).backgroundColor(Color.Red)// 下述后续要上拉滚动Column() {// 黄色签到Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色 Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.layoutWeight(1).divider({strokeWidth:2,color:Color.Red})}}}
}
  1. 实现黄色、蓝色、列表上拉滚动 通过Scroll容器
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})}}.layoutWeight(1)}}
}
  1. 实现上拉黄色慢慢消失,蓝色吸顶效果
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')}}.layoutWeight(1)}}
}
  1. 通过nestedScroll属性实现外层滚动Scroll、内层List滚动控制
@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')// 核心3⭐️:向前向后滚动模式 -> 实现与父组件的滚动联动.nestedScroll({scrollForward: NestedScrollMode.PARENT_FIRST, // 上拉scrollBackward: NestedScrollMode.SELF_FIRST   // 下拉// 不管父-SELF_ONLY、SELF_FIRST-到边缘管父、PARENT_FIRST-到边缘管子、PARALLEL-父子同时// 详细 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-appendix-enums-V13#nestedscrollmode10})}}.layoutWeight(1)}}
}

完整代码:

@Entry
@Component
struct Index {build() {Column() {// 红色Text().width('100%').height(150).backgroundColor(Color.Red)// 核心1⭐️:多层嵌套滚动Scroll() {Column() {// 黄色Text().width('100%').height(100).backgroundColor(Color.Yellow)// 蓝色Text().width('100%').height(50).backgroundColor(Color.Blue)// 列表List() {ForEach('0123456789abcdefg'.split(''), (item:string) => {ListItem() {Text(item).height(50).fontSize(30)}})}.divider({strokeWidth:2,color:Color.Red})// 核心2⭐:上拉黄色慢慢消失、蓝色一直在  也就是减去蓝色高度.height('calc(100% - 50vp)')// 核心3⭐️:向前向后滚动模式 -> 实现与父组件的滚动联动.nestedScroll({scrollForward: NestedScrollMode.PARENT_FIRST, // 上拉scrollBackward: NestedScrollMode.SELF_FIRST   // 下拉// 不管父-SELF_ONLY、SELF_FIRST-到边缘管父、PARENT_FIRST-到边缘管子、PARALLEL-父子同时// 详细 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-appendix-enums-V13#nestedscrollmode10})}}.layoutWeight(1)}}
}

鸿蒙开发者班级

http://www.gsyq.cn/news/149094.html

相关文章:

  • VMware Horizon 与 Docker 冲突排错记录
  • Iridescent:Day34
  • 2025最新!9个AI论文平台测评:继续教育写论文痛点全解析
  • 8个降AI率工具推荐!继续教育学生必看
  • 路由策略和策略路由区别是什么
  • 深入剖析WordPress插件漏洞:未授权攻击的成功之道
  • GIF压缩策略优化:从激进到智能的演进之路
  • Chap25-SeparateUI-NetThread
  • 如果计算引擎是MapReduce,那么Hive能跑Spark SQL作业吗?
  • 告别复杂笔记软件!Memos+cpolar,让你的笔记随时随地可用
  • 佳能LBP2900 linux驱动 captdriver - 童晓伟
  • 为何选择 Go 语言进行开发?
  • Asio15-QuitGracefully
  • 基于Android的XX校园学习娱乐交流APP--论文小程序
  • 领导根本不关心你干了多少活,只在意这3点
  • 【课程设计/毕业设计】基于SpringBoot的植物知识分享系统的设计与实现基于SpringBoot的植物知识管理与分享平台的设计与实现【附源码、数据库、万字文档】
  • 手把手吃透设计模式内功:七大原则代码解析与重构指南
  • Elasticsearch倒排索引详解:如何实现高效搜索
  • excel如何筛选重复项?码住这4种方法!
  • Asio12-HandlePacketStickingProblemSimply
  • 第四章 SQL Server备份和还原
  • 【课程设计/毕业设计】基于springboot美发门店管理系统设计与实现基于springboot的美发商城系统【附源码、数据库、万字文档】
  • 计算机Java毕设实战-基于springboot的美发商城系统服务预约技师选择、到店时间预约【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 计算机Java毕设实战-基于SpringBoot的植物知识管理与分享平台的设计与实现家庭园艺种植分享平台设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 番茄小说下载器 2025.12.21 | 现代化、高效的番茄小说下载器,支持批量下载和多种格式导出
  • STM32平衡车工具-匿名助手+虚拟串口如何使用。
  • 计算机Java毕设实战-基于springboot+vue技术的二手车交易管理系统的设计与实现基于SpringBoot+Vue的二手车交易平台设计【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2-[(2-叠氮乙酰基)氨基]-2-脱氧-D-吡喃甘露糖—糖生物学与代谢标记的关键化学探针 1971934-97-0
  • Java毕设选题推荐:基于springboot+vue技术的二手车交易管理系统的设计与实现汽车管理汽车品牌管理,公告类型管理,论坛管理【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 新品限免|国产大模型工程化实战:GLM-4.7与MiniMax M2.1 免费选型对比