<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天內不再提示

深入淺出學習eTs之程序效率優化組件

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

一、需求分析

wKgaomRfIEiAGaMwAAI88RtKOxM873.png

本章節我們來制作一個程序猿笑話,《項目經理要求這里運行緩慢,好讓客戶給錢優化》,在這里選擇使用OpenAtom OpenHarmony新上的一個組件來實現,并且通過動態式更新組件寬度和高度的方式,在同一個頁面實現不同的呈現效果

頁面跳轉

動態調整組件

實現反應快慢的調節

本章節于#深入淺出學習eTs#(七)判斷密碼是否正確上修改

二、控件介紹

(1)LoadingProgressOpenAtom OpenHarmony

用于顯示加載進展。

說明:

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

接口

LoadingProgress()

創建加載進展組件。

屬性

名稱 參數類型 描述
color ResourceColor 設置加載進度條前景色。


wKgZomRfIEmAaml1AAWQKRiWlq0235.gif

// xxx.ets
@Entry
@Component
struct LoadingProgressExample {
  build() {
    Column({ space: 5 }) {
      Text('Orbital LoadingProgress ').fontSize(9).fontColor(0xCCCCCC).width('90%')
      LoadingProgress()
        .color(Color.Blue)
    }.width('100%').margin({ top: 5 })
  }
}

(2)頁面路由

本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

頁面路由需要在頁面渲染完成之后才能調用,在onInit和onReady生命周期中頁面還處于渲染階段,禁止調用頁面路由方法。

1、導入模塊

import router from '@ohos.router'

2、router.push(跳轉到應用內的指定頁面。)

            router.push({          // 使用push入棧一個新頁面
                url: "pages/USED"  // 通過url指定新打開的頁面
              })

3、router.replace(用應用內的某個頁面替換當前頁面,并銷毀被替換的頁面)

// 在當前頁面中
export default {
  replacePage() {
    router.replace({
      url: 'pages/detail/detail',
      params: {
        data1: 'message',
      },
    });
  }
}

4、router.back(返回上一頁面或指定的頁面)

export default {    
  indexPushPage() {        
    router.push({            
      url: 'pages/detail/detail',        
    });        
  }
}

(3)定時器實現

  private Run_Get() {
    var T = setInterval(() => {
      if (this.Num == 0) {
        clearTimeout(T)
      }
    }, 1000)
  }

三、UI設計

(1)動態組件

這里選擇使用變量來充當組件寬度和高度的方式,首先新建變量

  @State LO_H: string = '400'
  @State LO_W: string = '400'
  @State SEC: number = 5
  @State B_H: string = '0'
  @State B_w: string = '0'

此時在頁面內放置一個LoadingProgress和一個Text

    Row() {
      Column({ space: 5 }) {

        Text("歡迎VIP用戶")
          .fontSize('50')
          .width(this.B_H)
          .height(this.B_w)
        LoadingProgress()
          .color(Color.Blue)
          .width(this.LO_H)
          .height(this.LO_W)

      }.width('100%').margin({ top: 5 })
    }
    .height('100%')

wKgaomRfIEmAdTcHAABoRct9N58405.png

(2)放置定時器

  private Run_Get() {
    var T = setInterval(() => {
      if (this.SEC == 0) {
        this.LO_H = '0';
        this.LO_W = '0';
        this.B_H = '200';
        this.B_w = '200';
        clearTimeout(T)
      }else
      {
        this.SEC -= 1;
      }

    }, 1000)
  }



  onPageShow(){
    this.Run_Get()
  }

在5s后,實現一個TXT文檔顯示

wKgZomRfIEqAJ8kCAABHKN__3as701.png

(3)頁面跳轉

         if(this.QQ == "11066")
            {
              this.Password = '登錄成功'
              router.push({          // 使用push入棧一個新頁面
                url: "pages/USED"  // 通過url指定新打開的頁面
              })
            }else
            {
              this.Password = '登錄失敗'
            }
wKgaomRfIEuAE_OeAAB0hP5l-G0861.png

四、動態顯示

(1)5秒測試

wKgZomRfIEuABjbqAAzy3njwoaI225.gif

(2)2秒測試

wKgaomRfIEyAOSDkAActCrmwM-k382.gif

(3)總結

現在程序效率優化了60%,是不是一定會給我漲工資呀

編輯:黃飛

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

    關注

    1

    文章

    381

    瀏覽量

    17658
  • ets
    ets
    +關注

    關注

    0

    文章

    20

    瀏覽量

    1578
  • OpenHarmony
    +關注

    關注

    24

    文章

    3443

    瀏覽量

    15331
收藏 人收藏

    評論

    相關推薦

    深入淺出AVR

    深入淺出AVR,一本書。
    發表于 07-15 12:02

    深入淺出Android

    深入淺出Android
    發表于 08-20 10:14

    ARM7 深入淺出學習

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

    深入淺出Android

    深入淺出Android
    發表于 04-26 10:48

    深入淺出AVR

    深入淺出AVR
    發表于 08-23 10:10

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

    深入淺出排序學習:寫給程序員的算法系統開發實踐
    發表于 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#(三)UI布局

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

    #深入淺出學習eTs#(四)登陸界面UI

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

    #深入淺出學習eTs#(五)eTs語言初識

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

    #深入淺出學習eTs#(六)編寫eTs第一個控件

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

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

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

    #深入淺出學習eTs#(十一)別忘了吃藥喔

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

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

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:20 ?708次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確
    亚洲欧美日韩精品久久_久久精品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>