首页 > 其他分享 >[HarmonyOS Next示例代码]流畅滑动页面

[HarmonyOS Next示例代码]流畅滑动页面

时间:2024-09-07 12:24:09浏览次数:6  
标签:ets 示例 Next HarmonyOS 瀑布 item 滑动 页面

HarmonyOS next 示例代码全集

PageSlip: 本项目是一个基于ArkTS的应用程序,基于伙伴高频使用场景,构建复杂的流畅滑动页面,滑动时不丢帧。

流畅滑动页面

简介

本项目是一个基于ArkTS的应用程序,基于伙伴高频使用场景,构建复杂的流畅滑动页面,滑动时不丢帧。

效果预览

工程目录

├──ets
│  ├──constants
│  │   ├──BreakpointConstants.ets       // 断点相关常量
│  │   ├──CommonConstants.ets           // 一般常量
│  │   └──HomeConstants.ets             // 主页的常量
│  ├──entryability
│  │   └──EntryAbility.ets
│  ├──entrybackupability
│  │   └──EntryBackupAbility.ets
│  ├──model
│  │   ├──FooterTabData.ets             // 底部导航栏
│  │   ├──FunctionEntryData.ets         // 功能区
│  │   ├──FunctionEntryListData.ets     // 功能区数据列表
│  │   ├──WaterFlowData.ets             // 瀑布流数据
│  │   ├──WaterFlowDescriptionData.ets  // 瀑布流item底部描述信息
│  │   ├──WaterFlowHeadData.ets         // 瀑布流item媒体信息
│  │   └──WaterFlowListData.ets         // 瀑布流数据列表
│  ├──pages
│  │   └──Index.ets                     // 滑动页面入口
│  ├──utils
│  │   ├──BreakpointSystem.ets          // 一多断点监听
│  │   ├──BreakpointType.ets            // 一多断点类型
│  │   ├──CollectionsCountModifier.ts   // 按需更新数据
│  │   ├──Logger.ts                     // 日志
│  │   └──NetworkUtil.ets               // 网络请求
│  └──view
│      ├──FunctionView.ets              // 功能区页面
│      ├──HomeContent.ets               // 主页
│      ├──IndexNavDestination.ets       // 导航栏入口
│      ├──NavigationBarView.ets         // 导航栏页面
│      ├──SearchBarView.ets             // 搜索栏页面
│      ├──WaterFlowDescriptionView.ets  // 瀑布流item底部描述页面
│      ├──WaterFlowImageView.ets        // 瀑布流item图片描述页面
│      ├──WaterFlowLivingView.ets       // 瀑布流item直播描述页面
│      ├──WaterFlowVideoView.ets        // 瀑布流item视频描述页面
│      └──WaterFlowView.ets             // 瀑布流页面
└──resources                            // 资源类

具体实现

  1. 瀑布流使用懒加载+缓存列表项的方式实现,避免了使用list作为数据源时一次性加载并渲染大量数据造成的性能瓶颈,也避免了滑动过快可能会造成的白块现象。
  2. 瀑布流里面的卡片都实现了组件复用,避免大量相同结构的组件频繁创建与销毁带来的性能损耗。
  3. 通过固定宽高比实现卡片在占位时就计算出卡片的高度,避免在组件渲染以后出现二次测量卡片高度,造成卡片跳动的情况。

使用说明

  1. 功能区可以左右滑动。
  2. 瀑布流可以下拉刷新,即将触底时分页加载数据,滑动时不丢帧。

相关权限

  1. 获取网络请求权限:ohos.permission.INTERNET。
  2. 获取网络链接状态权限:ohos.permission.GET_NETWORK_INFO。

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:华为手机。
  2. HarmonyOS系统:HarmonyOS NEXT Developer Beta5及以上。
  3. DevEco Studio版本:DevEco Studio NEXT Developer Beta5及以上。
  4. HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta5 SDK及以上。

标签:ets,示例,Next,HarmonyOS,瀑布,item,滑动,页面
From: https://blog.csdn.net/zhangtian6691844/article/details/141968060

