<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

OpenHarmony開發實例:【 待辦事項TodoList】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-22 22:00 ? 次閱讀

簡介

TodoList應用是基于OpenHarmony SDK開發的安裝在潤和HiSpark Taurus AI Camera(Hi3516d)開發板標準系統上的應用;應用主要功能是以列表的形式,展示需要完成的日程;通過本demo可以學習到 JS UI 框架List使用;

運行效果

樣例效果

樣例原理

本demo只有一個list組件組成,初始化數據展示列表,并設置點擊事件改變數據狀態,重新渲染列表

原理圖

工程版本

  • 系統版本/API版本:OpenHarmony SDK API 8
  • IDE版本:DevEco Studio 3.0 Beta3

快速上手

準備硬件環境

[搭建標準系統環境]

準備開發環境

  • 安裝最新版[DevEco Studio]。
  • 請參考[配置OpenHarmony SDK],完成DevEco Studio的安裝和開發環境配置。

準備工程

鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

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

配置git
  • 提前注冊準備碼云gitee賬號。
  • git工具下載安裝
    sudo apt install git
    sudo apt install git-lfs
    
  • 配置git用戶信息
    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
    
git下載
git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
工程導入
  • DevEco Studio導入本工程;
    打開DevEco Studio,點擊File->Open->下載路徑/FA/TodoList
    打開工程導入工程

編譯

  • 點擊File > Project Structure > Project > Signing Configs界面勾選“ Automatically generate signing ”,等待自動簽名完成即可,點擊“ OK ”。如下圖所示:運行
  • 點擊Build->Build Hap/APPs 編譯,編譯成功生成entry-default-signed.hap

編譯編譯完成

燒錄/安裝

  • 識別到設備后點擊img,或使用默認快捷鍵Shift+F10(macOS為Control+R)運行應用。

運行

  • [安裝應用]如果IDE沒有識別到設備就需要通過命令安裝,如下
    打開OpenHarmony SDK路徑 toolchains 文件夾下,執行如下hdc_std命令,其中path為hap包所在絕對路徑。
    hdc_std install -r pathentry-default-signed.hap//安裝的hap包需為xxx-signed.hap,即安裝攜帶簽名信息的hap包。
    

工程目錄

完整的項目結構目錄如下

HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

├─entrysrcmain
│          │  config.json  //應用配置文件
│          │  
│          ├─js
│          │  └─MainAbility
│          │      │  app.js  // 應用程序入口
│          │      │  
│          │      ├─common   // 公共資源
│          │      │  │  checkbutton.png
│          │      │  │  delete.png
│          │      │  │  done.png
│          │      │  │  head0.png
│          │      │  │  head1.png
│          │      │  │  head2.png
│          │      │  │  head3.png
│          │      │  │  head4.png
│          │      │  │  right.png
│          │      │  │  
│          │      │  └─images
│          │      │          bg-tv.jpg
│          │      │          Wallpaper.png
│          │      │          
│          │      ├─i18n   // 多語言文件
│          │      │      en-US.json
│          │      │      zh-CN.json
│          │      │      
│          │      └─pages
│          │          └─index
│          │                  index.css  //頁面樣式
│          │                  index.hml  //首頁展示
│          │                  index.js   //頁面邏輯
│          │                  
│          └─resources
│              ├─base
│              │  ├─element
│              │  │      string.json
│              │  │      
│              │  └─media
│              │          icon.png
│              │          
│              └─rawfile

開發步驟

1. 新建OpenHarmony ETS項目

在DevEco Studio中點擊File -> New Project ->[Standard]Empty Ability->Next,Language 選擇JS語言,最后點擊Finish即創建成功。 image-20211124092813545

2. 編寫主頁面

image-20211124093106260

2.1頁面展示

1)最外層是[div]容器,并在class里面設置背景色為黑色按行布局;

2)再通過[list]包裹[list-item]的 內層div 容器按列布局,并設置點擊事件[onclick]

3)[div]容器按列布局依次寫入[image] 組件和 div 容器 ;

4)div容器里面又包裹一個div容器和以及[text]組件,且div容器里面也是兩個按列布局的[text]

< div class="container" >
    < list class="tag-list" initialindex="{{initialIndex}}" >
        < list-item for="{{taskList}}" class="todo-list-item" focusable="false" >
            < div class="todo-item flex-row" onclick="completeEvent({{$item.id}})" >
                < image class="todo-image" src="{{$item.checkBtn}}" >< /image >
                < div class="todo-text-wrapper" >
                    < div class="todo-name-mark" >
                        < text class="todo-name {{$item.color}}" focusable="false" >{{$item.event}}< /text >
                        < text class="todo-mark {{$item.tag}} {{$item.showTag}}" >< /text >
                    < /div >
                    < text class="todo-time" >{{$item.time}}< /text >
                < /div >
            < /div >
        < /list-item >
    < /list >
< /div >
2.2點擊事件

點擊某一行后,并根據當前行的狀態改變相反的狀態

completeEvent(e) {
        for (let i of this.taskList) {
            if (i.id == e) {
                if (i.checkBtn == "/common/done.png") {
                    i.checkBtn = "/common/checkbutton.png";
                    i.showTag = 'show';
                    i.color = 'text-default';
                    i.completeState = false;
                } else {
                    i.checkBtn = "/common/done.png";
                    i.showTag = 'hide';
                    i.color = 'text-gray';
                    i.completeState = true;
                }
                return;
            }
        }
    },

