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

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

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

3天內不再提示

基于HarmonyOS的ArkUI框架開發IQ- EQ測試應用

HarmonyOS開發者 ? 來源:HarmonyOS開發者 ? 作者:HarmonyOS開發者 ? 2022-07-10 17:32 ? 次閱讀

開發者說】欄目是為HarmonyOS開發者提供的展示和分享平臺,在這里,大家可以發表自己的技術洞察和見解,也可以展示自己的開發心得和成果。

歡迎大家積極投稿,后臺回復【投稿】,即可獲得投稿渠道。期待你們的分享~


本期我們給大家帶來的是開發者Mack的分享,希望能給你的HarmonyOS開發之旅帶來啟發~


開發者Mack基于HarmonyOS的ArkUI框架開發的IQ- EQ測試應用。此應用采用eTS語言開發,包含啟動頁面、測試入口頁面、答題頁面和得分頁面等多個頁面,功能非常完善。

IQ- EQ測試應用的實現效果,請參考華為開發者論壇中作者的原帖:

https://developer.huawei.com/consumer/cn/blog/topic/03728323510050211

此應用的開發過程中涉及很多知識點,下面我們一起跟隨Mack的開發過程,一起學習eTS開發知識吧~

一、代碼結構介紹

我們先來看看IQ- EQ測試應用的文件目錄結構,相關文件說明如圖1所示。

e6442922-f203-11ec-ba43-dac502259ad0.png

圖1 文件目錄結構


1. 此應用的核心代碼文件(即eTS文件)均在/entry/src/main/ets目錄下,文件后綴為“.ets”。由圖1可知,eTS文件主要分為兩部分:
  • ets/default/module目錄下的eTS文件,用于定義IQ和EQ測試題目數據。
  • ets/default/pages目錄下的eTS文件,用于定義應用的UI界面。
