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

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

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

3天內不再提示

自定義HarmonyOS啟動頁組件

ITMING ? 來源:ITMING ? 作者:ITMING ? 2023-02-17 13:00 ? 次閱讀

啟動頁作為應用程序首次出現的頁面,該頁面提供一些預加載數據的提前獲取,防止應用程序出現白屏等異常,如是否第一次訪問應用程序并開啟應用歡迎頁;判斷用戶登錄信息進行頁面跳轉;消息信息懶加載等。

常見啟動頁參數如下表所示:

屬性 類型 描述 必填
timer number 倒計時時長,默認3秒 Y
isLogo boolean 顯示圖片類型。
false:常規圖,默認;
true:logo圖
N
backgroundImg ResourceStr 顯示圖片地址 N
companyName string 企業名稱 N
mfontColor ResourceColor 企業名稱字體顏色 N

常見啟動頁方法如下表所示:

方法 類型 描述 必填
skip void 跳轉方法 Y

封裝啟動頁參數類代碼如下所示:

export class Splash {
  // 倒計時時長
  timer: number;
  // 顯示Logo
  isLogo?: boolean = false;
  // 頁面顯示圖片
  backgroundImg?: ResourceStr;
  // 企業名稱
  companyName?: string;
  // 企業名稱字體顏色
  mFontColor?: ResourceColor;

  constructor(timer: number, isLogo?: boolean, backgroundImg?: ResourceStr,
              companyName?: string, mFontColor?: ResourceColor) {
    this.timer = timer;
    this.isLogo = isLogo;
    this.backgroundImg = backgroundImg;
    this.companyName = companyName;
    this.mFontColor = mFontColor;
  }
}

自定義啟動頁組件代碼如下所示:

@Component
export struct SplashPage {

  @State mSplash: Splash = new Splash(3);

  // 跳轉方法
  skip: () => void;

  build() {
    // 底部企業名稱顯示堆疊組件
    Stack({ alignContent: Alignment.Bottom }) {
      // 圖片和倒計時跳轉頁面堆疊組件
      Stack({ alignContent: Alignment.TopEnd }) {
        if (this.mSplash.isLogo) {
          Image(this.mSplash.backgroundImg).objectFit(ImageFit.None)
        }
        Button(`跳過 | ${this.mSplash.timer} s`, { type: ButtonType.Normal })
          .height(42)
          .padding({ left: 16, right: 16 })
          .margin({ top: 16, right: 16 })
          .fontSize(16).fontColor(Color.White)
          .backgroundColor(Color.Gray)
          .borderRadius(8)
          .onClick(() => {
            this.skip();
          })
      }
      .backgroundImage(this.mSplash.isLogo ? null : this.mSplash.backgroundImg)
      .backgroundImageSize(this.mSplash.isLogo ? null : { width: '100%', height: '100%' })
      .width('100%').height('100%')
      if (this.mSplash.companyName) {
        Text(this.mSplash.companyName)
          .width('100%').height(54)
          .fontColor(this.mSplash.mFontColor)
          .fontSize(14).fontWeight(FontWeight.Bold)
          .textAlign(TextAlign.Center)
      }
    }
    .width('100%').height('100%')
  }

  aboutToAppear() {
    // 倒計時處理
    let skipWait = setInterval(() => {
      this.mSplash.timer--;
      if (this.mSplash.timer === 0) {
        clearInterval(skipWait);
        this.skip();
      }
    }, 1000)
  }
}

自定義組件定義完成后,還需要在模塊的index.ets中將組件導出,代碼如下所示:

export { Splash, SplashPage } from './src/main/ets/components/splashpage/SplashPage';

在entry模塊引入自定義模塊teui,打開entry目錄下的package.json并在dependencies依賴列中加入如下代碼:

"@tetcl/teui": "file:../teui"

注:其中"@tetcl/teui"中"tetcl/teui"需要和自定義模塊teui中package.json中name屬性一致。若提交到npm中心倉可直接使用"@tetcl/teui": "版本號"方式引入。引入完成后需要執行編輯器上的Sync now或者npm install進行下載同步。

在具體的頁面中導入自定義啟動頁組件代碼如下所示:

import { Splash as SplashObj, SplashPage } from '@tetcl/teui'
import router from '@ohos.router';

注:為了和頁面名稱不沖突,對Splash作別名處理。

在頁面中引入自定義組件SplashPage并填寫相關屬性值及跳轉方法,代碼如下所示:

@Entry
@Component
struct Splash {

  // 跳轉到Index頁面
  onSkip() {
    router.replaceUrl({
      url: 'pages/Index'
    })
  }

  build() {
    Row() {
      SplashPage({ mSplash: new SplashObj(5, true, $r('app.media.icon'),
        'xxxx有限公司', 0x666666), skip: this.onSkip})
      // 常規圖
      // SplashPage({ mSplash: new SplashObj(5, false, $r('app.media.default_bg'), 
      //  'xxxx有限公司', 0xF5F5F5), skip: this.onSkip})
    }
    .height('100%')
  }
}

預覽效果如下圖所示:

