HarmonyOS學習4 --- 創建一個頁面

1、聲明式UI語法

?

@Entry
@Component
struct My_page {@State isLogin: boolean = falsebuild() {Row() {Image(this.isLogin ? $r('app.media.icon_leon') : $r('app.media.icon')).height(60).width(60).onClick(() => {this.isLogin = !this.isLogin})Text(this.isLogin ? $r('app.string.string_to_unlogin') : $r('app.string.string_to_unlogin')).fontWeight(FontWeight.Bold).fontSize(20).fontColor(this.isLogin ? Color.Orange : Color.Black).margin({ "top": "0.00vp", "right": "0.00vp", "bottom": "0.00vp", "left": "10.00vp" })}.width('100%').margin({ "top": "20.00vp", "right": "10.00vp", "bottom": "0.00vp", "left": "10.00vp" })}
}


2、自定義組件

2.1、自定義組件生命周期

注:頁面,即由 @Entry 修飾的自定義組件

注:自定義組件,即由 @Component 修飾的UI單元

1)aboutToAppear()

2)onPageShow()

注:僅在被 @Entry 修飾的組件中生效

3)onBackPress()

注:僅在被 @Entry 修飾的組件中生效

4)onPageHide()

注:僅在被 @Entry 修飾的組件中生效

5)aboutToDisappear()

2.2、案例

注:@State 可建立起視圖與狀態之間的綁定關系

  • ToItem
@Component
export default struct ToItem {public message?: string@State isComplete: boolean = false@Builder leonSelectLabel(icon: Resource) {Image(icon).objectFit(ImageFit.Contain).width('28vp').width('28vp').margin('20vp')}build() {Row() {if (this.isComplete) {this.leonSelectLabel($r('app.media.ic_ok'))} else {this.leonSelectLabel($r('app.media.ic_default'))}Text(this.message??'無').fontSize('20fp').fontWeight(FontWeight.Bold).decoration({ type: this.isComplete ? TextDecorationType.LineThrough : TextDecorationType.None }).fontColor(this.isComplete ? Color.Gray : Color.Black)}.width('100%').borderRadius(6).backgroundColor(Color.White).onClick(() => {this.isComplete = !this.isComplete})}
}

  • ToDoListPage
import ToDoItem from '../view/ToDoItem'
import DataModel from '../viewmodel/DataModel'@Entry
@Component
struct ToDoListPage {private todoLists: string[]aboutToAppear() {this.todoLists = DataModel.getData()}build() {Column({ space: 16 }) {Text("待辦任務列表").fontWeight(FontWeight.Bold).fontSize(30).fontColor(Color.Blue).margin({ top: 10, left: 10 })ForEach(this.todoLists, (item: string) => {ToDoItem({ message: item }).width('90%')}, (item: string) => JSON.stringify(item))}.width('100%').height('100%').backgroundColor($r('app.color.page_background'))}
}

  • DataModel
export class DataModel {public tasks: string[] = ["早起晨練", "準備早飯", "學習編程", "閱讀名著", "自由活動"]getData() {return this.tasks}
}export default new DataModel()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913627.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913627.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913627.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java EE】Spring MVC 的使用

1. 路由映射:RequestMapping:當用戶訪問某個 URL 時,該注解會根據 URL 的路徑映射到具體的程序中對應的類或方法(路由映射)。修飾方法時,路徑為類路徑 方法路徑。默認情況下同時支持 GET 和 POST&#xff…

pip 安裝默認切換到國內鏡像(清華園,阿里云等)

國內Python包鏡像地址如下: 清華:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:https://mirrors.aliyun.com/pypi/simple/中國科技大學:https://pypi.mirrors.ustc.edu.cn/simple/華為云:https://repo.huaweiclou…

AI agent 學習

參考: AI搜索DeepResearch?_大模型 deepsearch 深度搜索-CSDN博客 Agent是以大語言模型為大腦驅動的系統,具備自主理解、感知、規劃、記憶和使用工具的能力,能夠自動化執行和完成復雜任務。 自主性和自適應,是判斷一款…

【PTA數據結構 | C語言版】求單鏈表list中的元素個數,即表長

本專欄持續輸出數據結構題目集,歡迎訂閱。 文章目錄題目代碼題目 請編寫程序,將 n 個整數順次插入一個初始為空的單鏈表的表頭。最后輸出單鏈表的表長。 本題旨在訓練學習者熟悉單鏈表的基本操作,不建議直接輸出 n。 輸入格式:…

玩轉Docker | 使用Docker部署HomeBox家庭庫存管理工具

玩轉Docker | 使用Docker部署HomeBox家庭庫存管理工具 前言一、HomeBox介紹Homebox簡介主要特點主要使用場景二、系統要求環境要求環境檢查Docker版本檢查檢查操作系統版本三、部署HomeBox服務下載HomeBox鏡像編輯部署文件創建容器檢查容器狀態檢查服務端口安全設置四、訪問Hom…

QT中的常用控件-QWidget的enable屬性

