0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS实战:快速实现一个上下滚动的广告控件

尤枫 来源:jf_54996641 2025-06-24 17:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

广告功能基本上算是每个软件的必备功能之一,常见的除了轮播图,列表之外,就是上下滚动的形式。广告内容不仅支持上下滚动,还需要支持手势操作,以及关闭当前正在预览的广告内容。在 AndroidiOS 上要想实现这样的功能并不容易,那么在鸿蒙上怎么实现这样的功能呢?本篇文章教你使用最简单的方式实现一个支持上下滚动的广告控件,建议点赞收藏!

实现效果

需求分析

  1. 广告控件支持基本的上下自动滚动和手动滑动。
  2. 支持广告删除功能。
  3. 支持自定义播放时间间隔,是否自动播放等功能。

技术实现

  1. 首先从需求上来看,需要一个支持上下滚动的控件作为广告的容器,一般的做法是先从现有的容器组件中查找是否能满足需求的组件。这里使用的是官方提供的 Swiper 组件。Swiper 组件不仅支持内容的上下滑动还支持左右滑动。
Swiper(this.swiperController)
  1. 确定好容器后,下面就是初始化数据填充组件,这里使用数组作为数据源,用 ForEach 遍历数据源,注意如果数据量较大,为了提高更好的性能,使用 LazyForEach 懒加载的方式替代 ForEach。
ForEach(this.data, (item: string,index:number) = > {
          Row() {
            Text(item)
              .fontColor(0xfff5a51c)
              .fontSize(12)
              .layoutWeight(1)
            Image($r("app.media.service_notice_close"))
              .width(16)
              .height(16)
              .onClick(()= >{
                this.data.splice(index,1)
              })

          }.width(FULL_WIDTH)
          .padding({left:20,right:20})
          .alignItems(VerticalAlign.Center)
          .justifyContent(FlexAlign.Start)
          .width(FULL_WIDTH)
          .onClick(()= >{
            console.log("点击了"+item)
          })
        }, (item: string) = > item)
  1. 删除数据,由于鸿蒙提供了@State装饰器用来修饰数据源,当数据源发生改变时,UI 也会发生相应的变化,这里只需要对数组进行操作即可。
this.data.splice(index,1) //index 指的是当前位置下标,1代表要删除的个数
  1. 设置自动播放时间,以及自动播放,手势等功能。Swiper 组件提供了不少属性用来实现这些功能。如 disableSwiper,autoPlay 等属性。
.disableSwipe(false) //是否支持手动操作
      .autoPlay(true) //是否自动播放
      .interval(1000) //播放时间间隔
      .vertical(true) //内容上下切换
      .indicator(false)

总结

