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

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

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

ETS是否適合金融界面的開(kāi)發(fā)

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者:正平_CSII ? 2022-04-21 07:48 ? 次閱讀

HarmonyOS 在去年年底已經(jīng)更新了 API7,最大的更新就是基于 TS 擴(kuò)展的聲明式開(kāi)發(fā)范式的方舟開(kāi)發(fā)框架。

538cb1f2-c0fe-11ec-bce3-dac502259ad0.png

初步嘗試還不錯(cuò),所以仿寫了一個(gè) DecEco-Studio 里面的一個(gè)金融首頁(yè)界面,為后面的公司業(yè)務(wù)鋪路,同時(shí)也測(cè)試一下 ETS 是否適合金融界面的開(kāi)發(fā)。

界面效果

如下圖:

53ab2416-c0fe-11ec-bce3-dac502259ad0.png

53f401c2-c0fe-11ec-bce3-dac502259ad0.png

界面架構(gòu)

這是一個(gè)包含底部?jī)蓚€(gè) Tab 的界面,每個(gè)界面都含有搜索、輪播、菜單等業(yè)務(wù)模塊。

所以界面實(shí)現(xiàn)我們一步一步來(lái),先實(shí)現(xiàn) Tabs,再拆分成兩個(gè) ETS 界面,每個(gè)界面進(jìn)行業(yè)務(wù)模塊拆分。

搭建框架

ETS 里面有豐富的組件,但是內(nèi)置的 Tabs 組件并不支持圖片,所以只能自定義一個(gè) Tabs。

因?yàn)樵诘撞壳夜潭ǎ砸褂?Stack 布局,兩個(gè) ETS 界面在上面顯示。

importMinePagefrom'./MinePage.ets';
importHomePagefrom'./HomePage.ets';

@Entry
@Component
structIndex{
@StatetabIndex:number=0;
privatetabSelectColor:string="#095AF8";
privatetabColor:string="#BFC0C2";

build(){
Stack({alignContent:Alignment.BottomStart}){
if(this.tabIndex==0){
HomePage()
}
if(this.tabIndex==1){
MinePage()
}
Divider().color("#F5F5F5")
Flex({direction:FlexDirection.Row,alignItems:ItemAlign.Center,justifyContent:FlexAlign.SpaceAround}){
Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Center,justifyContent:FlexAlign.Center}){
Image(this.tabIndex==0?"/common/images/main_click.png":"/common/images/main.png")
.objectFit(ImageFit.Fill)
.width(30)
.height(30)
Text("首頁(yè)")
.fontColor(this.tabIndex==0?this.tabSelectColor:this.tabColor)
.fontSize(14)
.margin({top:3})
}.onClick(()=>{
this.tabIndex=0;
})

Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Center,justifyContent:FlexAlign.Center}){
Image(this.tabIndex==1?"/common/images/life_click.png":"/common/images/life.png")
.objectFit(ImageFit.Fill)
.width(30)
.height(30)
Text("生活")
.fontColor(this.tabIndex==1?this.tabSelectColor:this.tabColor)
.fontSize(14)
.margin({top:3})
}.onClick(()=>{
this.tabIndex=1;
})
}.width("100%")
.height(70)
.backgroundColor("#F3F4F6")
}.width("100%").height("100%")
}
}

以上代碼呢實(shí)現(xiàn)邏輯其實(shí)很簡(jiǎn)單,就是底部固定布局實(shí)現(xiàn)了自定義的 Tabs,然后判斷當(dāng)前處于界面,更新底部圖片、顏色和界面切換。

界面實(shí)現(xiàn)

通過(guò)圖片會(huì)發(fā)現(xiàn),界面有很多業(yè)務(wù)模塊組成且鋪滿一屏,外面肯定要有一個(gè) Scroll。

整體代碼堆在一個(gè) ets 文件有點(diǎn)不優(yōu)雅,每個(gè)業(yè)務(wù)模塊都由一個(gè) ets 封裝一個(gè)組件實(shí)現(xiàn)比較美觀。

540e37fe-c0fe-11ec-bce3-dac502259ad0.png

然后業(yè)務(wù)模塊組件整體放在界面里面:

importHomeSearchBarfrom'../components/HomeSearchBar.ets';
importHomeHeaderfrom'../components/HomeHeader.ets';
importRecommendMenufrom'../components/RecommendMenu.ets';
importNewsListfrom'../components/NewsList.ets';
importAdSwiperfrom'../components/AdSwiper.ets';
importNoticeBarfrom'../components/NoticeBar.ets';

