精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

鴻蒙ArkUI開發實戰:制作一個【簡單計數器】

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 是一個狀態標識符,當它修飾的變量值改變時ArkUI開發框架會調用 build() 方法進行頁面的刷新。

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

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

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

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

頁面的構建流程

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

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

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

2_1_4

小結

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

審核編輯 黃宇

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

    關注

    32

    文章

    2241

    瀏覽量

    93969
  • 鴻蒙
    +關注

    關注

    56

    文章

    2267

    瀏覽量

    42481
  • OpenHarmony
    +關注

    關注

    25

    文章

    3548

    瀏覽量

    15734
收藏 人收藏

    評論

    相關推薦

    計數器同步和異步怎么判斷

    計數器同步和異步是數字電路設計中的重要概念,它們在很多應用場景中都扮演著關鍵角色。 計數器概述
    的頭像 發表于 07-23 11:14 ?298次閱讀

    用級聯觸發制作簡單計數器,輸出有延遲是怎么回事?

    如下圖所示,我正在嘗試用級聯觸發制作簡單計數器,以達到訓練目的: 第
    發表于 05-29 07:25

    同步計數器和異步計數器的區別

    在數字電子領域中,計數器種用于統計脈沖信號數量的重要設備。其中,同步計數器和異步計數器是兩種不同類型的計數器,它們在工作原理、特性以及應
    的頭像 發表于 05-24 14:36 ?2492次閱讀

    鴻蒙ArkUI-X跨平臺開發:【 編寫第一個ArkUI-X應用】

    通過構建簡單ArkUI頁面跳轉示例,快速了解資源創建引用,路由代碼編寫和UI布局編寫等應用開發流程。
    的頭像 發表于 05-21 17:36 ?464次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>-X跨平臺<b class='flag-5'>開發</b>:【 編寫第<b class='flag-5'>一個</b><b class='flag-5'>ArkUI</b>-X應用】

    簡單認識脈沖計數器

    在數字電路和電子測量領域中,脈沖計數器作為種基本而重要的工具,其應用十分廣泛。脈沖計數器,也被稱為脈沖頻率計或脈沖數計,主要用于統計和測量輸入脈沖信號的頻率或數量。本文將詳細闡述脈沖計數器
    的頭像 發表于 05-15 17:08 ?1234次閱讀

    鴻蒙ArkUI:【從代碼到UI顯示的整體渲染流程】

    方舟開發框架(簡稱ArkUI)是鴻蒙開發的UI框架,提供如下兩種開發范式,我們 **只學聲明式開發
    的頭像 發表于 05-13 16:06 ?592次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b>:【從代碼到UI顯示的整體渲染流程】

    鴻蒙開發學習:初探【ArkUI-X】

    **簡單來說,ArkTS + ArkUI-X 對標的框架為 flutter,次代碼,編譯為 native 全平臺運行**
    的頭像 發表于 05-13 15:58 ?801次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>學習:初探【<b class='flag-5'>ArkUI</b>-X】

    鴻蒙ArkUI開發實戰:eTS版【笑話app】

    制作款笑話app,使用ArkUI。
    的頭像 發表于 03-25 16:04 ?343次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發</b><b class='flag-5'>實戰</b>:eTS版【笑話app】

    鴻蒙實戰項目開發:【短信服務】

    環境搭建 ? 《鴻蒙開發基礎》 ArkTS語言 安裝DevEco Studio 運用你的第一個ArkTS應用 ArkUI聲明式UI開發 .…
    發表于 03-03 21:29

    計數器怎么用 計數器的作用有哪些

    計數器種被廣泛應用于各個領域的實用工具,在我們的日常生活中隨處可見。無論是進行時間統計,協助工作任務的完成,還是用于科學研究和編程技術,在各個領域都起到了重要的作用。本文將詳細介紹計數器
    的頭像 發表于 02-03 10:04 ?4187次閱讀

    鴻蒙ArkUI開發-Tabs組件的使用

    鴻蒙ArkUI開發-Tabs組件的使用
    的頭像 發表于 01-19 16:01 ?1406次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI</b><b class='flag-5'>開發</b>-Tabs組件的使用

    同步計數器和異步計數器各有什么特點

    : 同步計數器種同步機制,用于控制多個線程的順序執行。它們使用共享的計數器,并在計數器達到特定值時觸發線程的執行。下面是同步計數器的幾個
    的頭像 發表于 12-15 10:49 ?1572次閱讀

    4017計數器的工作原理

    中,我們將詳細介紹4017計數器的工作原理。 4017計數器的內部結構非常復雜,但核心的原理相對簡單。它包含時鐘輸入引腳(CLK),
    的頭像 發表于 12-15 09:24 ?3398次閱讀

    同步計數器和異步計數器的區別主要在哪里

    、應用等方面。 、工作原理 同步計數器:同步計數器的工作原理是,在時鐘信號的驅動下,對輸入的二進制數進行加法或減法運算,從而得到計數值。在每個時鐘周期內,同步
    的頭像 發表于 12-13 14:54 ?8008次閱讀

    計數器電路原理解析

    在學習嵌入式系統的過程中,定時有關內容的學習是必不可少的環節。定時定時功能的實現,最主要的還是靠其內部的計數器。那么,
    的頭像 發表于 09-25 14:18 ?2531次閱讀
    <b class='flag-5'>計數器</b>電路原理解析