效果圖:
示例代碼
// 使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上。
// 主要功能及注意事項(xiàng):
// 該組件展示了一個(gè)乘客選擇列表。列表中的每個(gè)項(xiàng)目包含一個(gè)復(fù)選框和對(duì)應(yīng)的乘客姓名,
// 用戶點(diǎn)擊任意一項(xiàng)即可切換其選中狀態(tài)。組件通過(guò)限制最多只能選擇5名乘客,
// 并在超過(guò)限制時(shí)通過(guò)promptAction模塊彈出 toast 提示用戶。
// 注意,代碼中的Checkbox組件目前設(shè)置為不可更改(enabled(false)),
// 在實(shí)際應(yīng)用中可以根據(jù)需求決定是否允許用戶手動(dòng)改變復(fù)選框狀態(tài)。
// 導(dǎo)入提示操作模塊
import promptAction from '@ohos.promptAction';
// 定義數(shù)據(jù)模型類(lèi)ItemData
class ItemData {
// 名字屬性
name: string;
// 是否選中屬性
isSelect: boolean;
// 構(gòu)造函數(shù)初始化數(shù)據(jù)
constructor(name: string, isSelect: boolean) {
this.name = name;
this.isSelect = isSelect;
}
}
// 標(biāo)記為入口文件并創(chuàng)建組件
@Entry
@Component
struct test {
// 狀態(tài)變量arr用于存儲(chǔ)ItemData對(duì)象數(shù)組
@State arr: Array< ItemData > = [
new ItemData('趙大', false),
new ItemData('錢(qián)二', false),
new ItemData('張三', false),
new ItemData('李四', false),
new ItemData('王五', false),
new ItemData('周六', false),
new ItemData('李七', false),
new ItemData('朱八', false)
];
// 構(gòu)建UI組件的方法
build() {
// 創(chuàng)建垂直方向布局
Column() {
// 顯示提示文本
Text('請(qǐng)選擇乘客,最多限五人')
.margin({ top: '60lpx', left: '50lpx', bottom: '10lpx' });
// 遍歷存儲(chǔ)乘客信息的數(shù)據(jù)數(shù)組
ForEach(this.arr, (item: ItemData, index: number) = > {
// 創(chuàng)建水平方向布局
Row() {
// 創(chuàng)建復(fù)選框組件,禁用修改(此處可能是樣式演示,實(shí)際應(yīng)用中可去除.enabled(false))
Checkbox()
.enabled(false)
.select(item.isSelect)
.width('41lpx')
.height('41lpx')
.selectedColor("#FF53B175");
// 顯示乘客姓名文本
Text(item.name)
.fontSize('27lpx')
.margin({ left: '10lpx' })
.fontWeight(400)
.fontColor(item.isSelect ? "#FF53B175" : "#FF181725")
// 當(dāng)行組件點(diǎn)擊事件處理
}
.onClick(() = > {
// 反轉(zhuǎn)當(dāng)前項(xiàng)的選中狀態(tài)
item.isSelect = !item.isSelect;
// 計(jì)算已選中乘客數(shù)量
let isSelectCount = 0;
for (let i = 0; i < this.arr.length; i++) {
if (this.arr[i].isSelect) {
isSelectCount++;
}
}
// 如果已選中超過(guò)5人,則恢復(fù)當(dāng)前項(xiàng)未選中狀態(tài)并彈出提示
if (isSelectCount > 5) {
item.isSelect = !item.isSelect;
try {
// 使用promptAction模塊顯示toast消息
promptAction.showToast({
message: '最多限五人',
duration: 2000,
bottom: '375lpx'
});
} catch (error) {
// 忽略錯(cuò)誤
}
return;
}
// 更新數(shù)組中對(duì)應(yīng)項(xiàng)的狀態(tài)
this.arr[index] = new ItemData(item.name, item.isSelect);
})
// 設(shè)置行組件的邊距
.margin({ left: '40lpx', top: '10lpx' })
})
} // 設(shè)置Column組件的整體樣式
.width('100%')
.height('100%')
.backgroundColor("#FFF2F3F2")
.justifyContent(FlexAlign.Start)
.alignItems(HorizontalAlign.Start);
}
}
審核編輯 黃宇
鴻蒙OS開(kāi)發(fā) | 更多內(nèi)容↓點(diǎn)擊 | HarmonyOS與OpenHarmony技術(shù) |
---|---|---|
鴻蒙技術(shù)文檔 | 開(kāi)發(fā)知識(shí)更新庫(kù)gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md 在這。 | 或+mau123789學(xué)習(xí),是v喔 |
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2302瀏覽量
42689 -
鴻蒙OS
+關(guān)注
關(guān)注
0文章
188瀏覽量
4359
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
HDC2024華為發(fā)布鴻蒙原生智能:AI與OS深度融合,開(kāi)啟全新的AI時(shí)代
6月21日,華為開(kāi)發(fā)者大會(huì)2024(HDC.2024)召開(kāi)。 HarmonyOS NEXT將AI與OS深度融合,構(gòu)筑全新鴻蒙原生智能框架。大會(huì)現(xiàn)場(chǎng),華為常務(wù)董事、終端BG董事長(zhǎng)、智能汽車(chē)解決方案BU
鴻蒙OS開(kāi)發(fā):【一次開(kāi)發(fā),多端部署】(多設(shè)備自適應(yīng)能力)實(shí)例
此Demo展示在JS中的多設(shè)備自適應(yīng)能力,包括資源限定詞、原子布局和響應(yīng)式布局。
鴻蒙OS崛起,鴻蒙應(yīng)用開(kāi)發(fā)工程師成市場(chǎng)新寵
應(yīng)用的形態(tài)也在發(fā)生著翻天覆地的變化。作為全球領(lǐng)先的移動(dòng)操作系統(tǒng)和智能終端制造商,華為公司自主研發(fā)的鴻蒙OS應(yīng)運(yùn)而生,致力于構(gòu)建一個(gè)統(tǒng)一的分布式操作系統(tǒng),為各行各業(yè)的應(yīng)用開(kāi)發(fā)帶來(lái)全新的可能性。
一、
發(fā)表于 04-29 17:32
鴻蒙OS開(kāi)發(fā)實(shí)例:【Native C++】
使用DevEco Studio創(chuàng)建一個(gè)Native C++應(yīng)用。應(yīng)用采用Native C++模板,實(shí)現(xiàn)使用NAPI調(diào)用C標(biāo)準(zhǔn)庫(kù)的功能。使用C標(biāo)準(zhǔn)庫(kù)hypot接口計(jì)算兩個(gè)給定數(shù)平方和的平方根。在輸入框中輸入兩個(gè)數(shù)字,點(diǎn)擊計(jì)算結(jié)果按鈕顯示計(jì)算后的數(shù)值。
鴻蒙OS開(kāi)發(fā)實(shí)例:【HarmonyHttpClient】網(wǎng)絡(luò)框架
鴻蒙上使用的Http網(wǎng)絡(luò)框架,里面包含純Java實(shí)現(xiàn)的HttpNet,類(lèi)似okhttp使用,支持同步和異步兩種請(qǐng)求方式;還有鴻蒙版retrofit,和Android版Retrofit相似的使用,解放雙手般優(yōu)雅使用注解、自動(dòng)解析json
鴻蒙OS開(kāi)發(fā)學(xué)習(xí):【尺寸適配實(shí)現(xiàn)】
在鴻蒙開(kāi)發(fā)中,尺寸適配是一個(gè)重要的概念,它可以幫助我們?cè)诓煌聊怀叽绲脑O(shè)備上正確顯示和布局我們的應(yīng)用程序。本文將介紹如何在鴻蒙開(kāi)發(fā)中實(shí)現(xiàn)尺寸適配的方法。
鴻蒙OS南向開(kāi)發(fā)實(shí)戰(zhàn):【智能電子牌】
本Demo是基于hi3516dv300開(kāi)發(fā)板,使用開(kāi)源鴻蒙OpenHarmony 開(kāi)發(fā)的應(yīng)用。通過(guò)該應(yīng)用不僅可以查看時(shí)間、日期以及對(duì)應(yīng)的室內(nèi)外溫濕度、空氣質(zhì)量等,還可以查看當(dāng)日的行程,
鴻蒙OS開(kāi)發(fā)實(shí)例:【組件化模式】
組件化一直是移動(dòng)端比較流行的開(kāi)發(fā)方式,有著編譯運(yùn)行快,業(yè)務(wù)邏輯分明,任務(wù)劃分清晰等優(yōu)點(diǎn),針對(duì)Android端的組件化;與Android端的組件化相比,HarmonyOS的組件化可以說(shuō)實(shí)現(xiàn)起來(lái)就頗費(fèi)
鴻蒙OS開(kāi)發(fā)實(shí)例:【應(yīng)用事件打點(diǎn)】
傳統(tǒng)的日志系統(tǒng)里匯聚了整個(gè)設(shè)備上所有程序運(yùn)行的過(guò)程流水日志,難以識(shí)別其中的關(guān)鍵信息。因此,應(yīng)用開(kāi)發(fā)者需要一種數(shù)據(jù)打點(diǎn)機(jī)制,用來(lái)評(píng)估如訪問(wèn)數(shù)、日活、用戶操作習(xí)慣以及影響用戶使用的關(guān)鍵因素等關(guān)鍵信息
鴻蒙實(shí)戰(zhàn)項(xiàng)目開(kāi)發(fā):【短信服務(wù)】
、ohos.permission.GET_TELEPHONY_STATE為system_basic級(jí)別(相關(guān)權(quán)限級(jí)別可通過(guò)[權(quán)限定義列表] 查看),需要手動(dòng)配置對(duì)應(yīng)級(jí)別的權(quán)限簽名(具體操作可查看自動(dòng)化簽名方案;
本示例為預(yù)置
發(fā)表于 03-03 21:29
鴻蒙系統(tǒng)優(yōu)缺點(diǎn),能否作為開(kāi)發(fā)者選擇
星河版已經(jīng)是純血鴻蒙,但是它的發(fā)展一些周期。生態(tài)圈的建立難度大,各大廠商加入鴻蒙原生開(kāi)發(fā)需要時(shí)間累積。
鴻蒙開(kāi)發(fā)人才空缺,由于
發(fā)表于 02-16 21:00
鴻蒙OS和開(kāi)源鴻蒙什么關(guān)系?
內(nèi)核,其他功能都以模塊的形式存在。 ? ? 華為用的是鴻蒙OS 我們都知道,華為手機(jī)的鴻蒙OS是可以運(yùn)行安卓軟件的,是因?yàn)橄到y(tǒng)中有安卓兼容層,所以可以簡(jiǎn)單這么理解:
免費(fèi)學(xué)習(xí)鴻蒙(HarmonyOS)開(kāi)發(fā),一些地址分享
國(guó)內(nèi)一流高校。通過(guò)鴻蒙班的設(shè)立,高校可以為學(xué)生提供專業(yè)的鴻蒙OS學(xué)習(xí)環(huán)境和豐富的實(shí)踐機(jī)會(huì),培養(yǎng)出更多的鴻蒙開(kāi)發(fā)人才,為
發(fā)表于 01-12 20:48
評(píng)論