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

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

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

3天內不再提示

HarmonyOS開發案例:【彈窗使用】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-25 17:44 ? 次閱讀

介紹

本篇Codelab主要基于dialog和button組件,實現彈窗的幾種自定義效果,具體效果有:

  1. 警告彈窗,點擊確認按鈕彈窗關閉。
  2. 確認彈窗,點擊取消按鈕或確認按鈕,觸發對應操作。
  3. 加載彈窗,展示加載中效果。
  4. 提示彈窗,支持用戶輸入內容,點擊取消和確認按鈕,觸發對應操作。
  5. 進度條彈窗,展示進度條以及百分比。

相關概念

  • [dialog組件]:自定義彈窗容器組件。
  • [button組件]:按鈕組件。

環境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release及以上版本。
  • OpenHarmony SDK版本:API version 9及以上版本。

硬件要求

  • 開發板類型:[潤和RK3568開發板]。
  • OpenHarmony系統:3.2 Release及以上版本。

環境搭建

完成本篇Codelab我們首先要完成開發環境的搭建,本示例以RK3568開發板為例,參照以下步驟進行:

  1. [獲取OpenHarmony系統版本]:標準系統解決方案(二進制)。以3.2 Release版本為例:
  2. 搭建燒錄環境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發板的燒錄]
  3. 搭建開發環境。
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發環境配置。
    2. 開發環境配置完成后,請參考[使用工程向導]創建工程(模板選擇“Empty Ability”)。
    3. 工程創建完成后,選擇使用[真機進行調測]。
    4. 鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

代碼結構解讀

本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在gitee中提供。

├──entry/src/main/js         // 代碼區
│  └──MainAbility
│     ├──common
│     │  └──images           // 圖片資源
│     ├──i18n                // 國際化中英文
│     │  ├──en-US.json			
│     │  └──zh-CN.json			
│     ├──pages
│     │  └──index
│     │     ├──index.css     // 頁面整體布局以及彈窗樣式
│     │     ├──index.hml     // 自定義彈窗展示頁面
│     │     └──index.js      // 彈窗顯示關閉邏輯以及動畫邏輯
│     └──app.js              // 程序入口
└──entry/src/main/resources  // 應用資源目錄

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

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

構建界面

界面主要包括按鈕列表頁和自定義彈窗兩部分,我們可以通過在dialog標簽中添加自定義組件設置彈窗,具體效果如圖所示:

首先搭建index.hml中的按鈕頁,主要包括5種常見的彈窗,分別為AlertDialog、ConfirmDialog、LoadingDialog、PromptDialog以及ProgressDialog。

< !--index.hml-- >
< div class="btn-div" >
    < button type="capsule" value="AlertDialog" class="btn" onclick="showAlert" >< /button >
    < button type="capsule" value="ConfirmDialog" class="btn" onclick="showConfirm" >< /button >
    < button type="capsule" value="LoadingDialog" class="btn" onclick="showLoading" >< /button >
    < button type="capsule" value="PromptDialog" class="btn" onclick="showPrompt" >< /button >
    < button type="capsule" value="ProgressDialog" class="btn" onclick="showProgress" >< /button >
< /div >

警告彈窗(AlertDialog)

然后在index.hml中創建AlertDialog自定義彈窗,效果如圖所示:

< !-- index.hml -- >
< !-- AlertDialog自定義彈窗 -- >
< dialog id="alertDialog" class="alert-dialog" >
    < div class="dialog-div" >
        < div class="alert-inner-txt" >
            < text class="txt" >AlertDialog< /text >
        < /div >
        < div class="alert-inner-btn" >
            < button class="btn-single" type="capsule" value="Confirm" onclick="confirmClick('alertDialog')" >
            < /button >
        < /div >
    < /div >
< /dialog >

確認彈窗(ConfirmDialog)

創建ConfirmDialog自定義彈窗,效果如圖所示:

< !-- index.hml -- >
< !-- ConfirmDialog自定義彈窗 -- >
< dialog id="confirmDialog" class="dialog-main" >
    < div class="dialog-div" >
        < div class="inner-txt" >
            < text class="txt" >ConfirmDialog< /text >
        < /div >
        < div class="inner-btn" >
            < button type="capsule" value="Cancel" class="btn-txt-left" onclick="cancelClick('confirmDialog')" >
            < /button >
            < button type="capsule" value="Confirm" class="btn-txt-right" onclick="confirmClick('confirmDialog')" >
            < /button >
        < /div >
    < /div >
