介紹
相關概念
- [rating組件]:評分條,可根據用戶判斷進行打分。
環境搭建
軟件要求
- [DevEco Studio]版本:DevEco Studio 3.1 Release及以上版本。
- OpenHarmony SDK版本:API version 9及以上版本。
硬件要求
- 開發板類型:[潤和RK3568開發板]。
- OpenHarmony系統:3.2 Release及以上版本。
環境搭建
完成本篇Codelab我們首先要完成開發環境的搭建,本示例以RK3568開發板為例,參照以下步驟進行:
- [獲取OpenHarmony系統版本]:標準系統解決方案(二進制)。以3.2 Release版本為例:
- 搭建燒錄環境。
- [完成DevEco Device Tool的安裝]
- [完成RK3568開發板的燒錄]
- 搭建開發環境。
代碼結構解讀
本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在gitee中提供。
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
├──entry/src/main/js // 代碼區
│ └──MainAbility
│ ├──common
│ │ └──images
│ │ ├──star_focus_yellow.svg // 前景圖片
│ │ ├──star_half_yellow.svg // 次級背景圖片
│ │ └──star_nor.svg // 背景圖片
│ ├──i18n
│ │ ├──en-US.json // 英文國際化
│ │ └──zh-CN.json // 中文國際化
│ ├──pages
│ │ └──index
│ │ ├──index.css // 星級打分頁面樣式
│ │ ├──index.hml // 星級打分頁面
│ │ └──index.js // 星級打分頁面邏輯
│ └──app.js // 程序入口
└──entry/src/main/resource // 應用靜態資源目錄
頁面布局
界面主要由自定義星級打分和平均分等級兩個部分組成。
本應用使用div組件用作外層容器,并將自定義星級組件和平均分等級分別放在兩個div組件中。除此之外,自定義星級打分還使用了列表渲染,使用for循環一次渲染多個組件,onchange參數可以設置組件使用的事件響應方法,參數中的$idx則代表數組中的元素的索引值。
< !-- index.hml -- >
< div class="container" >
< !-- 自定義打分組件-- >
< div class="sub-container" >
...
< rating for="{{ ratings }}" onchange="rateChange({{ $idx }})" class="rate" rating="3" >< /rating >
< /div >
< !-- 平均分等級展示-- >
< div class="sub-container-average" >
...
< rating class="rate-avg" indicator="true" stepsize="0.1" rating="{{ avg }}" >< /rating >
...
< /div >
< /div >
為組件設計樣式
自定義星級打分的rating組件還可以設置星星樣式,需要設置以下三個參數:
- star-background:背景圖片,沒被選中時使用的圖片。
- star-foreground:前景圖片,完全被選中時使用的圖片,或未被完全選中時左側使用的圖片。
- star-secondary:次級背景圖片,未被完全選中時右側使用的圖片。
/* index.css */
/* 自定義星級打分樣式 */
.rate {
star-background: url("/common/images/ic_star_nor.svg");
star-foreground: url("/common/images/ic_star_focus_yellow.svg");
star-secondary: url("/common/images/ic_star_half_yellow.svg");
width: 140vp;
height: 30vp;
margin-bottom: 10vp;
}
數據處理
數據初始化,使用數組記錄rating組件的分值,使用avg變量記錄平均值。
// index.js
export default {
data: {
ratings: new Array(3, 3, 3),
avg: 3
},
...
}
當rating發生變化時,根據索引值更改對應元素的數據,并重新計算平均值。
// index.js
rateChange(idx, event) {
this.ratings.splice(idx, 1, event.rating);
this.getAvg();
},
getSum(total, num) {
return total + num;
},
getAvg() {
const value = this.ratings.reduce(this.getSum) / this.ratings.length;
this.avg = value.toFixed(1);
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
鴻蒙
+關注
關注
57文章
2398瀏覽量
43130 -
HarmonyOS
+關注
關注
79文章
1984瀏覽量
30690 -
OpenHarmony
+關注
關注
25文章
3753瀏覽量
16713
發布評論請先 登錄
相關推薦
HarmonyOS開發案例:【基礎組件Slider的使用】
學習如何使用聲明式UI編程框架的基礎組件。本篇Codelab將會使用Image組件、Slider組件、Text組件共同實現一個可調節的風車動畫
![<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發案</b>例:【基礎<b class='flag-5'>組件</b>Slider的使用】](https://file1.elecfans.com/web2/M00/DE/4A/wKgaomYtA6mAaDuhAE-3-mfo7Qk693.jpg)
HarmonyOS IoT 硬件開發案例分享
``許思維老師HiSpark Wi-Fi IoT 開發案例分享:案例一:AHT20溫濕度傳感器開發、調試;案例二:oled屏驅動庫移植,調試;案例三:用OLED屏播放視頻,Wi-Fi 和 TCP/IP 綜合應用。 ``
發表于 10-27 17:30
【基于HarmonyOS開發購物應用】AnBetter Codelab第二期記錄帖
(marquee),菜單組件(menu),滑動選擇器組件(picker),進度條組件(progress),評分條組件(rating),搜索框
發表于 04-17 00:55
HarmonyOS應用開發資料(Svg組件)
1、HarmonyOS應用開發-Svg組件circle 該組件從API version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。2、
發表于 03-17 14:49
【組件資料】HarmonyOS三方件開發指南
1、HarmonyOS三方件開發指南——LoadingView組件1.LoadingView組件功能介紹1.1.功能介紹:LoadingView組件
發表于 03-21 11:18
HarmonyOS/OpenHarmony應用開發-聲明式開發范式組件匯總
組件是構建頁面的核心,每個組件通過對數據和方法的簡單封裝,實現獨立的可視、可交互功能單元。組件之間相互獨立,隨取隨用,也可以在需求相同的地方重復使用。聲明式開發范式目前可供選擇的
發表于 01-19 11:14
HarmonyOS/OpenHarmony原生應用-ArkTS萬能卡片組件Rating
提供在給定范圍內選擇評分的組件。該組件從API Version 7開始支持。無子組件。
一、接口
Rating(options?: { rating
發表于 10-17 15:09
HarmonyOS鴻蒙原生應用開發設計- 服務組件庫
HarmonyOS設計文檔中,為大家提供了一些已經設計好的原生服務組件庫,開發者可以根據需要直接引用。
開發者直接使用官方提供的服務組件庫樣
發表于 10-24 16:12
評論