相关文章

  • [HarmonyOS Next示例代码]一多股票类的关键场景实现
    MultiTicketClass:本示例主要使用栅格布局和List组件相结合的方式,实现了股票类差异化的多场景响应式变化效果。HarmonyOS next示例代码全集一多股票类的关键场景实现介绍本示例主要使用栅格布局和List组件相结合的方式,实现了股票类差异化的多场景响应式变化效果。效果......
  • [HarmonyOS Next示例代码]一多移动支付
    HarmonyOS next示例代码全集MultiMobilePayment:本篇Sample基于ScanKit中的默认界面扫码能力与码图生成能力实现移动支付应用中常见的扫一扫和收付款功能。一多移动支付介绍本篇Sample基于ScanKit中的默认界面扫码能力与码图生成能力实现移动支付应用中常见的扫一扫......
  • [HarmonyOS Next示例代码]视频横竖屏切换
    HarmonyOS next示例代码全集HarmonyOS_Samples/LandscapePortraitToggle视频横竖屏切换介绍本示例实现了视频播放的横竖屏自动切换功能效果预览竖屏横屏使用说明1.下拉状态栏打开关闭“旋转锁定”开关,打开app进入视频播放详情页,旋转手机到横屏或者点击视频右下角......
  • [HarmonyOS Next示例代码]用户认证登录
    HarmonyOS next示例代码全集UserAuth:本示例主要使用人脸和指纹认证用户身份、使用密码保险箱实现密码自动填充以及涉及口令输入的应用界面防截屏或录屏等功能的实现方式。用户认证登录介绍本示例主要使用人脸和指纹认证用户身份、使用密码保险箱实现密码自动填充以及涉......
  • 关于HarmonyOS的学习
    day22一、DOM   +文档对象模型   +在DOM的世界里面,把所有的标记称之为节点,把标记的结构称之为DOM树   +告诉咱们标记在文档里面是以树形结构存在的   +节点分类    =>document文档节点    =>eLement标记节......
  • 关于HarmonyOS的学习
    day23一、DOM尺寸和位置1.只能获取到内联style属性的CSS样式中的宽和高,如果有,获取;如果没有,则返回空$('.box1').style.width$('.box1').style.height$'.box1').style.backgroundColor2.返回了元素大小,但没有单位,默认单位是px,如果设置了其他的单位,比如100em之类,返回出来的......
  • 关于HarmonyOS的学习
    day24一、事件流    +称之为DOM事件流,因为是事件肯定是绑定给DOM元素的    +咱们在页面里面给元素注册(绑定)了事件,那么事件和事件之间会进行传递,而事件传递是由规则的,把这个规则称之为事件流    +完整事件流     =>捕获阶段---事......
  • 关于HarmonyOS的学习
    day21一、window对象常用方法  //提示信息,带有确认和取消。如果确认返回的是true,取消返回的是false  //varres=confirm('你确定登录吗?')  //console.log(res)​  varbtn1=document.querySelectorAll('button')[0]  varbtn2=document.qu......
  • 20 个冷邮件主题行示例——实际有效的(图表)
    编写有效的冷邮件是一项挑战,因为你和目标受众之间没有先前的联系。市场人员对此策略感到沮丧,因为反馈几乎不存在,而且消息往往会被淹没在垃圾邮件文件夹中。一般来说,如果邮件是个性化的、相关且及时的,你预计大约有20%到25%的潜在客户会打开你的邮件。然而,如果缺乏人情味,Mailchi......
  • CPU亲和性设置视频解析,代码示例 sched_setaffinity sched_getaffinity, CPU_ZERO、CP
    视频教程在这:cpu亲和性设置,NCCL,sched_setaffinitysched_getaffinity,CPU_ZERO、SET、ISSET、linux_哔哩哔哩_bilibili一、CPU亲和性简介CPU亲和性(CPUAffinity)设置是操作系统中一个重要的性能优化手段,它允许程序或进程被绑定到特定的CPU核心上运行。这样做的好处包括减少缓存未命中......