色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

深入淺出學習eTs之電量不足提示彈窗實例

Harmony&嵌入式學習 ? 來源:Harmony&嵌入式學習 ? 作者:Harmony&嵌入式學 ? 2023-05-13 13:25 ? 次閱讀

本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)

一、需求分析

wKgaomRfHz-AWHurAAJmQsDI0GA789.png

相信大家生活中也經常會遇到上方情況,本章節我們來模擬提示一個電量不足的顯示,使用自定義彈窗來實現

提示電量不足

可以選擇關閉和低電量模式

顯示當前剩余電量

二、控件介紹

自定義彈窗:官方文檔

說明: 從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

通過CustomDialogController類顯示自定義彈窗。

接口

CustomDialogController(value:{builder: CustomDialog, cancel?: () => void, autoCancel?: boolean, alignment?: DialogAlignment, offset?: Offset, customStyle?: boolean})

參數

參數名 參數類型 必填 默認值 參數描述
builder CustomDialog - 自定義彈窗內容構造器。
cancel () => void - 點擊遮障層退出時的回調。
autoCancel boolean true 是否允許點擊遮障層退出。
alignment DialogAlignment DialogAlignment.Default 彈窗在豎直方向上的對齊方式。
offset { dx: Length | Resource, dy: Length | Resource } - 彈窗相對alignment所在位置的偏移量。
customStyle boolean false 彈窗容器樣式是否自定義。
gridCount8+ number - 彈窗寬度占柵格寬度的個數。

DialogAlignment枚舉說明

名稱 描述
Top 垂直頂部對齊。
Center 垂直居中對齊。
Bottom 垂直底部對齊。
Default 默認對齊。
TopStart8+ 左上對齊。
TopEnd8+ 右上對齊。
CenterStart8+ 左中對齊。
CenterEnd8+ 右中對齊。
BottomStart8+ 左下對齊。
BottomEnd8+ 右下對齊。

代碼介紹:

declare class CustomDialogController {
  constructor(value: CustomDialogControllerOptions); // 對話框控制器,控制彈框樣式等
  open();                                            // 打開對話框
  close();                                           // 關閉對話框
}

// 配置參數的定義
declare interface CustomDialogControllerOptions {
  builder: any;                                      // 彈框構造器
  cancel?: () => void;                               // 點擊蒙層的事件回調
  autoCancel?: boolean;                              // 點擊蒙層是否自動消失
  alignment?: DialogAlignment;                       // 彈框在豎直方向上的對齊方式
  offset?: Offset;                                   // 根據alignment的偏移
  customStyle?: boolean;                             // 是否是自定義樣式
  gridCount?: number;                                // grid數量
}

CustomDialogController

導入對象

dialogController : CustomDialogController = new CustomDialogController(value:{builder: CustomDialog, cancel?: () => void, autoCancel?: boolean})

open()

open(): void

顯示自定義彈窗內容,若已顯示,則不生效。

close

close(): void

關閉顯示的自定義彈窗,若已關閉,則不生效。

三、UI設計

(1)彈窗實現

本章節的UI設計特別簡單,僅需要實現一個彈窗即可

開介紹,我們需要在@Entry外進行定義,定義類型是@CustomDialog,其基本結構如下(官網)

@CustomDialog
struct CustomDialogExample {
  controller: CustomDialogController
  cancel: () => void
  confirm: () => void

  build() {
    Column() {
      Text('Software uninstall').width('70%').fontSize(20).margin({ top: 10, bottom: 10 })
      Image($r('app.media.icon')).width(80).height(80)
      Text('Whether to uninstall a software?').fontSize(16).margin({ bottom: 10 })
      Flex({ justifyContent: FlexAlign.SpaceAround }) {
        Button('cancel')
          .onClick(() => {
            this.controller.close()
            this.cancel()
          }).backgroundColor(0xffffff).fontColor(Color.Black)
        Button('confirm')
          .onClick(() => {
            this.controller.close()
            this.confirm()
          }).backgroundColor(0xffffff).fontColor(Color.Red)
      }.margin({ bottom: 10 })
    }
  }
}

通過上面的程序可以實現下面的效果

wKgZomRfHz-Abk_WAAZeSwTl3AM866.gif

我們需要對內容和格式進行修改

@CustomDialog
struct CustomBatteryDialog  {
  controller: CustomDialogController
  cancel: () => void
  confirm: () => void