QT中的常用控件-QWidget的enable屬性 enable描述了一個控件是否處于“可用”狀態 與之相對應的概念是“禁用”,禁用是該控件不能接受任何用戶的輸入事件,并且外觀上往往是灰色的 如果一個Widget被禁用,則該Widget的子元素也被禁用API說明IsEn…

【數據結構】復雜度分析

目錄 一、算法 1.基本概念 2.描述方法 3.算法效率 二、算法的時間復雜度 三、算法的空間復雜度 一、算法 1.基本概念 通俗的講,算法是解決問題的方法,比如在現實生活中一道菜譜,一個安裝輪椅的操作指南等。 嚴格的說,算法…

推薦系統基礎 --ShusenWang

學習b站up主的ShusenWang的推薦系統筆記 指標 任何系統/算法/模型都需要評估,對于推薦系統的指標有消費指標和北極星指標,消費指標是衡量用戶對產品的使用情況,使用頻率廣度和深度,用于了解用戶的使用習慣,北極星指標是…

linux wsl2 docker 鏡像復用快速方法

GitHub項目中的devcontainer.json、Dockerfile構建了一個A項目的鏡像環境,現在我有一個文件夾,文件夾中只有一個b.py文件,此時我希望使用A項目的環境,如何實現?注意: 建議使用下面的方法2 解決方案&#xf…

(生活比喻-圖文并茂)http2.0和http3.0的隊頭阻塞,http2.0應用層解決,TCP層存在,3.0就是徹底解決,到底怎么理解區別???

說明一下: http屬于應用層協議,TCP和udp屬于傳輸層協議 文章目錄階段一:HTTP/1.1 的情況(單車道收費站,一次過一輛)階段二:HTTP/2 的情況(多車道收費站,但出口只有一條路…

ARM環境openEuler2203sp4上部署19c單機問題-持續更新

問題01、報錯如下orcl:/home/oracledb15> export CV_ASSUME_DISTIDRHEL8 orcl:/home/oracledb15> $ORACLE_HOME/runInstaller -applyPSU /soft/37642901 Exception in thread "main" java.lang.UnsatisfiedLinkError: /u01/app/oracle/product/19.0.0/db_1/oui…

php成績分析系統單科分數分布分析202507

提交二維數據表,識別成績科目顯示科目選擇,選擇科目后顯示樣本數,平均分,最高分,最低分,中位數,柱狀圖圖表顯示各分值人數分布,表格顯示統計數據。 技術:html5css3ajaxphp 原生代碼實現。 效果圖: 下載: …

Redis Cluster 與 Sentinel 筆記

目錄 Redis 集群(Cluster)概述 Cluster 的工作原理 Cluster 配置與部署 Cluster 常見問題與限制 Redis Sentinel(哨兵)機制概述 Sentinel 的工作機制 Sentinel 配置與部署 Sentinel vs Cluster 總結 Redis 集群&#xff…

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題 除了前面提到的數據集,還有一些用于評估視覺推理等能力的經典數據集。目前關于LLM視覺領域經典提示詞方面的名校或大公司論文較少,以下是相關科學問題、數據集及部分相關論文介紹: 科學問題 視覺推理…

Node.js worker_threads:并發 vs 并行

一、核心結論 Node.js 的 worker_threads 模塊實現的是 并行計算 ,而非傳統意義上的“并發”。其通過操作系統級線程實現多核 CPU 的并行執行,同時保留 Node.js 單線程事件循環的并發模型。 二、關鍵概念解析 1. 并發(Concurrency&#xff09…

gloo 多卡訓練

我們遇到了分布式訓練中的通信超時問題(Connection closed by peer)。根據錯誤信息,問題發生在梯度同步的屏障(barrier)操作時。以下是針對此問題的優化措施和代碼修改: 優化措施: 增強通信穩…

【Docker】在銀河麒麟ARM環境下離線安裝docker

1、前言 采用離線安裝的方式。 關于離線安裝的方式官網有介紹,但是說的很簡單,網址:Binaries | Docker Docs 官網介紹的有幾種主流linux系統的安裝方式,但是沒有kylin的,所以在此記錄一下。 在安裝過程中也遇到了些…

AUTOSAR進階圖解==>AUTOSAR_SWS_SOMEIPTransformer

AUTOSAR SOME/IP 轉換器規范詳解 基于AUTOSAR標準的SOME/IP轉換器協議解析與實現指南目錄 1. 介紹與功能概述2. SOME/IP架構 2.1 SOME/IP轉換器架構2.2 組件解釋2.3 層級說明 3. SOME/IP通信流程 3.1 客戶端/服務器通信序列3.2 通信流程解釋 4. SOME/IP消息結構 4.1 消息結構類…

Python 機器學習核心入門與實戰進階 Day 5 - 模型調參與交叉驗證技巧(GridSearchCV、KFold)

? 今日目標 理解模型調參的重要性(避免欠擬合/過擬合)掌握 GridSearchCV 的使用方法學習 K 折交叉驗證的基本流程與意義對比不同參數組合的表現使用 Pipeline 簡化流程(進階)📘 一、調參思路方法描述Grid Search窮舉所…

Python打卡:Day47

復習日 浙大疏錦行