前言
广告功能基本上算是每个软件的必备功能之一,常见的除了轮播图,列表之外,就是上下滚动的形式。广告内容不仅支持上下滚动,还需要支持手势操作,以及关闭当前正在预览的广告内容。在 Android 或 iOS 上要想实现这样的功能并不容易,那么在鸿蒙上怎么实现这样的功能呢?本篇文章教你使用最简单的方式实现一个支持上下滚动的广告控件,建议点赞收藏!
实现效果
需求分析
- 广告控件支持基本的上下自动滚动和手动滑动。
- 支持广告删除功能。
- 支持自定义播放时间间隔,是否自动播放等功能。
技术实现
- 首先从需求上来看,需要一个支持上下滚动的控件作为广告的容器,一般的做法是先从现有的容器组件中查找是否能满足需求的组件。这里使用的是官方提供的 Swiper 组件。Swiper 组件不仅支持内容的上下滑动还支持左右滑动。
Swiper(this.swiperController)
- 确定好容器后,下面就是初始化数据填充组件,这里使用数组作为数据源,用 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)
- 删除数据,由于鸿蒙提供了@State装饰器用来修饰数据源,当数据源发生改变时,UI 也会发生相应的变化,这里只需要对数组进行操作即可。
this.data.splice(index,1) //index 指的是当前位置下标,1代表要删除的个数
- 设置自动播放时间,以及自动播放,手势等功能。Swiper 组件提供了不少属性用来实现这些功能。如 disableSwiper,autoPlay 等属性。
.disableSwipe(false) //是否支持手动操作
.autoPlay(true) //是否自动播放
.interval(1000) //播放时间间隔
.vertical(true) //内容上下切换
.indicator(false)
总结
对比 Android 和 iOS 来说,鸿蒙在实现上相对简单,而且支持功能都能够通过组合控件实现,只要理解需求,分析透彻,再复杂的功能都能够实现,基本上满足日常需求。学会的小伙伴快动手试试吧!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Android
+关注
关注
12文章
3985浏览量
133053 -
鸿蒙
+关注
关注
60文章
2858浏览量
45349 -
HarmonyOS
+关注
关注
80文章
2146浏览量
35570
发布评论请先 登录
相关推荐
热点推荐
【直播预告】10月14日 本周二晚8点|睿擎平台首场实战直播:从快速上手到实现远程监控网关
一次直播,带你完整走通工业网关开发全流程面对新的开发平台,你是否也在为环境配置而头疼?想要快速验证平台能力却不知从何入手?好消息!睿擎平台首场实战直播来了!10月14日(周二)晚8点,睿擎平台核心
【直播预告】10月14日晚8点|睿擎平台首场实战直播:从快速上手到实现远程监控网关
一次直播,带你完整走通工业网关开发全流程面对新的开发平台,你是否也在为环境配置而头疼?想要快速验证平台能力却不知从何入手?好消息!睿擎平台首场实战直播来了!10月14日(周二)晚8点,睿擎平台核心
HarmonyOS AI辅助编程工具(CodeGenie)智能问答
DeepSeek-R1智能体,快速体验智能问答能力。
一、对话示例
在对话区域输入需要查询的问题,开始问答。示例如下:
ArkTS如何实现多线程?
二、指定上下文问答
在对话框中输入@
发表于 08-15 11:07
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
) HarmonyOS 的 ** 文档扫描控件(DocumentScanner)** 是 AI Vision Kit 提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功
HarmonyOS实战: 城市选择功能的快速实现
最近在日常开发过程中,需要实现城市选择功能,同时支持模糊搜索。看似简单的功能动手实现起来却有很多难点。本篇文章详细记录开发过程中遇到的问题和对应的解决方法,希望能够帮助你,建议点赞收藏!
HarmonyOS实战:3秒实现一个自定义轮播图
那么简单,需要考虑的细节很多。不过在 HarmonyOS 中实现一个轮播图却是十分的简单,本篇文章教你在最短的时间内快速
HarmonyOS实战:实现任意拖动的应用悬浮窗口
为了增加应用程序功能的丰富性和便利性,很多应用都会提供一个悬浮窗口实现多页面显示。特别是一些性能检测工具,比如 dokit 。在鸿蒙上怎么实现
【HarmonyOS 5】桌面快捷方式功能实现详解
【HarmonyOS 5】桌面快捷方式功能实现详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 在移动应用开发中,如何让用户
HarmonyOS5云服务技术分享--ArkTS开发Node环境
气的方式探索这个功能,结尾还有实用总结和鼓励彩蛋哦~✨
? 一、HarmonyOS云函数开发:核心能力与价值
HarmonyOS的云函数(Serverless)为开发者提供了无服务器架构的便捷
发表于 05-22 17:21
名单公布!【书籍评测活动NO.56】极速探索HarmonyOS NEXT:纯血鸿蒙应用开发实践
的各个关键领域。另外,书中还提供了基于HarmonyOS NEXT 的完整实战项目和3个特色案例,并附带了全套的源代码。
本书适合鸿蒙应用开发工程师、移动应用开发工程师以及对鸿蒙应用开发感兴趣的读者
发表于 01-20 16:53
HarmonyOS NEXT 原生应用开发:社交聊天对话过程实现
一、实现思路
本DEMO旨在展示如何在HarmonyOS NEXT平台上,利用ArkTS开发语言构建一个简易的社交聊天对话界面。用户可以在此
发表于 01-07 10:55
《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发
和优化用户体验。 学、练、考一体化,帮助开发者快速上手HarmonyOS开发,实现职业进阶
《HarmonyOS第
发表于 01-02 14:24

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