< /dialog >

加載彈窗(LoadingDialog)

創建LoadingDialog自定義彈窗,效果如圖所示:

< !-- index.hml -- >
< !-- LoadingDialog自定義彈窗 -- >
< dialog id="loadingDialog" class="low-height-dialog" >
    < div class="dialog-loading" >
        < text >Loading...< /text >
        < image class="loading-img img-rotate" id="loading-img" src="/common/images/ic_loading.svg" >< /image >
    < /div >
< /dialog >

提示彈窗(PromptDialog)

創建PromptDialog自定義彈窗,效果如圖所示:

< !-- index.hml -- >
< !-- PromptDialog自定義彈窗 -- >
< dialog id="promptDialog" class="dialog-prompt" >
    < div class="dialog-div-prompt" >
        < div class="inner-txt-prompt" >
            < text class="txt" >PromptDialog< /text >
        < /div >
        < input class="prompt-input" type="password" placeholder="please enter password" >
        < /input >
        < div class="inner-btn" >
            < button type="capsule" value="Cancel" class="btn-txt-left" onclick="cancelClick('promptDialog')" >
            < /button >
            < button type="capsule" value="Confirm" class="btn-txt-right" onclick="confirmClick('promptDialog')" >
            < /button >
        < /div >
    < /div >
< /dialog >

進度條彈窗(ProgressDialog)

創建ProgressDialog自定義彈窗,效果如圖所示:

< !-- index.hml -- >
< !-- ProgressDialog自定義彈窗 -- >
< dialog id="progressDialog" class="low-height-dialog" oncancel="onCancel" >
    < div class="dialog-progress-div" >
        < div class="inner-txt-progress" >
            < text class="download-txt" >Downloading...< /text >
            < text >{{ percent + '%' }}< /text >
        < /div >
        < div class="progress-div" >
            < progress class="min-progress" type="horizontal" percent="{{ percent }}" secondarypercent="50" >
            < /progress >
        < /div >
    < /div >
< /dialog >

然后在index.js中文件實現不同button的點擊事件,展示對應彈窗:

// index.js
export default {
  data: {...},

  // 展示AlertDialog
  showAlert() {
    this.$element('alertDialog').show();
  },

  // 展示ConfirmDialog
  showConfirm() {
    this.$element('confirmDialog').show();
  },

  // 展示LoadingDialog
  showLoading() {
    ...
    this.animation = this.$element('loading-img').animate(frames, options);
    this.animation.play();
    this.$element('loadingDialog').show();
  },

  // 展示PromptDialog
  showPrompt() {
    this.$element('promptDialog').show();
  },

  // 展示ProgressDialog
  showProgress() {
    ...
  }
}

審核編輯 黃宇

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

    關注

    79

    文章

    1975

    瀏覽量

    30194
  • OpenHarmony
    +關注

    關注

    25

    文章

    3722

    瀏覽量

    16317
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    188

    瀏覽量

    4391
