在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

  1. 使用文本組件
    工程同步完成后,在 Project 窗口,點(diǎn)擊 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)標(biāo)識符,當(dāng)它修飾的變量值改變時ArkUI開發(fā)框架會調(diào)用 build() 方法進(jìn)行頁面的刷新。

  2. 添加按鈕
    在默認(rèn)頁面基礎(chǔ)上,我們添加一個 Button 組件,作為按鈕接受用戶點(diǎn)擊的動作,從而實(shí)現(xiàn)計(jì)數(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(() = > {                         // 按鈕點(diǎn)擊事件
              this.count++;                          // count累加,觸發(fā)build()方法回調(diào)
            })
            .margin(50)
        }
        .width('100%')
        .height('100%')
      }
    }
    
  3. 打開預(yù)覽器
    在編輯窗口右上角的側(cè)邊工具欄,點(diǎn)擊 Previewer ,然后點(diǎn)擊頁面加號按鈕,頁面運(yùn)行效果如下圖所示:
    2_1_3_1
    學(xué)習(xí)文檔參考:[docs.qq.com/doc/DUmN4VVhBd3NxdExK]

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

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

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

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

  1. 頁面初次顯示過程
    ①、index.ets 源代碼通過編譯工具鏈編譯為帶有類型標(biāo)志的目標(biāo)文件,同時也包含了如何創(chuàng)建UI結(jié)構(gòu)信息的指令流。
    ②、通過跨語言調(diào)用并生成了 C++ 層面的 Component 樹(UI描述層)。
    ③、通過 Component 樹進(jìn)一步生成 Element 樹。 Element 是 Component 的實(shí)例,表示一個具體的組件節(jié)點(diǎn),它形成的 Element 樹負(fù)責(zé)維持界面在整個運(yùn)行時的樹形結(jié)構(gòu),方便計(jì)算更新時的局部更新算法等。
    ④、對于每個可顯示的 Element 都會為其創(chuàng)建對應(yīng)的 RenderNode 。 RenderNode 負(fù)責(zé)一個節(jié)點(diǎn)的顯示信息,它形成的 Render 樹維護(hù)著整個界面渲染需要用到的信息,包括位置、大小、繪制命令等。后續(xù)的布局、繪制都是在 Render 樹上進(jìn)行的。
    ⑤、實(shí)現(xiàn)真正的渲染并顯示繪制結(jié)果。
  2. 點(diǎn)擊按鈕顯示過程
    ⑥、點(diǎn)擊屏幕,事件傳遞到組件上,組件的 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é)

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