操作體驗

列表滑動

樣例效果

審核編輯 黃宇

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

    關注

    55

    文章

    1629

    瀏覽量

    42119
  • HarmonyOS
    +關注

    關注

    79

    文章

    1827

    瀏覽量

    29260
  • OpenHarmony
    +關注

    關注

    23

    文章

    3284

    瀏覽量

    15159
收藏 人收藏

    評論

    相關推薦

    玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發分享

    原文引自51CTO 開源基礎軟件社區 《劉瀟翔:基于OpenHarmony的仿生四足狗開發分享》 作者介紹 劉瀟翔, 現就讀于南方科技大學(Southern University
    的頭像 發表于 10-31 21:50 ?3151次閱讀

    OpenHarmony南向開發實例:【游戲手柄】

    基于TS擴展的聲明式開發范式編程語言,以及OpenHarmony的分布式能力實現的一個手柄游戲。
    的頭像 發表于 04-17 10:21 ?400次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【游戲手柄】

    鴻蒙入門實戰-ArkTS開發

    要渲染的數組為以上的五條待辦事項,要渲染的內容是ToDoItem這個自定義組件,也可以是其他內置組件。 圖7ForEach基本使用 ToDoItem這個自定義組件中,每一個ToDoItem要顯示的文本
    發表于 01-16 17:27

    實用待辦事項APP大推薦---《Count2task 記事達人》

    ,單純化用法,接口簡單讓人一目了然。此app主要目的是提醒使用者, 什么待辦事情即將來臨,需要在時間內完成,這樣可以進一步規劃所剩下的時間與執行的順序,最特別的是在待辦事項日期加了倒數進度BAR~~視覺
    發表于 07-09 15:19

    我應該知道什么才能在fpga領域工作?

    我應該知道什么才能在fpga領域工作?我想得到一份我應該知道和練習的“待辦事項”清單謝謝以上來自于谷歌翻譯以下為原文what should i know best for working
    發表于 01-11 10:30

    HarmonyOS應用開發-UI設計開發與預覽

    (harmony-todo)提示:開發過程完成每一步點擊保存之后即可在預覽界面實時預覽效果3.為index頁面(index.hml)添加布局信息3.1添加今日待辦事項的列表<
    發表于 09-23 17:51

    OpenHarmony 應用開發快速入門

    本文檔適用于OpenHarmony應用開發的初學者。通過構建一個簡單的具有頁面跳轉/返回功能的應用(如下圖所示),快速了解工程目錄的主要文件,熟悉OpenHarmony應用開發流程。
    發表于 05-06 16:03

    卡片分揀機的制作

     我非常喜歡卡片分揀機的外觀和尺寸。我對這個功能也非常滿意,但正如我已經說過的那樣有一些開放的待辦事項
    的頭像 發表于 08-26 09:54 ?3362次閱讀
    卡片分揀機的制作

    使用Python開發OpenHarmony設備程序-I2C應用實例分享

    在上一篇帖子《使用Python開發OpenHarmony設備程序(1-GPIO外設控制)》中,已經成功的使用 Python 對 GPIO 上的外設進行了控制。這是非常重要的一個里
    的頭像 發表于 12-07 11:34 ?3101次閱讀
    使用Python<b class='flag-5'>開發</b><b class='flag-5'>OpenHarmony</b>設備程序-I2C應用<b class='flag-5'>實例</b>分享

    openharmony開源社區 OpenHarmony開發樣例上新了

    openharmony開源社區 OpenHarmony開發樣例上新了 OpenHarmony 開源項目是由開放原子開源基金會孵化及運營的開源項目,由開放原子開源基金會
    的頭像 發表于 04-25 16:37 ?2115次閱讀

    構建低功耗數字化的Wi-Fi待辦事項列表

    電子發燒友網站提供《構建低功耗數字化的Wi-Fi待辦事項列表.zip》資料免費下載
    發表于 12-23 16:03 ?0次下載
    構建低功耗數字化的Wi-Fi<b class='flag-5'>待辦事項</b>列表

    何為自主智能體?

    想象一下,你創造了一個人工智能工具,可以為其設定目標,即使是像「創造世界上最好的冰淇淋」這樣模糊的目標,它也會擬出一個待辦事項列表,執行待辦事項,并根據進展來添加新的待辦事項。隨后它會繼續重復這個過程,直至完成目標。
    的頭像 發表于 04-28 15:50 ?862次閱讀
    何為自主智能體?

    10分鐘快速掌握OpenHarmony社區貢獻新流程

    (以下簡稱OpenHarmony)社區優化了Issue和PR處理流程,新支持了一系列交互命令和狀態標簽,用于明確處理階段和當前處理責任人。社區CI Bot工具還提供了待辦事項提醒能力,并能自動處理超期
    的頭像 發表于 06-20 21:10 ?369次閱讀

    OpenHarmony上實現待辦事項功能

    列表的編輯模式用途十分廣泛,常見于待辦事項管理、文件管理、備忘錄的記錄管理等應用場景。
    的頭像 發表于 06-25 15:19 ?432次閱讀

    鴻蒙開發實例:【配置OpenHarmony SDK】

    在設置OpenHarmony應用開發環境時,需要開發者在DevEco Studio中配置對應的SDK信息。
    的頭像 發表于 04-22 15:24 ?141次閱讀
    鴻蒙<b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【配置<b class='flag-5'>OpenHarmony</b> SDK】
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>