@Component
structHomePage{
privatescroller:Scroller=newScroller()
@StatehomeOpacityNumber:number=0

build(){
Stack({alignContent:Alignment.TopStart}){
Scroll(this.scroller){
Flex({direction:FlexDirection.Column,justifyContent:FlexAlign.Start,alignItems:ItemAlign.Start}){
HomeHeader()
NoticeBar()
AdSwiper()
RecommendMenu()
NewsList()
}
.width('100%')
.backgroundColor("#F2F2F2")
}
.width('100%')
.margin({top:60})
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.Off)
.onScroll((xOffset:number,yOffset:number)=>{
console.info(xOffset+''+yOffset)
this.homeOpacityNumber=(this.scroller.currentOffset().yOffset)/100;
})
HomeSearchBar({opacityNumber:this.homeOpacityNumber})
}.width("100%")
.height("100%")
}
}

exportdefaultHomePage

這樣的話布局和業(yè)務(wù)模塊就很清晰了,每個(gè)模塊直接相互之間不會(huì)影響,這樣可能會(huì)影響包體積,但是代碼結(jié)構(gòu)和邏輯會(huì)更清晰。

由于篇幅有限,暫不展開(kāi)每個(gè)業(yè)務(wù)模塊組件的具體實(shí)現(xiàn),后面會(huì)針對(duì)每個(gè)組件實(shí)現(xiàn)一一展開(kāi)。

總結(jié)

ETS 開(kāi)發(fā)界面還是比較爽的,整體開(kāi)發(fā)效率不輸 Vue 或者 React 等前端框架,而且對(duì) hap 的體積(未來(lái)要上架原子化服務(wù))影響不是特別大,未來(lái)是完全可以考慮應(yīng)用到公司的業(yè)務(wù)開(kāi)發(fā)中,期待 HarmonyOS 3.0!

原文標(biāo)題:HarmonyOS基于ETS開(kāi)發(fā)金融界面

文章出處:【微信公眾號(hào):HarmonyOS技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    0

    文章

    359

    瀏覽量

    40745
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4674

    瀏覽量

    67819
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1949

    瀏覽量

    29775

