一、需求分析

本章節(jié)我們來(lái)制作一個(gè)程序猿笑話(huà),《項(xiàng)目經(jīng)理要求這里運(yùn)行緩慢,好讓客戶(hù)給錢(qián)優(yōu)化》,在這里選擇使用OpenAtom OpenHarmony新上的一個(gè)組件來(lái)實(shí)現(xiàn),并且通過(guò)動(dòng)態(tài)式更新組件寬度和高度的方式,在同一個(gè)頁(yè)面實(shí)現(xiàn)不同的呈現(xiàn)效果
頁(yè)面跳轉(zhuǎn)
動(dòng)態(tài)調(diào)整組件
實(shí)現(xiàn)反應(yīng)快慢的調(diào)節(jié)
本章節(jié)于#深入淺出學(xué)習(xí)eTs#(七)判斷密碼是否正確上修改
二、控件介紹
(1)LoadingProgressOpenAtom OpenHarmony
用于顯示加載進(jìn)展。
說(shuō)明:
該組件從API Version 8開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
LoadingProgress()
創(chuàng)建加載進(jìn)展組件。
屬性
| 名稱(chēng) | 參數(shù)類(lèi)型 | 描述 |
|---|---|---|
| color | ResourceColor | 設(shè)置加載進(jìn)度條前景色。 |

// 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)頁(yè)面路由
本模塊首批接口從API version 8開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
頁(yè)面路由需要在頁(yè)面渲染完成之后才能調(diào)用,在onInit和onReady生命周期中頁(yè)面還處于渲染階段,禁止調(diào)用頁(yè)面路由方法。
1、導(dǎo)入模塊
import router from '@ohos.router'
2、router.push(跳轉(zhuǎn)到應(yīng)用內(nèi)的指定頁(yè)面。)
router.push({ // 使用push入棧一個(gè)新頁(yè)面
url: "pages/USED" // 通過(guò)url指定新打開(kāi)的頁(yè)面
})
3、router.replace(用應(yīng)用內(nèi)的某個(gè)頁(yè)面替換當(dāng)前頁(yè)面,并銷(xiāo)毀被替換的頁(yè)面)
// 在當(dāng)前頁(yè)面中
export default {
replacePage() {
router.replace({
url: 'pages/detail/detail',
params: {
data1: 'message',
},
});
}
}
4、router.back(返回上一頁(yè)面或指定的頁(yè)面)
export default {
indexPushPage() {
router.push({
url: 'pages/detail/detail',
});
}
}
(3)定時(shí)器實(shí)現(xiàn)
private Run_Get() {
var T = setInterval(() => {
if (this.Num == 0) {
clearTimeout(T)
}
}, 1000)
}
三、UI設(shè)計(jì)
(1)動(dòng)態(tài)組件
這里選擇使用變量來(lái)充當(dāng)組件寬度和高度的方式,首先新建變量
@State LO_H: string = '400' @State LO_W: string = '400' @State SEC: number = 5 @State B_H: string = '0' @State B_w: string = '0'
此時(shí)在頁(yè)面內(nèi)放置一個(gè)LoadingProgress和一個(gè)Text
Row() {
Column({ space: 5 }) {
Text("歡迎VIP用戶(hù)")
.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%')

(2)放置定時(shí)器
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后,實(shí)現(xiàn)一個(gè)TXT文檔顯示

(3)頁(yè)面跳轉(zhuǎn)
if(this.QQ == "11066")
{
this.Password = '登錄成功'
router.push({ // 使用push入棧一個(gè)新頁(yè)面
url: "pages/USED" // 通過(guò)url指定新打開(kāi)的頁(yè)面
})
}else
{
this.Password = '登錄失敗'
}

四、動(dòng)態(tài)顯示
(1)5秒測(cè)試

(2)2秒測(cè)試

(3)總結(jié)
現(xiàn)在程序效率優(yōu)化了60%,是不是一定會(huì)給我漲工資呀
編輯:黃飛
-
組件
+關(guān)注
關(guān)注
1文章
550瀏覽量
18914 -
ets
+關(guān)注
關(guān)注
0文章
20瀏覽量
1885 -
OpenHarmony
+關(guān)注
關(guān)注
31文章
3920瀏覽量
20677
發(fā)布評(píng)論請(qǐng)先 登錄
#深入淺出學(xué)習(xí)eTs#(八)“猜大小”小游戲
#深入淺出學(xué)習(xí)eTs#(九)變紅碼?專(zhuān)屬二維碼生成
#深入淺出學(xué)習(xí)eTs#(十)藍(lán)藥丸還是紅藥丸
#深入淺出學(xué)習(xí)eTs#(一)模擬器/真機(jī)環(huán)境搭建
#深入淺出學(xué)習(xí)eTs#(六)編寫(xiě)eTs第一個(gè)控件
#深入淺出學(xué)習(xí)eTs#(七)判斷密碼是否正確
深入淺出學(xué)習(xí)eTs(一)模擬器/真機(jī)環(huán)境搭建
深入淺出學(xué)習(xí)eTs(七)如何判斷密碼是否正確
深入淺出學(xué)習(xí)eTs之九宮格密碼鎖功能實(shí)現(xiàn)

深入淺出學(xué)習(xí)eTs之程序效率優(yōu)化組件
評(píng)論