運(yùn)動(dòng)記錄Demo的列表界面介紹
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??
前言
在參加了"HarmonyOS ArkUI入門(mén)訓(xùn)練營(yíng)——健康生活實(shí)戰(zhàn)"后,了解并學(xué)習(xí)了聲明式UI開(kāi)發(fā)框架及組件用法,本文是對(duì)筆者結(jié)營(yíng)作品中的列表界面作一個(gè)小分享,涉及到List組件和Tabs組件的使用。
概述
這是一個(gè)運(yùn)動(dòng)記錄的應(yīng)用,主要用于管理健康記錄運(yùn)動(dòng)??梢蕴砑舆\(yùn)動(dòng)信息,包括運(yùn)動(dòng)名稱(chēng)、運(yùn)動(dòng)時(shí)長(zhǎng),并自動(dòng)計(jì)算消耗的卡路里,在記錄頁(yè)面可以查看所添加的運(yùn)動(dòng)記錄。其界面效果圖如下:
正文
一、新建運(yùn)動(dòng)數(shù)據(jù)類(lèi)
在MainAbility目錄下新建文件夾model,在model文件夾中新建兩個(gè)ets文件,分別命名為SportsData,SportsDataModel,如圖:
在 SportsData 中添加代碼:
在 SportsDataModel 中添加代碼:
二、List組件的使用
1、定義子組件的布局
為了方便預(yù)覽,可以用 @Preview 裝飾,然后打開(kāi)預(yù)覽器,點(diǎn)擊圖示位置顯示。
為了方便調(diào)試,可以先把數(shù)據(jù)用靜態(tài)數(shù)據(jù)代替,代碼如下。
2、列表組件的渲染
Scroll是可滾動(dòng)容器組件,傳入運(yùn)動(dòng)類(lèi)的數(shù)組,用ForEach循環(huán)遍歷渲染,傳參給子組件SportsGridItem。
到此步實(shí)現(xiàn)的是在一個(gè)列表里把所有子項(xiàng)列出來(lái),但想要的效果是按類(lèi)別將子項(xiàng)分類(lèi)來(lái)顯示,那就繼續(xù)看下去吧~
三、Tabs組件的使用
為了讓頁(yè)簽更好看,從文檔中可以看到TabContent的TabBar屬性可選CustomBuilder類(lèi)型,進(jìn)一步可查看該自定義的組件屬性方法,需要用 @Builder 裝飾。
看完文檔后,那就用起來(lái)~,代碼如下:
為了實(shí)現(xiàn)按類(lèi)別進(jìn)行列表展示,即要對(duì)數(shù)據(jù)類(lèi)的Category進(jìn)行檢索分類(lèi)來(lái)渲染。通過(guò)學(xué)習(xí)直播課程,知道有filter這個(gè)方法,可以對(duì)每個(gè)子項(xiàng)遍歷使用。
于是總體代碼如下:
最后,在底部的頁(yè)簽組件中添加使用、以及運(yùn)動(dòng)類(lèi)和記錄類(lèi)的數(shù)據(jù)使用、搜索界面的實(shí)現(xiàn)等內(nèi)容,預(yù)告在下一篇文章啦,歡迎評(píng)論區(qū)交流~
結(jié)語(yǔ)
以上就是本次的小分享啦!
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??