对比 Android 和 iOS 来说,鸿蒙在实现上相对简单,而且支持功能都能够通过组合控件实现,只要理解需求,分析透彻,再复杂的功能都能够实现,基本上满足日常需求。学会的小伙伴快动手试试吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    4035

    浏览量

    134504
  • 鸿蒙
    +关注

    关注

    60

    文章

    3021

    浏览量

    46178
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36296
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【直播预告】10月14日 本周二晚8点|睿擎平台首场实战直播:从快速上手到实现远程监控网关

    次直播,带你完整走通工业网关开发全流程面对新的开发平台,你是否也在为环境配置而头疼?想要快速验证平台能力却不知从何入手?好消息!睿擎平台首场实战直播来了!10月14日(周二)晚8点,睿擎平台核心
    的头像 发表于 10-13 16:29 1034次阅读
    【直播预告】10月14日 本周二晚8点|睿擎平台首场<b class='flag-5'>实战</b>直播:从<b class='flag-5'>快速</b>上手到<b class='flag-5'>实现</b>远程监控网关

    【直播预告】10月14日晚8点|睿擎平台首场实战直播:从快速上手到实现远程监控网关

    次直播,带你完整走通工业网关开发全流程面对新的开发平台,你是否也在为环境配置而头疼?想要快速验证平台能力却不知从何入手?好消息!睿擎平台首场实战直播来了!10月14日(周二)晚8点,睿擎平台核心
    的头像 发表于 10-09 14:46 717次阅读
    【直播预告】10月14日晚8点|睿擎平台首场<b class='flag-5'>实战</b>直播:从<b class='flag-5'>快速</b>上手到<b class='flag-5'>实现</b>远程监控网关

    HarmonyOSAI编程智能问答

    多线程? 指定上下文问答 在对话框中输入@符号,或点击上方@Add Context按钮,可指定对单个或多个代码文件进行分析。点击图标开启光标上下文功能,该功能可识别光标位置和选中的代码片段,让CodeGenie分析指定文件和选中的代码片段。 本文主要从参考引用自
    发表于 09-03 16:17

    HarmonyOS AI辅助编程工具(CodeGenie)智能问答

    DeepSeek-R1智能体,快速体验智能问答能力。 、对话示例 在对话区域输入需要查询的问题,开始问答。示例如下: ArkTS如何实现多线程? 二、指定上下文问答 在对话框中输入@
    发表于 08-15 11:07

    10RTL优化实战技巧

    今天我给大家总结10实战级优化技巧,每条都有具体案例,助你从根源上搞定资源问题!
    的头像 发表于 07-21 15:01 1026次阅读

    HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能

    HarmonyOS 的 ** 文档扫描控件(DocumentScanner)** 是 AI Vision Kit 提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功
    的头像 发表于 07-11 18:16 1585次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】鸿蒙应用<b class='flag-5'>实现</b>发票扫描、文档扫描输出PDF图片或者表格的功能

    HarmonyOS入门指南

    OpenHarmony三方库中心仓 坚果派 童长老仓库中心 鸿蒙宝典 快速学习鸿蒙的电子书 promises-book JavaScript Promise迷你书。 harmony-utils 款功能丰富且极易
    的头像 发表于 06-27 00:11 925次阅读

    HarmonyOS实战: 城市选择功能的快速实现

    最近在日常开发过程中,需要实现城市选择功能,同时支持模糊搜索。看似简单的功能动手实现起来却有很多难点。本篇文章详细记录开发过程中遇到的问题和对应的解决方法,希望能够帮助你,建议点赞收藏!
    的头像 发表于 06-24 17:07 583次阅读

    HarmonyOS实战:3秒实现自定义轮播图

    那么简单,需要考虑的细节很多。不过在 HarmonyOS实现轮播图却是十分的简单,本篇文章教你在最短的时间内快速
    的头像 发表于 06-24 17:06 1600次阅读

    HarmonyOS实战实现任意拖动的应用悬浮窗口

    为了增加应用程序功能的丰富性和便利性,很多应用都会提供悬浮窗口实现多页面显示。特别是些性能检测工具,比如 dokit 。在鸿蒙上怎么实现
    的头像 发表于 06-24 17:04 1464次阅读

    HarmonyOS 5】桌面快捷方式功能实现详解

    HarmonyOS 5】桌面快捷方式功能实现详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 、前言 在移动应用开发中,如何让用户
    的头像 发表于 06-21 16:42 2453次阅读
    【<b class='flag-5'>HarmonyOS</b> 5】桌面快捷方式功能<b class='flag-5'>实现</b>详解

    HarmonyOS实战:自定义时间选择器

    选中日期为当前时间。 支持精确到时分。 注意闰年的计算。 技术实现 首先要想实现时间选择器,需要使用上下可以
    的头像 发表于 06-09 15:51 773次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>实战</b>:自定义时间选择器

    HarmonyOS实战:组件化项目搭建

    ?本文将详细讲解HarmonyOs组件化项目搭建的全过程,带领大家实现组件化项目。 项目创建 首先创建
    的头像 发表于 06-09 14:58 795次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>实战</b>:组件化项目搭建

    HarmonyOS5云服务技术分享--ArkTS开发Node环境

    气的方式探索这个功能,结尾还有实用总结和鼓励彩蛋哦~✨ ? HarmonyOS云函数开发:核心能力与价值 HarmonyOS的云函数(Serverless)为开发者提供了​​无服务器架构​​的便捷
    发表于 05-22 17:21

    是德示波器DSOX3012A滚动模式设置指南

    、参数优化策略及典型应用场景,帮助用户高效掌握这功能,提升信号分析效率。   滚动模式的基本原理与优势 滚动模式通过连续捕获并左移波形数据,在示波器屏幕上形成“时间轴窗口”,
    的头像 发表于 05-13 15:55 938次阅读
    是德示波器DSOX3012A<b class='flag-5'>滚动</b>模式设置指南