精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內(nèi)不再提示

自定義HarmonyOS啟動頁組件

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

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

常見啟動頁參數(shù)如下表所示:

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

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

方法 類型 描述 必填
skip void 跳轉(zhuǎn)方法 Y

封裝啟動頁參數(shù)類代碼如下所示:

export class Splash {
  // 倒計時時長
  timer: number;
  // 顯示Logo
  isLogo?: boolean = false;
  // 頁面顯示圖片
  backgroundImg?: ResourceStr;
  // 企業(yè)名稱
  companyName?: string;
  // 企業(yè)名稱字體顏色
  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);

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

  build() {
    // 底部企業(yè)名稱顯示堆疊組件
    Stack({ alignContent: Alignment.Bottom }) {
      // 圖片和倒計時跳轉(zhuǎn)頁面堆疊組件
      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": "版本號"方式引入。引入完成后需要執(zhí)行編輯器上的Sync now或者npm install進行下載同步。

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

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

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

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

@Entry
@Component
struct Splash {

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

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

預覽效果如下圖所示:

自定義HarmonyOS啟動頁組件-開源基礎(chǔ)軟件社區(qū)自定義HarmonyOS啟動頁組件-開源基礎(chǔ)軟件社區(qū)

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

    關(guān)注

    30

    文章

    4753

    瀏覽量

    68369
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1967

    瀏覽量

    30036
收藏 人收藏

    評論

    相關(guān)推薦

    HarmonyOS開發(fā)實例:【自定義Emitter】

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

    HarmonyOS開發(fā)案例:【 自定義彈窗】

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

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

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

    OpenHarmony自定義組件介紹

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

    鴻蒙上自定義組件的過程

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

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

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

    OpenHarmony自定義組件:ClearableInput和Keyboard

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

    OpenHarmony自定義組件FlowImageLayout

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

    OpenHarmony自定義組件ProgressWithText

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

    OpenHarmony自定義組件CircleProgress

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

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

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

    自定義視圖組件教程案例

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

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

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

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

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

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

    本文檔主要描述了應用運行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發(fā)表于 05-10 15:31 ?1191次閱讀
    <b class='flag-5'>HarmonyOS</b>開發(fā)案例:【UIAbility和<b class='flag-5'>自定義</b><b class='flag-5'>組件</b>生命周期】