前言
廣告功能基本上算是每個軟件的必備功能之一,常見的除了輪播圖,列表之外,就是上下滾動的形式。廣告內(nèi)容不僅支持上下滾動,還需要支持手勢操作,以及關(guān)閉當(dāng)前正在預(yù)覽的廣告內(nèi)容。在 Android 或 iOS 上要想實(shí)現(xiàn)這樣的功能并不容易,那么在鴻蒙上怎么實(shí)現(xiàn)這樣的功能呢?本篇文章教你使用最簡單的方式實(shí)現(xiàn)一個支持上下滾動的廣告控件,建議點(diǎn)贊收藏!
實(shí)現(xiàn)效果
需求分析
- 廣告控件支持基本的上下自動滾動和手動滑動。
- 支持廣告刪除功能。
- 支持自定義播放時間間隔,是否自動播放等功能。
技術(shù)實(shí)現(xiàn)
- 首先從需求上來看,需要一個支持上下滾動的控件作為廣告的容器,一般的做法是先從現(xiàn)有的容器組件中查找是否能滿足需求的組件。這里使用的是官方提供的 Swiper 組件。Swiper 組件不僅支持內(nèi)容的上下滑動還支持左右滑動。
Swiper(this.swiperController)
- 確定好容器后,下面就是初始化數(shù)據(jù)填充組件,這里使用數(shù)組作為數(shù)據(jù)源,用 ForEach 遍歷數(shù)據(jù)源,注意如果數(shù)據(jù)量較大,為了提高更好的性能,使用 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("點(diǎn)擊了"+item)
})
}, (item: string) = > item)
- 刪除數(shù)據(jù),由于鴻蒙提供了@State裝飾器用來修飾數(shù)據(jù)源,當(dāng)數(shù)據(jù)源發(fā)生改變時,UI 也會發(fā)生相應(yīng)的變化,這里只需要對數(shù)組進(jìn)行操作即可。
this.data.splice(index,1) //index 指的是當(dāng)前位置下標(biāo),1代表要刪除的個數(shù)
- 設(shè)置自動播放時間,以及自動播放,手勢等功能。Swiper 組件提供了不少屬性用來實(shí)現(xiàn)這些功能。如 disableSwiper,autoPlay 等屬性。
.disableSwipe(false) //是否支持手動操作
.autoPlay(true) //是否自動播放
.interval(1000) //播放時間間隔
.vertical(true) //內(nèi)容上下切換
.indicator(false)
總結(jié)
對比 Android 和 iOS 來說,鴻蒙在實(shí)現(xiàn)上相對簡單,而且支持功能都能夠通過組合控件實(shí)現(xiàn),只要理解需求,分析透徹,再復(fù)雜的功能都能夠?qū)崿F(xiàn),基本上滿足日常需求。學(xué)會的小伙伴快動手試試吧!
-
Android
+關(guān)注
關(guān)注
12文章
3971瀏覽量
129891 -
鴻蒙
+關(guān)注
關(guān)注
59文章
2571瀏覽量
43891 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2146瀏覽量
32508
發(fā)布評論請先 登錄
HarmonyOS實(shí)戰(zhàn): 城市選擇功能的快速實(shí)現(xiàn)
HarmonyOS實(shí)戰(zhàn):3秒實(shí)現(xiàn)一個自定義輪播圖
HarmonyOS實(shí)戰(zhàn):實(shí)現(xiàn)任意拖動的應(yīng)用懸浮窗口
【HarmonyOS 5】桌面快捷方式功能實(shí)現(xiàn)詳解

HarmonyOS實(shí)戰(zhàn):自定義時間選擇器

HarmonyOS實(shí)戰(zhàn):組件化項(xiàng)目搭建

快速入門——LuatOS:sys庫多任務(wù)管理實(shí)戰(zhàn)攻略!

HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開發(fā)Node環(huán)境
名單公布!【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應(yīng)用開發(fā)實(shí)踐
HarmonyOS NEXT 原生應(yīng)用開發(fā):社交聊天對話過程實(shí)現(xiàn)
《HarmonyOS第一課》煥新升級,賦能開發(fā)者快速掌握鴻蒙應(yīng)用開發(fā)
HarmonyOS開發(fā)寶典震撼來襲,卓越應(yīng)用開發(fā)之旅一觸即發(fā),輕松啟程!
通過工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)中間變量表達(dá)式的快速配置

圖片動畫控件和Video image控件的使用方法

慶科信息獲HarmonyOS高級應(yīng)用開發(fā)能力認(rèn)證!助力品牌快速打造鴻蒙原生應(yīng)用

評論