前言
廣告功能基本上算是每個軟件的必備功能之一,常見的除了輪播圖,列表之外,就是上下滾動的形式。廣告內容不僅支持上下滾動,還需要支持手勢操作,以及關閉當前正在預覽的廣告內容。在 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文章
4024瀏覽量
133969 -
鴻蒙
+關注
關注
60文章
2963瀏覽量
45882 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36037
發布評論請先 登錄
相關推薦
熱點推薦
【直播預告】10月14日 本周二晚8點|睿擎平臺首場實戰直播:從快速上手到實現遠程監控網關
一次直播,帶你完整走通工業網關開發全流程面對新的開發平臺,你是否也在為環境配置而頭疼?想要快速驗證平臺能力卻不知從何入手?好消息!睿擎平臺首場實戰直播來了!10月14日(周二)晚8點,睿擎平臺核心
【直播預告】10月14日晚8點|睿擎平臺首場實戰直播:從快速上手到實現遠程監控網關
一次直播,帶你完整走通工業網關開發全流程面對新的開發平臺,你是否也在為環境配置而頭疼?想要快速驗證平臺能力卻不知從何入手?好消息!睿擎平臺首場實戰直播來了!10月14日(周二)晚8點,睿擎平臺核心
HarmonyOSAI編程智能問答
多線程?
指定上下文問答
在對話框中輸入@符號,或點擊上方@Add Context按鈕,可指定對單個或多個代碼文件進行分析。點擊圖標開啟光標上下文功能,該功能可識別光標位置和選中的代碼片段,讓CodeGenie分析指定文件和選中的代碼片段。
本文主要從參考引用自
發表于 09-03 16:17
HarmonyOS AI輔助編程工具(CodeGenie)智能問答
DeepSeek-R1智能體,快速體驗智能問答能力。
一、對話示例
在對話區域輸入需要查詢的問題,開始問答。示例如下:
ArkTS如何實現多線程?
二、指定上下文問答
在對話框中輸入@
發表于 08-15 11:07
【HarmonyOS 5】鴻蒙應用實現發票掃描、文檔掃描輸出PDF圖片或者表格的功能
) HarmonyOS 的 ** 文檔掃描控件(DocumentScanner)** 是 AI Vision Kit 提供的核心場景化視覺服務,旨在幫助開發者快速實現移動端文檔數字化功
HarmonyOS入門指南
OpenHarmony三方庫中心倉 堅果派 童長老倉庫中心 鴻蒙寶典 一本快速學習鴻蒙的電子書 promises-book JavaScript Promise迷你書。 harmony-utils 一款功能豐富且極易
HarmonyOS實戰: 城市選擇功能的快速實現
最近在日常開發過程中,需要實現城市選擇功能,同時支持模糊搜索。看似簡單的功能動手實現起來卻有很多難點。本篇文章詳細記錄開發過程中遇到的問題和對應的解決方法,希望能夠幫助你,建議點贊收藏!
HarmonyOS實戰:3秒實現一個自定義輪播圖
那么簡單,需要考慮的細節很多。不過在 HarmonyOS 中實現一個輪播圖卻是十分的簡單,本篇文章教你在最短的時間內快速
HarmonyOS實戰:實現任意拖動的應用懸浮窗口
為了增加應用程序功能的豐富性和便利性,很多應用都會提供一個懸浮窗口實現多頁面顯示。特別是一些性能檢測工具,比如 dokit 。在鴻蒙上怎么實現
【HarmonyOS 5】桌面快捷方式功能實現詳解
【HarmonyOS 5】桌面快捷方式功能實現詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、前言 在移動應用開發中,如何讓用戶
快速入門——LuatOS:sys庫多任務管理實戰攻略!
在嵌入式開發中,多任務管理是提升系統效率的關鍵。本教程專為快速入門設計,聚焦LuatOS的sys庫,通過實戰案例帶你快速掌握多任務創建、調度與同步技巧。無論你是零基礎新手還是希望快速提
HarmonyOS5云服務技術分享--ArkTS開發Node環境
氣的方式探索這個功能,結尾還有實用總結和鼓勵彩蛋哦~?
? 一、HarmonyOS云函數開發:核心能力與價值
HarmonyOS的云函數(Serverless)為開發者提供了??無服務器架構??的便捷
發表于 05-22 17:21
HarmonyOS實戰:快速實現一個上下滾動的廣告控件
評論