審核編輯 黃宇

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

    關(guān)注

    32

    文章

    2290

    瀏覽量

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

    關(guān)注

    59

    文章

    2562

    瀏覽量

    43864
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3842

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    以下是篇基于HarmonyOS性能體驗(yàn)設(shè)計(jì)文檔的開發(fā)者實(shí)踐指南,結(jié)合官方案例和代碼實(shí)現(xiàn),用更親切的語言分享實(shí)用技巧: ?** 鴻蒙性能優(yōu)化寶藏指南:讓你的應(yīng)用絲滑如飛!** 大家好呀!最近
    發(fā)表于 06-12 16:45

    智能雷擊計(jì)數(shù)器的綜合行業(yè)解決方案

    智能雷擊計(jì)數(shù)器種用于記錄雷擊事件發(fā)生次數(shù)的高科技裝置,廣泛應(yīng)用于防雷系統(tǒng)中。與傳統(tǒng)的機(jī)械式雷擊計(jì)數(shù)器相比,智能雷擊計(jì)數(shù)器不僅能夠精確記錄雷擊次數(shù),還能對雷電參數(shù)進(jìn)行分析,并通過智
    的頭像 發(fā)表于 12-20 10:50 ?470次閱讀
    智能雷擊<b class='flag-5'>計(jì)數(shù)器</b>的綜合行業(yè)解決方案

    鴻蒙原生開發(fā)手記:01-元服務(wù)開發(fā)

    簡介 元服務(wù)是鴻蒙中的種輕量應(yīng)用形態(tài),無需下載,直接運(yùn)行。類似于微信小程序,但與小程序不同的是,元服務(wù)更加輕量。 元服務(wù)使用原生開發(fā),是系統(tǒng)級提供的,無論從易用性、性能、體驗(yàn)上,都要比小程序好
    發(fā)表于 11-14 17:28

    鴻蒙Flutter實(shí)戰(zhàn):10-常見問題集合

    # 鴻蒙Flutter實(shí)戰(zhàn):10-常見問題集合 ## 1. 學(xué)習(xí)路徑應(yīng)該是怎樣的,需要掌握哪些技術(shù)才具備鴻蒙 Flutter 開發(fā)能力 1.1 學(xué)習(xí)和掌握 Flutter
    發(fā)表于 10-23 17:05

    鴻蒙Flutter實(shí)戰(zhàn):08-如何調(diào)試代碼

    # 鴻蒙Flutter實(shí)戰(zhàn):如何調(diào)試代碼 ## 1.環(huán)境搭建 參考文章[鴻蒙Flutter實(shí)戰(zhàn):01-搭建開發(fā)環(huán)境](https://g
    發(fā)表于 10-23 16:29

    鴻蒙Flutter實(shí)戰(zhàn):07混合開發(fā)

    # 鴻蒙Flutter實(shí)戰(zhàn):混合開發(fā) 鴻蒙Flutter混合開發(fā)主要有兩種形式。 ## 1.基于har 將flutter module
    發(fā)表于 10-23 16:00

    雷擊計(jì)數(shù)器的概述與應(yīng)用分析

    雷擊計(jì)數(shù)器種用于監(jiān)測和記錄電力系統(tǒng)、通信系統(tǒng)、建筑物等關(guān)鍵設(shè)施遭受雷擊次數(shù)的設(shè)備。它能夠有效地幫助管理人員掌握雷電活動的情況,以便進(jìn)行預(yù)防性維護(hù)和風(fēng)險(xiǎn)評估。雷擊計(jì)數(shù)器根據(jù)工作原理可以分為無源
    的頭像 發(fā)表于 10-21 10:31 ?758次閱讀
    雷擊<b class='flag-5'>計(jì)數(shù)器</b>的概述與應(yīng)用分析

    74ls163是幾進(jìn)制同步計(jì)數(shù)器

    74LS163 是十進(jìn)制同步計(jì)數(shù)器,它是集成電路(IC),用于數(shù)字電路中進(jìn)行計(jì)數(shù)操作。它
    的頭像 發(fā)表于 10-18 13:54 ?2805次閱讀

    激光塵埃粒子計(jì)數(shù)器如何使用能測出準(zhǔn)確的數(shù)據(jù)

    激光塵埃粒子計(jì)數(shù)器如何使用能測出準(zhǔn)確的數(shù)據(jù)
    的頭像 發(fā)表于 09-30 10:04 ?672次閱讀
    激光塵埃粒子<b class='flag-5'>計(jì)數(shù)器</b>如何使用能測出準(zhǔn)確的數(shù)據(jù)

    臺式塵埃粒子計(jì)數(shù)器的功能優(yōu)勢與應(yīng)用

    質(zhì)量濃度并輸出。臺式塵埃粒子計(jì)數(shù)器能同時對設(shè)定的六粒徑通道進(jìn)行檢測,用戶可自行設(shè)定采樣時間、采樣間隔和采樣次數(shù)等參數(shù)。 二、臺式塵埃粒子計(jì)數(shù)器的特點(diǎn) 臺式塵埃粒子計(jì)數(shù)器帶有溫濕度和大
    的頭像 發(fā)表于 09-14 16:41 ?767次閱讀

    基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):簡易計(jì)數(shù)器

    1、程序簡介 該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的UI應(yīng)用類:Sample Counter(簡單計(jì)數(shù)器)。 該程序設(shè)計(jì)1按鈕和顯示框。當(dāng)每次按下按鈕,則顯示框數(shù)字累加1。 本案
    發(fā)表于 09-14 13:38

    智能防雷計(jì)數(shù)器行業(yè)應(yīng)用解決方案

    。智能防雷計(jì)數(shù)器不僅僅用于簡單的雷擊次數(shù)統(tǒng)計(jì),還具備多項(xiàng)智能化功能,成為防雷工程中不可或缺的重要設(shè)備。 地凱科技 將詳細(xì)探討智能防雷計(jì)數(shù)器的工作原理、參數(shù)和指標(biāo),并結(jié)合具體的行業(yè)應(yīng)用提供解決方案。
    的頭像 發(fā)表于 09-12 10:46 ?630次閱讀
    智能防雷<b class='flag-5'>計(jì)數(shù)器</b>行業(yè)應(yīng)用解決方案

    正交解碼計(jì)數(shù)器

    正交解碼計(jì)數(shù)器
    發(fā)表于 09-06 11:41 ?0次下載

    計(jì)數(shù)器的特點(diǎn)和參數(shù)

    計(jì)數(shù)器作為種常用的電子元件,在電子設(shè)備和系統(tǒng)中扮演著至關(guān)重要的角色。它們不僅用于存儲和增減數(shù)字值,還廣泛應(yīng)用于時序和頻率測量、事件計(jì)數(shù)、控制步進(jìn)電機(jī)和伺服系統(tǒng)、錯誤檢測和糾正以及計(jì)算機(jī)數(shù)據(jù)存儲和操作等領(lǐng)域。以下將詳細(xì)闡述
    的頭像 發(fā)表于 08-29 14:54 ?2866次閱讀

    計(jì)數(shù)器同步和異步怎么判斷

    計(jì)數(shù)器同步和異步是數(shù)字電路設(shè)計(jì)中的重要概念,它們在很多應(yīng)用場景中都扮演著關(guān)鍵角色。 計(jì)數(shù)器概述
    的頭像 發(fā)表于 07-23 11:14 ?2573次閱讀
    主站蜘蛛池模板: 国产69精品久久久久9999 | 美脚连裤袜老师正在播放 | 色偷偷97 | 国产免费久久 | 高清一本之道加勒比在线 | 国产福利在线观看一区二区 | 91免费网站在线看入口黄 | 真实一级一级一片免费视频 | 中国同志chinese小彬tv | 日韩黄a级成人毛片 | 久久亚洲综合色 | 性生大片一级毛片免费观看 | 99精品国产在热久久 | 国产20岁美女一级毛片 | 就去干综合 | 在线视频 一区二区 | 亚洲成网站 | 黄色小毛片 | 天堂视频在线免费观看 | 69国产| www.日本三级 | 午夜爱爱爱爱爽爽爽网站免费 | 天天做天天爱夜夜大爽完整 | 亚洲天堂第一页 | 日本在线黄色 | 精品四虎免费观看国产高清 | 久久久久久久国产免费看 | 高清一区二区在线观看 | 婷婷深爱 | 操干干| 日本乱理论片免费看 | 午夜嘿咻 | 久久人视频 | 国产va精品免费观看 | 天天操综 | 欧美视频一区二区三区在线观看 | 恨恨操 | 成年女人毛片免费视频 | 女人张开腿男人猛桶视频 | 国产精品丝袜xxxxxxx | 日本五十交尾在线观看 |