自定義HarmonyOS啟動頁組件-開源基礎軟件社區自定義HarmonyOS啟動頁組件-開源基礎軟件社區

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

    關注

    30

    文章

    4819

    瀏覽量

    68881
  • HarmonyOS
    +關注

    關注

    79

    文章

    1980

    瀏覽量

    30403
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發實例:【自定義Emitter】

    使用[Emitter]實現事件的訂閱和發布,使用[自定義彈窗]設置廣告信息。
    的頭像 發表于 04-14 11:37 ?1034次閱讀
    <b class='flag-5'>HarmonyOS</b>開發實例:【<b class='flag-5'>自定義</b>Emitter】

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

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

    講解一下HarmonyOS中的幾個自定義組件用到的知識

    HarmonyOS 的 Component 組件對外提供了一個 DrawTask 接口,通過 addDrawTask 方法為組件添加一個 DrawTask,讓開發者可以進行自定義繪制邏
    發表于 03-16 16:05

    OpenHarmony自定義組件介紹

    觀察到了變化,將啟動重新渲染。 2.根據框架持有的兩個map(自定義組件的創建和渲染流程中第4步),框架可以知道該狀態變量管理了哪些UI組件,以及這些UI
    發表于 09-25 15:36

    鴻蒙上自定義組件的過程

    ?? 在實際開發過程中,我們經常會遇到一些系統原有組件無法滿足的情況,而 HarmonyOS 提供了自定義組件的方式,我們使用自定義
    的頭像 發表于 11-10 09:27 ?2951次閱讀
    鴻蒙上<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>的過程

    HarmonyOS 中的幾個自定義控件介紹

    HarmonyOS 開發自定義組件目前還不是很豐富,在開發過程中常常會有一些特殊效果的組件,這就需要我們額外花一些時間實現。
    的頭像 發表于 01-04 13:49 ?2292次閱讀

    OpenHarmony自定義組件:ClearableInput和Keyboard

    組件介紹: 本示例包含了兩個OpenHarmony自定義組件,一個是ClearableInput,另一個是Keyboard。 ClearableInput 定義了一個帶清空圖標的文本輸
    發表于 03-18 15:21 ?1次下載
    OpenHarmony<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>:ClearableInput和Keyboard

    OpenHarmony自定義組件FlowImageLayout

    組件介紹 本示例是OpenHarmony自定義組件FlowImageLayout。 用于將一個圖片列表以瀑布流的形式顯示出來。 調用方法
    發表于 03-21 10:17 ?3次下載
    OpenHarmony<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>FlowImageLayout

    OpenHarmony自定義組件ProgressWithText

    組件介紹 本示例是OpenHarmony自定義組件ProgressWithText。 在原來進度條的上方加了一個文本框,動態顯示當前進度并調整位置。 調用方法
    發表于 03-23 14:03 ?1次下載
    OpenHarmony<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>ProgressWithText

    OpenHarmony自定義組件CircleProgress

    組件介紹 本示例是OpenHarmony自定義組件CircleProgress。 用于定義一個帶文字的圓形進度條。 調用方法
    發表于 03-23 14:06 ?4次下載
    OpenHarmony<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>CircleProgress

    適用于鴻蒙的自定義組件框架Carbon案例教程

    項目名稱:Carbon 所屬系列:ohos的第三方組件適配移植 功能:一個適用于鴻蒙的自定義組件框架,幫助快速實現各種需要的效果 項目移植狀態:大部分移植 調用差異:基本沒有使用差異,可以參照
    發表于 04-07 09:49 ?5次下載

    自定義視圖組件教程案例

    自定義組件 1.自定義組件-particles(粒子效果) 2.自定義組件- pulse(脈沖b
    發表于 04-08 10:48 ?14次下載

    添加自定義屬性控制fridaserver啟動和停止

    添加自定義屬性控制fridaserver啟動和停止
    的頭像 發表于 08-09 10:08 ?1807次閱讀
    添加<b class='flag-5'>自定義</b>屬性控制fridaserver<b class='flag-5'>啟動</b>和停止

    鴻蒙ArkUI實例:【自定義組件

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統
    的頭像 發表于 04-08 10:17 ?679次閱讀

    HarmonyOS開發案例:【UIAbility和自定義組件生命周期】

    本文檔主要描述了應用運行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發表于 05-10 15:31 ?1312次閱讀
    <b class='flag-5'>HarmonyOS</b>開發案例:【UIAbility和<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>生命周期】
    主站蜘蛛池模板: 欧美一区二区三区久久综| 欧美手机在线| 暖暖日本在线手机免费完整版| 性xxx免费视频| 美女穿丝袜被狂躁动态图| 亚洲国产精品VA在线看黑人| 国产福利一区二区精品| 色吧电影院| 国产WW高清大片免费看| 十分钟在线观看免费视频高清WWW| 春药按摩人妻中文字幕| 欧美亚洲日韩在线在线影院| xxx365| 如懿传免费观看在线全集| 国产精片久久久久久婷婷| 午夜国产羞羞视频免费网站| 国产亚洲精品免费视频| 亚洲伊人成综合人影院| 久久视频精品38线视频在线观看| 岳扒开让我添| 欧美精品专区免费观看| 成人免费视频一区| 天天久久影视色香综合网| 好爽别插了无码视频| 曰本aaaaa毛片午夜网站| 男女后进式猛烈xx00动态图片 | 三级全黄的视频| 国产精品永久在线| 诱受H嗯啊巨肉舍友1V1| 暖暖日本 在线 高清| 国产成人a视频在线观看| 亚洲合集综合久久性色| 久久热免费视频| 被黑人群jian又粗又大H| 熟妇久久无码人妻AV蜜桃| 精品久久久爽爽久久久AV| 99热久久这里只有精品视频| 无毒成人社区| 乱子伦在线观看中文字幕| 囯产少妇BBBBBB高潮喷水一 | 亚州三级视频|