  build() {
    Stack() {
      Column() {
        Text('電池電量不足')
          .fontSize(22)
          .margin({top: 15})
          .fontColor(Color.Black)
        Text('還剩20%電量')
          .fontSize(17)
          .margin({top: 15})
          .fontColor(Color.Red)
        Text()
          .size({width: "100%", height: "2px"})
          .backgroundColor("#bebbc1")
          .margin({top: 15})
        Row() {
          Text("關閉")
            .height("100%")
            .layoutWeight(1)
            .textAlign(TextAlign.Center)
            .fontSize(20)
            .fontColor("#317ef5")
            .onClick(() => {
              this.controller.close(); // 關閉彈窗
            })
          Text()
            .size({width: "2px", height: "100%"})
            .backgroundColor("#bebbc1")
          Text("低電量模式")
            .textAlign(TextAlign.Center)
            .fontSize(20)
            .fontColor("#317ef5")
            .height("100%")
            .layoutWeight(1)
            .onClick(() => {
              this.controller.close(); // 關閉彈窗
            })
        }
        .height(45)
        .width('100%')
      }
      .backgroundColor("#e6ffffff")
      .borderRadius(20)
    }
    .padding({left: 40, right: 40})
    .width("100%")
  }
}

實現效果如下:

wKgaomRfH0CABhXaAABA8VSXUfw733.png

(2)彈窗調用

彈窗調用的函數為this.controller.open(),一般是通過給定事件,像點擊按鈕或者之類,我們這里選擇使用直接彈窗的形式(打開APP就彈窗)

使用到函數為onPageShow(),其位置在該位置:

@Entry 
@Component 
struct Index {

  onPageShow() {
    this.controller.open()

  }

  build() {

  }
}

四、系統演示

wKgZomRfH0CAYKHeAAGNHenO-TQ540.gif

已實現效果,如上圖所示。

編輯:黃飛

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

    關注

    0

    文章

    20

    瀏覽量

    1626
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16473
收藏 人收藏

    評論

    相關推薦

    #深入淺出學習eTs#(八)“猜大小”小游戲

    本項目Gitee倉地址:[深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-17 15:08 ?1055次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>#(八)“猜大小”小游戲

    #深入淺出學習eTs#(十)藍藥丸還是紅藥丸

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-17 15:07 ?981次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>#(十)藍藥丸還是紅藥丸

    ARM7 深入淺出學習

    深入淺出ARM7 LPC213x_214 學習
    發表于 12-04 17:28

    深入淺出排序學習使用指南

    深入淺出排序學習:寫給程序員的算法系統開發實踐
    發表于 09-16 11:38

    #深入淺出學習eTs#(一)模擬器/真機環境搭建

    本項目的Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com
    發表于 12-24 13:02

    #深入淺出學習eTs#(二)拖拽式UI

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 09:56

    #深入淺出學習eTs#(七)判斷密碼是否正確

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 10:06

    #深入淺出學習eTs#(十二)您的電量不足

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 13:50

    深入淺出Cortex-M0學習資料

    深入淺出Cortex-M0學習資料
    發表于 06-18 10:50 ?0次下載
    <b class='flag-5'>深入淺出</b>Cortex-M0<b class='flag-5'>學習</b>資料

    STM32深入淺出新手篇

    STM32深入淺出新手篇,很好的單片機學習資料。
    發表于 03-21 17:43 ?128次下載

    深入淺出學習250個通信原理資源下載

    深入淺出學習250個通信原理資源下載
    發表于 04-12 09:16 ?28次下載

    深入淺出學習低功耗藍牙協議棧

    深入淺出學習低功耗藍牙協議棧
    發表于 06-23 10:35 ?57次下載

    深入淺出學習eTs(一)模擬器/真機環境搭建

    本項目的Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com
    的頭像 發表于 05-13 13:17 ?1743次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(一)模擬器/真機環境搭建

    深入淺出學習eTs(七)如何判斷密碼是否正確

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:20 ?933次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確

    深入淺出學習eTs九宮格密碼鎖功能實現

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:25 ?1631次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b><b class='flag-5'>之</b>九宮格密碼鎖功能實現
    主站蜘蛛池模板: 寂寞夜晚视频在线观看| 99精品视频免费观看| 久久青草在线视频精品| 把腿张开再深点好爽宝贝动态图| 亚洲无碼网站观看| 日韩人妻精品久久日| 久久中文字幕免费视频| 国产美女一区二区| 啊灬啊灬啊灬快高潮视频| 中俄两军在日本海等上空战略巡航| 午夜免费国产体验区免费的| 欧美派对xxxhdparty| 久久中文字幕亚洲| 国产亚洲精品久久久999无毒| qvod电影在线观看| 中文字幕精品在线观看| 亚洲成年男人的天堂网| 少男同志freedeos| 欧美最猛12teevideos| 妈妈的朋友6未删减版完整在线| 国产在线观看成人| 公交车轮C关老师| YY600800新视觉理论私人| 91精品国产入口| 中文字幕久久久| 御姐被吸奶| 伊人国产在线视频| 亚洲精品在线影院| 亚洲精品无码不卡| 亚洲成年人影院| 亚洲AV精品无码国产一区| 忘忧草高清| 手机在线免费| 双性精跪趴灌满h室友4p| 日本视频久久| 日本国产黄色片| 人妻系列合集| 全黄H全肉细节文NP| 欧美人与禽zoz0性伦交app| 女人高潮特级毛片| 欧美gv明星|