收藏 人收藏

    評論

    相關推薦

    TL3588-視頻開發案

    TL3588-視頻開發案
    的頭像 發表于 01-24 16:29 ?682次閱讀
    TL3588-視頻<b class='flag-5'>開發案</b>例

    TLT507-Linux-RT應用開發案

    TLT507-Linux-RT應用開發案
    的頭像 發表于 01-26 09:46 ?708次閱讀
    TLT507-Linux-RT應用<b class='flag-5'>開發案</b>例

    3568F-視頻開發案

    3568F-視頻開發案
    的頭像 發表于 04-12 13:51 ?898次閱讀
    3568F-視頻<b class='flag-5'>開發案</b>例

    HarmonyOS開發案例:【 自定義彈窗

    基于ArkTS的聲明式開發范式實現了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實現自定義彈窗
    的頭像 發表于 05-16 18:18 ?1371次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發案</b>例:【 自定義<b class='flag-5'>彈窗</b>】

    HarmonyOS開發案例:【多種樣式彈窗

    如何使用彈窗功能,實現四種類型彈窗。分別是:警告彈窗、自定義彈窗、日期滑動選擇器彈窗、文本滑動選擇器彈窗
    的頭像 發表于 05-08 15:32 ?760次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發案</b>例:【多種樣式<b class='flag-5'>彈窗</b>】

    HarmonyOS實戰開發-全局彈窗封裝案例

    介紹 本示例介紹兩種彈窗的封裝案例。一種是自定義彈窗封裝成自定義組件的方式,使用一句代碼即可控制顯示;一種是使用子窗口的方式實現彈窗,使用一句代碼即可展示。 效果預覽圖 使用說明 進入首頁會立馬
    發表于 05-08 15:51

    HarmonyOS IoT 硬件開發案例分享

    ``許思維老師HiSpark Wi-Fi IoT 開發案例分享:案例一:AHT20溫濕度傳感器開發、調試;案例二:oled屏驅動庫移植,調試;案例三:用OLED屏播放視頻,Wi-Fi 和 TCP/IP 綜合應用。 ``
    發表于 10-27 17:30

    【潤和直播課預告@華為開發者學院】HarmonyOS設備開發基礎課程|HiSpark WiFi-IoT 智能小車套件開發案

    `【潤和直播課預告@華為開發者學院】HarmonyOS設備開發基礎課程|HiSparkWiFi-IoT 智能小車套件開發案例,3月18日(周四) 19:00-21:00,讓你的
    發表于 03-16 15:01

    HarmonyOS應用開發-eTS-警告彈窗

    顯示警告彈窗組件,可設置文本內容與響應回調。屬性:名稱參數類型默認值參數描述showoptions: { paramObject1| paramObject2}-定義并顯示AlertDialog組
    發表于 12-22 14:16

    HarmonyOS應用開發-XPopup常用的彈窗體驗

    組件名:XPopup作用:內置幾種了常用的彈窗,十幾種良好的動畫,將彈窗和動畫的自定義設計的極其簡單;目前還沒有出現XPopup實現不了的彈窗效果。 內置彈窗允許你使用項目已有的布局,
    發表于 05-21 11:18

    OpenHarmony應用開發之自定義彈窗

    API參考-HarmonyOS應用開發?? CustomDialogController是自定義彈窗對應的接口,詳細介紹如下: CustomDialogController(value
    發表于 09-06 14:40

    HarmonyOS Codelab 樣例 一彈窗基本使用

    dialog組件:自定義彈窗容器組件。 button組件:按鈕組件。 完整示例 gitee源碼地址 源碼下載 彈窗基本使用(JS).zip 二、環境搭建 我們首先需要完成HarmonyOS
    發表于 09-19 18:40

    許思維老師HarmonyOS IoT硬件開發案例分享

    許思維老師HiSpark Wi-Fi IoT 開發案例分享:案例一:AHT20溫濕度傳感器開發、調試;案例二:oled屏驅動庫移植,調試;案例三:用OLED屏播放視頻,Wi-Fi 和 TCP/IP 綜合應用。
    發表于 10-29 10:39 ?39次下載
    許思維老師<b class='flag-5'>HarmonyOS</b> IoT硬件<b class='flag-5'>開發案</b>例分享

    華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案

    2021華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案
    的頭像 發表于 10-24 11:25 ?1921次閱讀
    華為<b class='flag-5'>開發</b>者分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-OpenHarmony Codelabs<b class='flag-5'>開發案</b>例

    RK3568---NPU開發案

    RK3568---NPU開發案
    的頭像 發表于 01-19 13:50 ?929次閱讀
    RK3568---NPU<b class='flag-5'>開發案</b>例
    主站蜘蛛池模板: 正在播放91| 深夜一级毛片| 欧美成人26uuu欧美毛片| 2018天天操夜夜操| www日| h国产在线| 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 午夜伦伦| 欧美日韩一区二区视频图片| a级黄视频| 欧美另类v| 中日韩欧美在线观看| 欧美18同性gay视频| 天天躁日日躁狠狠躁一级毛片| 欧美成人黄色| 色欧美在线| 中国又粗又大又爽的毛片| 奇米影视四色首页手机在线| 性夜黄a爽影免费看| 人人入人人爱| 手机看片三级| 高h水果榨汁play男男| 久久日精品| 国产精品免费久久| 精品女同同性视频很黄很色| 你懂的在线视频观看| 美女和美女| 亚洲成在线| 亚洲午夜精品一区二区| 乌克兰毛片| 黄色生活毛片| 欧美操穴视频| 欧美色综合网站| 久久亚洲国产成人影院| 亚洲电影一区二区三区| 中文在线资源链接天堂| 亚洲狼色专区| 激情五月婷婷综合| 欧美激情综合色综合啪啪五月| 日韩色中色| 校园春色亚洲欧美|