原文標(biāo)題:HarmonyOS基于ETS開(kāi)發(fā)金融界面

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于eTS的HamronyOS應(yīng)用開(kāi)發(fā)

    隨著HarmonyOS 3.0 Beta版的發(fā)布,API Version 8新增了大批JS/eTS API接口,相信很多開(kāi)發(fā)者已經(jīng)迫不及待想體驗(yàn)基于eTS的HamronyOS應(yīng)用開(kāi)發(fā)。
    的頭像 發(fā)表于 07-15 09:20 ?1908次閱讀
    基于<b class='flag-5'>eTS</b>的HamronyOS應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>

    基于ArkUI eTS開(kāi)發(fā)的堅(jiān)果食譜(NutRecipes)

    基于ArkUI eTS開(kāi)發(fā)的堅(jiān)果食譜(NutRecipes)
    的頭像 發(fā)表于 08-18 08:23 ?1422次閱讀
    基于ArkUI <b class='flag-5'>eTS</b><b class='flag-5'>開(kāi)發(fā)</b>的堅(jiān)果食譜(NutRecipes)

    基于ArkUI eTS開(kāi)發(fā)的堅(jiān)果笑話(NutJoke)

    ? 都說(shuō)笑一笑十年少,確實(shí),在生活中,我們也是很久沒(méi)有笑了,那么今天,我就做一個(gè)鴻蒙eTS版的堅(jiān)果笑話App, 實(shí)現(xiàn)的功能: 獲取接口數(shù)據(jù) 笑話列表 笑話詳情頁(yè) 你能學(xué)到的有: 網(wǎng)絡(luò)請(qǐng)求 可滾動(dòng)組件
    的頭像 發(fā)表于 08-19 09:59 ?1214次閱讀

    HarmonyOS應(yīng)用開(kāi)發(fā)-eTS文件說(shuō)明

    1. 目錄結(jié)構(gòu)FA應(yīng)用的ets模塊(entry/src/main)的典型開(kāi)發(fā)目錄結(jié)構(gòu)如下:目錄結(jié)構(gòu)中文件分類如下:·.ets結(jié)尾的ETS(Extended TypeScript)文件,
    發(fā)表于 12-23 10:40

    entry模塊里面的index.ets如何跳轉(zhuǎn)到另外一個(gè)xxx.ets頁(yè)面呢

      ArkUI框架,如何跳轉(zhuǎn)到HarmonyOS Library里面的page呢?  entry模塊里面的index.ets,如何跳轉(zhuǎn)到另外一個(gè)Module(library)里面實(shí)現(xiàn)的xxx.
    發(fā)表于 03-14 17:06

    100行代碼實(shí)現(xiàn)HarmonyOS“畫圖”應(yīng)用,eTS開(kāi)發(fā)走起!

    所示。 圖5 “設(shè)置畫筆”界面 至此,“畫圖”應(yīng)用就開(kāi)發(fā)完成啦!感興趣的小伙伴也可以去嘗試開(kāi)發(fā)哦~ 三、學(xué)習(xí)資源 使用eTS語(yǔ)言開(kāi)發(fā),僅
    發(fā)表于 03-30 14:28

    基于eTS高效開(kāi)發(fā)HarmonyOS課程類應(yīng)用

    配置等。 相較于基于Java的命令式開(kāi)發(fā),eTS采用更接近自然語(yǔ)義的聲明式編程語(yǔ)法,讓開(kāi)發(fā)者可以更直觀地描述UI界面,有效地降低了開(kāi)發(fā)者的上
    發(fā)表于 07-15 11:33

    VxWorks下圖形用戶界面的開(kāi)發(fā)

    VxWorks下圖形用戶界面的開(kāi)發(fā)
    發(fā)表于 03-25 10:45 ?19次下載

    人機(jī)界面的開(kāi)發(fā)與應(yīng)用

    人機(jī)界面的開(kāi)發(fā)與應(yīng)用彭彥卿,廈門理工學(xué)院電子與電氣工程系,廈門市廈港新村72號(hào)605,361005[摘 要] 研究人機(jī)界面主畫面、參數(shù)設(shè)定與顯示畫面、報(bào)警顯示畫面的
    發(fā)表于 11-01 09:25 ?21次下載

    金融界首顆物聯(lián)網(wǎng)衛(wèi)星平安1號(hào)成功發(fā)射

    2020年12月22日12時(shí)37分,萬(wàn)眾期待的長(zhǎng)征八號(hào)在海南文昌發(fā)射場(chǎng)首飛成功,本次運(yùn)載的衛(wèi)星當(dāng)中包含由平安銀行定制,國(guó)電高科研發(fā)的首顆金融界物聯(lián)網(wǎng)衛(wèi)星"平安1號(hào)"(天啟星座08星)。
    的頭像 發(fā)表于 12-22 16:45 ?1794次閱讀

    剖析ETS汽車芯片有效縮短開(kāi)發(fā)周期

    作者:Axel Kleinpaul,Senior Staff Engineer 易于入門芯片(ETS MCU)設(shè)計(jì)旨在滿足汽車應(yīng)用的嚴(yán)格質(zhì)量和可靠性需求,但它們同樣也非常適合工業(yè)甚至消費(fèi)類
    的頭像 發(fā)表于 06-30 11:14 ?2073次閱讀

    基于ETS開(kāi)發(fā)范式制作Loading組件

    最近剛接觸基于 OpenHarmony 開(kāi)源框架的應(yīng)用開(kāi)發(fā),特別是基于 JS/ETS 開(kāi)發(fā)范式。
    的頭像 發(fā)表于 04-12 08:56 ?1261次閱讀

    OpenHarmony應(yīng)用開(kāi)發(fā)ETS開(kāi)發(fā)方式Image組件

    今天帶大家了解ETS開(kāi)發(fā)方式中的Image組件
    的頭像 發(fā)表于 07-03 12:06 ?3330次閱讀
    OpenHarmony應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>之<b class='flag-5'>ETS</b><b class='flag-5'>開(kāi)發(fā)</b>方式Image組件

    面向界面的圖形化測(cè)試技術(shù)

    面向界面的圖形化測(cè)試是一種常用的軟件測(cè)試方法,旨在驗(yàn)證用戶界面是否符合業(yè)務(wù)規(guī)范和用戶需求,以及驗(yàn)證應(yīng)用程序的功能是否正確響應(yīng)用戶操作,以保證應(yīng)用程序的質(zhì)量和穩(wěn)定性。
    的頭像 發(fā)表于 04-21 11:03 ?761次閱讀
    面向<b class='flag-5'>界面的</b>圖形化測(cè)試技術(shù)

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

    本項(xiàng)目Gitee倉(cāng)地址: 深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com) 一、基本界面 本項(xiàng)目基于#深入淺出學(xué)習(xí)eTs#(四)登陸
    的頭像 發(fā)表于 05-13 13:20 ?817次閱讀
    深入淺出學(xué)習(xí)<b class='flag-5'>eTs</b>(七)如何判斷密碼<b class='flag-5'>是否</b>正確