2. “resource”目錄為項目資源存放目錄,存放圖片資源和國際化字符串等。3. config.json為應用的配置文件。eTS開發時,需關注該文件中module對象的js標簽內容。
"js": [  {    "mode": {      "syntax": "ets",   //表示以聲明式語法風格進行編程      "type": "pageAbility"    },    "pages": [      "pages/index",   //“pages”列表的第一個頁面為應用的啟動頁      "pages/start",      "pages/iqTest",      "pages/iqScore",      "pages/eqTest",      "pages/eqScore"    ],    "name": "default",    "window": {      "designWidth": 720,      "autoDesignWidth": false    }  }]
(左右滑動,查看更多)


二、關鍵代碼及知識點

在開發IQ- EQ測試應用的過程中,主要運用了容器組件、裝飾器、頁面路由和AppStorage等。下面,我們就結合IQ- EQ測試應用的關鍵代碼,一起來學習這些知識點。

1. 容器組件


方舟開發框架提供了豐富的系統預置組件。開發者可以組合系統組件為自定義組件,通過這種方式將頁面組件化為一個個獨立的UI單元,實現頁面不同單元的獨立創建、開發和復用。本次IQ- EQ測試應用,通過對容器組件的組合使用,實現了多個頁面的UI布局。比如,EQ測試題目頁(對應ets/default/pages/eqTest.ets文件)的部分布局代碼如下:
  build() {    Column() {      // 頂部標題      TopTitle()      Scroll() {        Column() {          // 顯示問題列表          List() {            ForEach(this.questionsDataArray, item => {              ListItem() {                // 循環展示問題                QuestionsListItem({ questionItem: item,  questionsId:item.id,                  btnSubmit:$btnSubmit1})              }            }, item => item.id.toString())          }
(左右滑動,查看更多)


此應用使用到的一些容器組件,說明如下:
  • Column:沿垂直方向布局的容器組件。
  • Row:沿水平方向布局的容器組件。
  • Scroll:可滾動的容器組件,當子組件的布局尺寸超過父組件的視口時,內容可以滾動。
  • Grid:網格容器組件,采用二維布局,將容器劃分成“行”和“列”。
  • List:列表組件,包含一系列相同寬度的列表項。
  • Flex:彈性布局組件。
  • Stack:堆疊容器組件,子組件按照順序依次入棧,后一個子組件覆蓋前一個子組件。
更多組件說明,請參見:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-container-column-0000001111421414

2.裝飾器


方舟開發框架還定義了一些具有特殊含義的裝飾器,用于裝飾類、結構、方法和變量。下面就結合本次IQ- EQ測試應用,為大家介紹幾種常用的裝飾器。比如,啟動頁(對應ets/default/pages/index.ets文件)的代碼如下:
@Entry@Componentstruct Index {

  @State private opacityValue: number = 0  @State private scaleValue: number = 0

  build() {  }}
(左右滑動,查看更多)


以上代碼中涉及到了三種常用的裝飾器:@Component、@Entry、@State。


(1) @Component

開發者可以組合系統組件為自定義組件,通過這種方式將頁面組件化為一個個獨立的UI單元,實現頁面不同單元的獨立創建、開發和復用。

@Component是組件化的標志。@Component裝飾的struct,表示該結構體具有組件化能力,能夠成為一個獨立的組件,稱為自定義組件。自定義組件必須定義build方法,在build方法里描述UI結構。

(2) @Entry

@Entry裝飾的自定義組件,表示該組件是頁面的總入口,也可以理解為頁面的根節點。加載頁面時,將首先創建并呈現@Entry裝飾的自定義組件。值得注意的是,一個頁面有且僅能有一個@Entry,只有被@Entry修飾的組件或者其子組件,才會在頁面上顯示。

(3) @State

@State裝飾的變量是組件內部的狀態數據,當這些狀態數據被修改時,將會調用所在組件的build方法進行UI刷新。

除了以上三種裝飾器,方舟開發框架還提供了@Prop、@Link、@Observed、@ObjectLink、@Consume、@Provide、@StorageProp、 @StorageLink、@Watch、@Preview、@Builder、@Extend、@CustomDialog等裝飾器。裝飾器的更多詳細內容,盡在聲明式語法中。

聲明式語法的詳細介紹,請參見:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-syntax-intro-0000001149818707

3.頁面路由


IQ測試時,答完一題后支持自動跳轉到下一題,這里涉及頁面路由的操作。為方便開發者實現頁面路由的各種操作,HarmonyOS提供了多種頁面路由接口IQ測試題目頁(對應ets/default/pages/iqTest.ets文件)中頁面路由的代碼如下:
import router from '@system.router';

router.push({  uri: 'pages/iqTest',  params: { paramCurrentId:(this.currentId + 1)}  // 自動跳轉下一題})
(左右滑動,查看更多)


在調用頁面路由接口之前,先導入router模塊。然后,通過調用router.push()接口,將uri指定的頁面添加到路由棧中,即可實現跳轉到uri指定的頁面。


上面僅介紹了一種頁面路由接口。更多頁面路由接口的詳細說明,請參見:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-basic-features-routes-0000000000611824

4. AppStorage

AppStorage是整個UI應用程序狀態的中心“數據庫”,包含整個應用程序需要訪問的所有狀態屬性。AppStorage提供了相應的裝飾器和接口供應用程序使用。應用程序的UI組件可以通過裝飾器將應用程序狀態數據與AppStorage進行同步。此外,應用程序還可以通過AppStorage提供的接口添加、讀取、修改和刪除AppStorage中保存的應用程序狀態屬性。API所做更改引起的狀態數據變更會被同步到UI組件上,應用程序將會調用所在組件的build方法進行UI更新。

此IQ- EQ測試應用也調用了AppStorage的接口來修改和刪除狀態屬性。(1) IQ測試時,應用程序將每一題的選擇結果保存到AppStorage中。代碼如下:
// 點擊圖片表示選擇, 保存題目的選擇結果AppStorage.SetOrCreate("question_id_"+this.currentId,item.id)
(左右滑動,查看更多)


(2) IQ測試完成后,點擊“再測一遍”時,應用程序調用AppStorage的接口刪除所有題目的選擇結果。代碼如下:
AppStorage.Delete('question_id_'+item.id)
(左右滑動,查看更多)


AppStorage的更多詳情,請參見:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ts-application-states-appstorage-0000001119929480

三、結束語

上面介紹的eTS開發知識,你已經學會了嗎?感興趣的小伙伴,可以獲取IQ- EQ測試應用的完整代碼,繼續學習哦~

IQ- EQ測試應用的源碼地址:https://gitee.com/mackyuan/IQ_EQ_Test_eTS


審核編輯:湯梓紅

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

    關注

    8

    文章

    5394

    瀏覽量

    127123
  • 華為
    +關注

    關注

    216

    文章

    34545

    瀏覽量

    253136
  • HarmonyOS
    +關注

    關注

    79

    文章

    1983

    瀏覽量

    30630

原文標題:想學習eTS開發?教你開發一款IQ-EQ測試應用

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vysper基于MINA網絡框架開發

    Vysper是一款服務器開發軟件,基于MINA網絡框架開發主要用于即時通訊,向App等客戶端推送消息的。
    發表于 07-16 07:36

    想學習eTS開發?教你開發一款IQ-EQ測試應用

    開發者Mack基于HarmonyOSArkUI框架開發IQ- EQ
    發表于 06-23 12:01

    4天帶你上手HarmonyOS ArkUI開發

    本次HarmonyOS ArkUI入門訓練營課程--健康生活實戰篇,手把手教大家如何制作一個合理膳食的APP前端Demo!課程實戰樣例通過ArkUI聲明式UI開發
    發表于 09-09 14:44

    本周四晚19:00知識賦能第八期第1課丨ArkUI框架整體設計

    以通過WiFi接口開發出炫酷的WiFi應用,而這一期的直播我們邀請到了資深 OS 框架開發工程師巴延興老師,從業以來就一致深耕終端設備的研發領域,擁有十多年的移動系統開發經驗,為大家講解Ark
    發表于 09-14 15:35

    ArkUI,更高效的框架設計

    ArkUI是一套用于構建HarmonyOS應用界面的UI開發框架,本期我們將從架構設計上來聊聊ArkUI的設計理念。
    發表于 12-21 10:26

    4天帶你上手HarmonyOS ArkUI開發——《HarmonyOS ArkUI入門訓練營之健康生活實戰》

    框架實現。ArkUI采用極簡的聲明式UI描述界面語法,只需用幾行簡單直觀的聲明式代碼,即可完成界面功能,內置了豐富而精美HarmonyOS Design的UI組件和API,可滿足大部分跨端應用界面
    發表于 01-05 11:49

    HarmonyOS測試技術與實戰-分布式UI測試框架

    HDC 2021華為開發者大會 HarmonyOS測試技術與實戰-分布式UI測試框架演示
    的頭像 發表于 10-23 14:49 ?1426次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>測試</b>技術與實戰-分布式UI<b class='flag-5'>測試</b><b class='flag-5'>框架</b>

    HarmonyOS測試技術與實戰-華為ArkUI開發框架和場景測試

    HDC 2021華為開發者大會HarmonyOS測試技術與實戰-華為ArkUI開發框架和場景
    的頭像 發表于 10-23 15:16 ?1950次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>測試</b>技術與實戰-華為<b class='flag-5'>ArkUI</b><b class='flag-5'>開發</b><b class='flag-5'>框架</b>和場景<b class='flag-5'>測試</b>

    HarmonyOS ArkUI 3.0框架試玩初體驗

    ?? HarmonyOS ArkUI 3.0?正式到來,今天就給大家分享一下我的 HarmonyOS ArkUI 3.0 框架試玩初體驗,以
    的頭像 發表于 11-01 14:53 ?2290次閱讀

    HarmonyOS ArkUI 3.0框架試玩初體驗

    ?? HarmonyOS ArkUI 3.0?正式到來,今天就給大家分享一下我的 HarmonyOS ArkUI 3.0 框架試玩初體驗,以
    的頭像 發表于 12-03 10:14 ?3604次閱讀

    ArkUI,更高效的框架設計

    上期文章我們講到了ArkUI的三大特性,同時提到了ArkUI是一套用于構建HarmonyOS應用界面的UI開發框架,本期我們將從架構設計上來
    的頭像 發表于 12-21 09:15 ?1681次閱讀

    使用platformio平臺和Arduino框架開發STM32G0

    使用platformio平臺和Arduino框架開發STM32G0,開發環境使用VSCode+PlatformIO插件;
    的頭像 發表于 01-17 11:05 ?4110次閱讀
    使用platformio平臺和Arduino<b class='flag-5'>框架開發</b>STM32G0

    ArkUI新能力,助力應用開發更便捷

    管理,以及實時界面預覽等相關能力,幫助您提升應用開發效率,并能在多種設備上實現生動而流暢的用戶體驗。隨著HarmonyOS 3.1版本的發布,ArkUI也新增許多能力,助力應用開發更便
    的頭像 發表于 02-15 16:35 ?914次閱讀

    Hypium框架使能ArkTS應用高效測試

    作者: leidan,軟件測試開發工程師? HarmonyOS發布了聲明式開發框架ArkUI,帶來了極簡高效的
    的頭像 發表于 03-11 13:10 ?1059次閱讀

    鴻蒙ArkUI-X框架開發:【開發準備】

    本文檔適用于ArkUI-X框架開發的初學者。通過環境搭建、代碼下載、代碼編譯、API擴展和使用,快速了解跨平臺項目開發流程。
    的頭像 發表于 05-23 21:02 ?535次閱讀
    鴻蒙<b class='flag-5'>ArkUI</b>-X<b class='flag-5'>框架開發</b>:【<b class='flag-5'>開發</b>準備】
    主站蜘蛛池模板: 狠狠色丁香婷婷久久综合不卡 | 狠狠躁夜夜躁人人爽天天天天 | 97影院3 | 三级网站免费看 | 一级做a爱免费观看视频 | 国产成 人 综合 亚洲网 | 91日韩精品天海翼在线观看 | 免费播放视频 | 一级片影院| 中文字幕一区二区三区免费视频 | 亚洲日本视频 | 五月婷婷六月激情 | 亚洲欧美人成网站综合在线 | 99热精品久久只有精品30 | 奇米9999 | 高清国产一区二区三区 | www射com| 日本三级带日本三级带黄首页 | 国产精品日韩欧美亚洲另类 | 亚洲免费一 | 永久在线观看 | 美日韩一区二区 | 高清在线免费观看 | 欧美色图在线视频 | 久久久久免费精品国产 | 拍拍拍无挡视频免费全程1000 | 国产美女久久久 | 久久精品免费看 | 亚洲伊人天堂 | 操操片 | 五月天男人的天堂 | 色香首页| 午夜剧场操一操 | 久久精品视频99精品视频150 | 日韩一级片在线 | www.87福利| 欧美性aaa | 国产伦子系列视频6 | 男女交性视频播放 视频 视频 | 天堂在线免费视频 | 亚洲三级电影在线播放 |