91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ArkUI開發(fā)實戰(zhàn):制作一個【簡單計數(shù)器】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-08 18:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

構(gòu)建第一個頁面

  1. 使用文本組件
    工程同步完成后,在 Project 窗口,點擊 entry > src > main > ets > pages ,打開 Index.ets 文件,可以看到頁面由 RowColumnText 組件組成。 index.ets 文件的示例如下:

    @Entry @Component struct Index {
    
      @State message: string = 'Hello World'
    
      build() {
        Row() {
          Column() {
            Text(this.message)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
          }
          .width('100%')
        }
        .height('100%')
      }
    }
    

    @Entry 修飾符表示一個頁面的入口,它需要在 main_pages.json 配置才可以在設(shè)備上正常顯示, @Component 修飾符表示 Index 是一個組件, @State 是一個狀態(tài)標識符,當它修飾的變量值改變時ArkUI開發(fā)框架會調(diào)用 build() 方法進行頁面的刷新。

  2. 添加按鈕
    在默認頁面基礎(chǔ)上,我們添加一個 Button 組件,作為按鈕接受用戶點擊的動作,從而實現(xiàn)計數(shù)器自增操作。 " index.ets " 文件的示例如下:

    @Entry @Component struct Index {
    
      @State count: number = 0;                      // 狀態(tài)數(shù)據(jù)
    
      build() {
        Stack({alignContent: Alignment.BottomEnd}) { // 堆疊式布局
          Text(this.count.toString())                // 顯示文本
            .fontSize(50)                            // 文字大小
            .margin(50)                              // 外邊距
            .size({width: '100%', height: '100%'})   // 控件大小
    
          Button('+')                                // 顯示一個+按鈕
            .size({width: 80, height: 80})           // 按鈕大小
            .fontSize(50)                            // 按鈕文字大小
            .onClick(() = > {                         // 按鈕點擊事件
              this.count++;                          // count累加,觸發(fā)build()方法回調(diào)
            })
            .margin(50)
        }
        .width('100%')
        .height('100%')
      }
    }
    
  3. 打開預(yù)覽器
    在編輯窗口右上角的側(cè)邊工具欄,點擊 Previewer ,然后點擊頁面加號按鈕,頁面運行效果如下圖所示:
    2_1_3_1
    學習文檔參考:[docs.qq.com/doc/DUmN4VVhBd3NxdExK]

搜狗高速瀏覽器截圖20240326151547.png

根據(jù)運行截圖,我們點擊了加號按鈕,觸發(fā)按鈕的 onClick 事件回調(diào),由于在回調(diào)里執(zhí)行了 count++ 操作導(dǎo)致了 count 的值發(fā)生了改變,又因為 count 被 @State 修飾符修飾,所以ArkUI開發(fā)框架就會重新調(diào)用 build() 方法更新各組件的屬性值, Text 組件會更新 count 的值,然后頁面刷新,計數(shù)器的功能就實現(xiàn)了。

頁面的構(gòu)建流程

讀者可能會對上述示例的頁面刷新過程感興趣,筆者簡單介紹一下,上述示例的頁面刷新過程可以分為兩個過程,一個是頁面渲染完畢沒有點擊按鈕過程,另一個是點擊點擊按鈕后頁面數(shù)據(jù)變化過程,筆者分別介紹一下這兩個過程:

  1. 頁面初次顯示過程
    ①、index.ets 源代碼通過編譯工具鏈編譯為帶有類型標志的目標文件,同時也包含了如何創(chuàng)建UI結(jié)構(gòu)信息的指令流。
    ②、通過跨語言調(diào)用并生成了 C++ 層面的 Component 樹(UI描述層)。
    ③、通過 Component 樹進一步生成 Element 樹。 Element 是 Component 的實例,表示一個具體的組件節(jié)點,它形成的 Element 樹負責維持界面在整個運行時的樹形結(jié)構(gòu),方便計算更新時的局部更新算法等。
    ④、對于每個可顯示的 Element 都會為其創(chuàng)建對應(yīng)的 RenderNode 。 RenderNode 負責一個節(jié)點的顯示信息,它形成的 Render 樹維護著整個界面渲染需要用到的信息,包括位置、大小、繪制命令等。后續(xù)的布局、繪制都是在 Render 樹上進行的。
    ⑤、實現(xiàn)真正的渲染并顯示繪制結(jié)果。
  2. 點擊按鈕顯示過程
    ⑥、點擊屏幕,事件傳遞到組件上,組件的 onClick 事件方法被觸發(fā)執(zhí)行。
    ⑦、由于 onClick 事件方法中 @State 修飾的變量值改變了,相應(yīng)的 getter / setting 函數(shù)會被觸發(fā)。
    ⑧、狀態(tài)管理模塊定位出與之關(guān)聯(lián)的UI組件。
    ⑨、狀態(tài)管理模塊更新相應(yīng)的 Element 樹的信息。
    ⑩、狀態(tài)管理模塊更新相應(yīng)的 RenderNode 樹的渲染信息。
    ?、刷新界面并顯示繪制結(jié)果。

