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

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

構建第一個頁面

  1. 使用文本組件
    工程同步完成后,在 Project 窗口,點擊 entry > src > main > ets > pages ,打開 Index.ets 文件,可以看到頁面由 Row 、 Column 、 Text 組件組成。 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 配置才可以在設備上正常顯示, @Component 修飾符表示 Index 是一個組件, @State 是一個狀態(tài)標識符,當它修飾的變量值改變時ArkUI開發(fā)框架會調用 build() 方法進行頁面的刷新。

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

    @Entry @Component struct Index {
    
      @State count: number = 0;                      // 狀態(tài)數據
    
      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()方法回調
            })
            .margin(50)
        }
        .width('100%')
        .height('100%')
      }
    }
    
  3. 打開預覽器
    在編輯窗口右上角的側邊工具欄,點擊 Previewer ,然后點擊頁面加號按鈕,頁面運行效果如下圖所示:
    2_1_3_1
    學習文檔參考:[docs.qq.com/doc/DUmN4VVhBd3NxdExK]

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

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

頁面的構建流程

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

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

以上頁面整體構建流程如下圖所示:

2_1_4

小結

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

審核編輯 黃宇

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

    關注

    32

    文章

    2318

    瀏覽量

    98267
  • 鴻蒙
    +關注

    關注

    60

    文章

    2977

    瀏覽量

    45999
  • OpenHarmony
    +關注

    關注

    33

    文章

    3960

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    國產自研高性價比頻率通用計數器來嘍 #頻率計# 頻率計數器#

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

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

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

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

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

    國產頻率計數器vs進口頻率計數器

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

    頻率計數器/定時 時間間隔計數器的應用領域和范圍的深度解析 頻率計數器模塊

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

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

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

    Texas Instruments CD74HC4040/CD74HCT4040 12級二進制計數器數據手冊

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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