以上頁面整體構(gòu)建流程如下圖所示:

2_1_4

小結(jié)

通過簡單計數(shù)器示例,讀者先了解一下 OpenHarmony 應(yīng)用的組件、頁面布局,點擊事件以及 @State 修飾符的作用,最后給簡單介紹了一下 OpenHarmony 的頁面構(gòu)建流程。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2318

    瀏覽量

    98268
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2977

    瀏覽量

    46000
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3960

    瀏覽量

    21169
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    雷擊計數(shù)器詳解:原理、種類、優(yōu)勢與安裝部署

    雷擊計數(shù)器是防雷系統(tǒng)中關(guān)鍵監(jiān)測設(shè)備,主要安裝于建筑物、輸電線路、通信塔或工業(yè)設(shè)施的引下線與接地系統(tǒng)之間,用于記錄雷電流沖擊次數(shù)。它通過感應(yīng)雷擊時導(dǎo)線中流過的瞬態(tài)大電流(通常波形為10/350μs
    的頭像 發(fā)表于 03-11 09:49 ?49次閱讀
    雷擊<b class='flag-5'>計數(shù)器</b>詳解:原理、種類、優(yōu)勢與安裝部署

    國產(chǎn)自研高性價比頻率通用計數(shù)器來嘍 #頻率計# 頻率計數(shù)器#

    計數(shù)器
    知道點啥
    發(fā)布于 :2026年01月07日 17:01:27

    數(shù)字頻率計數(shù)器在計量檢測中的重要性 頻率計數(shù)器 高精度通用計數(shù)器

    SYN5635型數(shù)字頻率計數(shù)器是計量檢測領(lǐng)域的核心基礎(chǔ)儀器,其核心價值在于提供高精度頻率與時間基準、保障量值統(tǒng)、支撐全鏈路質(zhì)量控制與合規(guī)溯源,是電子、通信、航天等領(lǐng)域測量可靠性的關(guān)鍵保障。
    的頭像 發(fā)表于 01-05 17:53 ?1398次閱讀
    數(shù)字頻率<b class='flag-5'>計數(shù)器</b>在計量檢測中的重要性 頻率<b class='flag-5'>計數(shù)器</b> 高精度通用<b class='flag-5'>計數(shù)器</b>

    M4-R1 開源鴻蒙(OpenHarmory)開發(fā)板丨串口調(diào)試助手實戰(zhàn)案例

    前言開源鴻蒙(OpenHarmony)作為國產(chǎn)分布式操作系統(tǒng),正在為智能終端與物聯(lián)網(wǎng)設(shè)備構(gòu)建統(tǒng)的開放生態(tài)。它以開源共建的方式,為多設(shè)備協(xié)同與產(chǎn)業(yè)創(chuàng)新提供堅實基礎(chǔ)。M4-R1開發(fā)板憑借完善的軟硬件
    的頭像 發(fā)表于 12-31 11:16 ?8770次閱讀
    M4-R1 開源<b class='flag-5'>鴻蒙</b>(OpenHarmory)<b class='flag-5'>開發(fā)</b>板丨串口調(diào)試助手<b class='flag-5'>實戰(zhàn)</b>案例

    國產(chǎn)頻率計數(shù)器vs進口頻率計數(shù)器

    計數(shù)器
    西安同步電子科技有限公司
    發(fā)布于 :2025年11月04日 17:55:01

    頻率計數(shù)器/定時 時間間隔計數(shù)器的應(yīng)用領(lǐng)域和范圍的深度解析 頻率計數(shù)器模塊

    穩(wěn)定性的核心優(yōu)勢,成為解決各時間測量需求的優(yōu)選方案。 、集成化高精度時間測量單元 SYN5620A是款基于先進計時技術(shù)與數(shù)字信號處理算法開發(fā)的時間間隔計數(shù)器模塊,專為需要精準測量兩
    的頭像 發(fā)表于 10-30 11:22 ?626次閱讀
    頻率<b class='flag-5'>計數(shù)器</b>/定時<b class='flag-5'>器</b> 時間間隔<b class='flag-5'>計數(shù)器</b>的應(yīng)用領(lǐng)域和范圍的深度解析 頻率<b class='flag-5'>計數(shù)器</b>模塊

    雷擊計數(shù)器的種類和綜合選型部署解決方案

    、雷擊計數(shù)器的定義與作用 雷擊計數(shù)器(Lightning Counter,又稱雷電計數(shù)器、雷擊記錄儀)是安裝在避雷針、接閃桿、SPD(浪涌保護
    的頭像 發(fā)表于 09-11 15:28 ?932次閱讀
    雷擊<b class='flag-5'>計數(shù)器</b>的種類和綜合選型部署解決方案

    Texas Instruments CD74HC4040/CD74HCT4040 12級二進制計數(shù)器數(shù)據(jù)手冊

    Texas Instruments CD74HC4040/CD74HCT4040 12級二進制計數(shù)器是控制觸發(fā)的高速計數(shù)器級。在每個輸入脈沖的負時鐘轉(zhuǎn)換時,級的狀態(tài)前進
    的頭像 發(fā)表于 07-03 11:05 ?1008次閱讀
    Texas Instruments CD74HC4040/CD74HCT4040 12級二進制<b class='flag-5'>計數(shù)器</b>數(shù)據(jù)手冊

    鴻蒙5開發(fā)寶藏案例分享---一多開發(fā)實例(音樂)

    各位開發(fā)者小伙伴們好呀!今天咱們來點硬核干貨!最近在鴻蒙文檔中心挖到座“金礦”——官方竟然暗藏了100+實戰(zhàn)案例,從分布式架構(gòu)到交互動效優(yōu)化應(yīng)有盡有!這些案例不僅藏著華為工程師的私房
    的頭像 發(fā)表于 06-30 11:54 ?790次閱讀

    【HarmonyOS next】ArkUI-X休閑益智兒童拼圖【進階】

    項目,我們驗證了ArkUI-X框架的強大跨端能力。無論是華為的鴻蒙系統(tǒng),還是iOS平臺,都能保持90%以上代碼復(fù)用率,真正實現(xiàn)了\"開發(fā),多端部署\"的理想狀態(tài)。期待
    發(fā)表于 06-28 21:41

    ArkUI-X跨平臺技術(shù)落地-華為運動健康()

    開發(fā)工作量以及保證體驗致性,對于運動健康A(chǔ)pp而言,顯得尤為重要。作為鴻蒙NEXT系統(tǒng)生態(tài)中的重要員,ArkUI-X框架是我們跨平臺技術(shù)
    發(fā)表于 06-18 22:53

    鴻蒙5開發(fā)寶藏案例分享---性能體驗設(shè)計

    ?** 鴻蒙性能優(yōu)化寶藏指南:讓你的應(yīng)用絲滑如飛!** 大家好呀!最近在HarmonyOS文檔里挖到性能優(yōu)化的\"黃金礦脈\"——官方其實藏了超多流暢性設(shè)計的實戰(zhàn)案例!但很多
    發(fā)表于 06-12 16:45

    雷電(雷擊)計數(shù)器的原理、作用及行業(yè)應(yīng)用解決方案

    安全事故。雷電(雷擊)計數(shù)器作為防雷系統(tǒng)中的重要組成部分,扮演著“記錄雷擊事件、輔助安全運維”的關(guān)鍵角色,已經(jīng)成為智能防雷系統(tǒng)中不可或缺的環(huán)。 二、雷電(雷擊)計數(shù)器的原理 1. 工作原理 雷電
    的頭像 發(fā)表于 06-12 15:14 ?1130次閱讀
    雷電(雷擊)<b class='flag-5'>計數(shù)器</b>的原理、作用及行業(yè)應(yīng)用解決方案

    鴻蒙5開發(fā)寶藏案例分享---一多開發(fā)實例(地圖導(dǎo)航)

    ? 鴻蒙開發(fā)隱藏寶藏大公開!手把手教你玩轉(zhuǎn)\"多\"地圖導(dǎo)航案例 ? 大家好呀!我是你們的老朋友,今天要給大家扒鴻蒙官方文檔里那些\"
    發(fā)表于 06-03 16:17

    鴻蒙5開發(fā)寶藏案例分享---多分欄開發(fā)實踐

    ?【HarmonyOS開發(fā)者的寶藏指南】次搞定多設(shè)備分欄布局,原來還能這么玩! 大家好呀!今天在鴻蒙社區(qū)挖到超實用的大寶藏——原來官方
    發(fā)表于 06-03 12:03