精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于ArkUI的運動記錄Demo

系統 OpenHarmony
本文主要介紹的是搜索欄跳轉至搜索結果界面,以及前述文章介紹的組件的應用。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

在參加了"HarmonyOS ArkUI入門訓練營——健康生活實戰"后,了解并學習了聲明式UI開發框架及組件用法,本文是對筆者結營作品中作一個小分享。在筆者上篇及前篇文章中,已對本demo作了部分組件的介紹,本文將對剩余部分作介紹分享~

概述

本文主要介紹的是搜索欄跳轉至搜索結果界面,以及前述文章介紹的組件的應用。效果圖如下:

#打卡不停更#【木棉花】:基于ArkUI的運動記錄Demo-開源基礎軟件社區

正文

一、工程文件架構

#打卡不停更#【木棉花】:基于ArkUI的運動記錄Demo-開源基礎軟件社區

二、完善主界面及數據的傳遞

1、數據傳遞實現運動記錄的增刪改查

由于運動記錄的增刪改查是在彈窗組件的點擊事件里相應的,起初我是打算使用@Link來傳遞數據的,但是在自定義彈窗組件的builder里會對$修飾的變量報錯,于是我就改用全局變量了。為了響應變量的狀態變化,用@State裝飾。也許用數據庫會更方便些,后期再作優化吧!

var RDArray: Array<RecordData> = []
var RSports: Array<SportsData> = []

Record 彈窗下定義變量。

@State RecordDataArray: Array<RecordData> = RDArray
@State RecordSports: Array<SportsData> = RSports

在上上篇文章提到的彈窗組件中,定義點擊事件。“修改記錄”模式下,“刪除記錄”按鍵的“確定”響應代碼如下:

secondaryButton: {
value: '確定',
action: () => {
RDArray.splice(this.item_index, 1)
RSports.splice(this.item_index, 1)
this.controller.close()
}

主彈窗右上角的“確定”按鍵響應代碼如下:

if (this.mode == 0) {
RDArray.push({
'name': this.sportsItem.name,
'image': this.sportsItem.image,
'time': this.time,
'sum': this.sum
})
RSports.push(this.sportsItem)
}
else if (this.mode == 1) {
RDArray[this.item_index]=
{
'name': this.sportsItem.name,
'image': this.sportsItem.image,
'time': this.time,
'sum': this.sum
}
RSports.push(this.sportsItem)
}

2、完善主頁面

主頁面底部是有兩個頁簽的導航欄,第一個頁簽顯示目錄界面,該界面的頂部有一個搜索欄,與下方的目錄成縱向布局,第二個頁簽顯示記錄界面。記錄界面的組件與上篇文章提到的List組件用法無異,只是渲染的數據不同罷了,代碼相似所以本文就不介紹了。此外對于記錄界面,若無記錄則顯示“暫無記錄”,為了讓界面美觀些,筆者給背景添加了圖片。點擊“搜索”按鍵時會帶參跳轉至搜索結果的頁面’pages/search_result’,代碼如下:

@Entry
@Component
struct SportsCategoryList {
@State RDArray: Array<RecordData> = RDArray
@State RSports: Array<SportsData> = RSports
@State currentIndex: number = 0;
@State search_item: string = '運動名稱';
private sportsItem: SportsData[] = initializeOnStartup()

@Builder bottomBarBuilder(name: string, image_active: Resource, image_inactive: Resource, index: number) {
Column() {
Image(this.currentIndex === index ? image_active : image_inactive).width(32).aspectRatio(1).fillColor(this.currentIndex === index ? '#3ECF69' : '#bfbfbf')
Text(name).fontColor(this.currentIndex === index ? '#3ECF69' : '#bfbfbf').fontSize(18).margin({ bottom: 3 })
}.alignItems(HorizontalAlign.Center).width('100%')
}
build() {
Tabs({ barPosition: BarPosition.End }) {
TabContent() {
Column() {
Row() {
Image($r('app.media.search'))
.width(26)
.height(26)
.objectFit(ImageFit.Cover)
.margin({ left: 10 })

TextInput({ placeholder: '請輸入運動名稱' })
.width('60%')
.height(30)
.backgroundColor(Color.White)
.onChange((value: string) => {
this.search_item = value
})
Blank()
Button('搜索')
.backgroundColor('#3ECF69')
.borderRadius(30)
.fontSize(15)
.fontColor(Color.White)
.height(30)
.width('20%')
.margin({ left: 8, right: 3, top: 3, bottom: 3 })
.onClick(() => {
router.push({
url: 'pages/search_result',
params: {
sports: this.search_item
}
})
})
} //search
.borderColor('#3ECF69')
.borderWidth(2)
.borderRadius(50)
.backgroundColor(Color.White)
.width('90%')
.height(40)
.margin({ top: 5, bottom: 5, left: 5, right: 5 })
SportsCategory({ sportsItems: this.sportsItem ,RecordSports:$RSports,RecordDataArray:$RDArray})
}
.backgroundImage($r('app.media.background'))
.backgroundImageSize({ width: '100%', height: '100%' })
}.tabBar(this.bottomBarBuilder('主頁', $r('app.media.index'), $r('app.media.indexgray'), 0))
TabContent() {
Column() {
if (this.RDArray.length != 0) {
RecordGrid({RecordDataArray:$RDArray,RecordSports:$RSports})
}
else {
Text('暫無運動記錄').fontSize(19).width('100%').height(20).margin({ top: 12, left: 20 })
}
}
.width('100%')
.height('100%')
.backgroundImage($r('app.media.background2'))
.backgroundImageSize({ width: '100%', height: '100%' })

}.tabBar(this.bottomBarBuilder('記錄', $r('app.media.statistics'), $r('app.media.statisticsgray'), 1))
}
.onChange((index: number) => {
this.currentIndex = index;
})
}
}

三、搜索結果界面

1、接收頁面路由的傳參,并初始化工程內的運動項數據,便于遍歷查找。

import router from '@ohos.router';
import { initializeOnStartup } from '../model/SportsDataModels'
import { SportsData,RecordData } from '../model/SportsData'
import { SportsGrid,RDArray,RSports } from './SportsCategoryList'
@Entry
@Component
struct Search_result {
@State name:string = router.getParams()['sports']
private sportsItem: SportsData[] = initializeOnStartup()
private ResultDataArray: Array<SportsData> = []
...
}

由于有的運動項目名稱相同,但配速不同,因此在設置字符串匹配判斷時取字符串的子串來匹配。

aboutToAppear() {
let item;
for (item of this.sportsItem) {
if (item.name.length >= this.name.length) {
if (this.name == item.name.substring(0, this.name.length)) {
this.ResultDataArray.push(item);
}
}
else {
if (this.name == item.name) {
this.ResultDataArray.push(item);
}
}
}
}

將SportsCategoryList中的SportsGrid組件用export修飾,就能在搜索結果界面使用了,將搜索的結果用數組存放,接著傳參進SportsGrid進行列表渲染。

build() {
Column() {
PageTitle({ title: '搜索結果' })
Row() {
Image($r('app.media.search'))
.width(26)
.height(26)
.objectFit(ImageFit.Cover)
.margin({ left: 10 })
TextInput({placeholder:'請輸入運動名稱'})
.width('60%')
.height(30)
.backgroundColor(Color.White)
Blank()
Button('搜索')
.backgroundColor('#3ECF69')
.borderRadius(30)
.fontSize(15)
.fontColor(Color.White)
.height(30)
.width('20%')
.margin({ left: 8, right: 3, top: 3, bottom: 3 })
.onClick(() => {
router.push({
url: 'pages/search_result',
params: {
sports: this.sportsItem
}
})
})
} //search
.borderColor('#3ECF69')
.borderWidth(2)
.borderRadius(50)
.backgroundColor(Color.White)
.width('90%')
.height(40)
.margin(5)

Scroll() {
Column() {
if (this.ResultDataArray.length != 0) {
SportsGrid({ sportsItems: this.ResultDataArray })
}
else {
Text('沒有查到與此相關的結果').fontSize(19).width('100%').height(20).margin({ top: 12, left: 20 })
}
}
}
.scrollBar(BarState.Off)
}.height('100%')
.width('100%')
.backgroundImage($r('app.media.background'))
.backgroundImageSize({ width: '100%', height: '100%' })
}
}
@Component
struct PageTitle {
private title: string
build() {
Flex({ alignItems: ItemAlign.Start }) {
Image($r('app.media.Back'))
.width(21.8)
.height(19.6)
Text(this.title)
.fontSize(21.8)
.margin({ left: 17.4 })
}
.height(61)
.padding({ top: 15, bottom: 10, left: 28.3 })
.onClick(() => {
router.back()
})
}

結語

以上就是本次的小分享啦!

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2339。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2022-10-18 15:49:28

List組件Tabs組件

2022-10-17 14:39:12

自定義彈窗組件鴻蒙

2022-06-14 15:13:22

Echarts柱狀圖

2024-05-31 08:43:31

2021-12-27 15:10:55

鴻蒙HarmonyOS應用

2022-05-27 14:55:34

canvas畫布鴻蒙

2022-10-24 14:49:54

ArkUI心電圖組件

2022-11-02 16:06:54

ArkUIETS

2024-01-11 15:54:55

eTS語言TypeScript應用開發

2022-09-14 15:17:26

ArkUI鴻蒙

2022-07-26 14:40:42

ArkUIJS

2022-10-17 14:36:09

ArkUI虛擬搖桿組件

2022-08-05 19:27:22

通用API鴻蒙

2022-07-13 16:24:12

ArkUI(JS)打地鼠游戲

2022-09-21 14:51:21

ArkUI信件彈出

2021-12-01 15:40:23

鴻蒙HarmonyOS應用

2021-12-01 15:38:33

鴻蒙HarmonyOS應用

2015-05-26 15:20:57

創業邦

2021-12-10 15:02:47

鴻蒙HarmonyOS應用

2021-12-10 15:05:41

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

国产日韩免费| 精品三级av在线导航| 一色屋精品亚洲香蕉网站| 97中文在线观看| 久久免费激情视频| 亚洲男女网站| 午夜国产精品影院在线观看| 日韩jizzz| 精品国自产在线观看| 午夜影院日韩| 久久99国产综合精品女同| 在线免费观看日韩av| 国产精品1区| 色婷婷久久99综合精品jk白丝| 国产精品一区二区免费看| 免费黄色av片| 精品9999| 日韩有码在线播放| 99热超碰在线| 亚洲伦理久久| 色欧美片视频在线观看| 国产精品日韩三级| 日本电影在线观看网站| 成人精品gif动图一区| 久久久伊人日本| 成人性生交大免费看| 免费观看成人性生生活片 | 欧美精品一区在线播放| 蜜臀av一区二区三区有限公司| 不卡av影片| 亚洲综合在线五月| 中文字幕av导航| 亚洲精华国产精华精华液网站| 亚洲经典自拍| 久久成人亚洲精品| 特级西西人体高清大胆| 九九热精品视频在线观看| 欧洲色大大久久| 成熟丰满熟妇高潮xxxxx视频| 你懂的免费在线观看| 国产91高潮流白浆在线麻豆| 2025国产精品视频| 久久久精品视频免费| 在线精品小视频| 中文字幕欧美日韩精品| 性猛交娇小69hd| 天天躁日日躁成人字幕aⅴ| 精品久久久久久久久久久久包黑料| 97在线免费公开视频| 免费a级在线播放| 国产精品美女久久久久aⅴ | 免费黄色小视频在线观看| 国产日韩一区| 2025国产精品视频| 视频这里只有精品| 伊人久久大香线蕉精品组织观看| 日韩精品视频在线免费观看| 91丝袜在线观看| 看全色黄大色大片免费久久久| 欧美日韩高清不卡| 最新av免费在线观看| 五月天色综合| 日韩亚洲欧美在线观看| 伊人影院在线观看视频| a级日韩大片| 精品一区二区三区四区在线| 亚洲人成人无码网www国产| 国产精品一区二区av交换| 亚洲天堂成人在线视频| av免费播放网站| 水蜜桃久久夜色精品一区| 亚洲国产欧美在线成人app| 天天操狠狠操夜夜操| 国产成人免费视频网站视频社区| 欧美性猛交xxxx富婆弯腰| caopor在线视频| 亚洲播播91| 欧美剧在线免费观看网站| 久久久福利影院| 高潮按摩久久久久久av免费| 亚洲精品中文字幕女同| jizz日本在线播放| 欧美特黄视频| 日本伊人精品一区二区三区介绍| 日韩精品久久久久久久| 日韩中文字幕不卡| 91精品视频在线免费观看| 乱精品一区字幕二区| 国产亚洲精品福利| 中文字幕乱码免费| 周于希免费高清在线观看| 欧美日韩成人一区二区| 美女伦理水蜜桃4| 精品毛片免费观看| 欧美日韩国产91| 日韩免费av网站| 国产精品色网| 亚洲r级在线观看| 色播色播色播色播色播在线| www国产成人| 亚洲一区二区三区色| 丁香花电影在线观看完整版| 亚洲一区二区美女| 欧美性猛交xxx乱久交| 18国产精品| 亚洲视频axxx| 国产精品自拍视频一区| 在线午夜精品| 91色p视频在线| 欧美日韩国产中文字幕在线| 国产亚洲欧洲一区高清在线观看| 日韩av免费电影| 日本aa在线| 天天综合网 天天综合色| 色一情一区二区| 希岛爱理av免费一区二区| 欧美成人激情视频| 中国精品一区二区| 91麻豆蜜桃一区二区三区| 日本天堂免费a| 3344国产永久在线观看视频| 欧美伦理视频网站| 国产一二三四五区| 国产一区白浆| 国产麻豆日韩| 日本一级理论片在线大全| 欧美日韩在线播放三区四区| 精品人妻互换一区二区三区| 亚洲免费激情| 国产精品一区二区你懂得| 制服丝袜在线播放| 777奇米成人网| 狂野欧美性猛交| 日韩av成人高清| 欧美一级爱爱| 免费电影日韩网站| 亚洲精品成人久久电影| 国产亚洲欧美精品久久久www| 亚洲一区国产| 国产精品美女免费视频| 国产精品色综合| av电影在线观看一区| 日本老太婆做爰视频| 日韩电影免费看| 精品国产乱码久久久久久牛牛 | 人人爽人人av| 91麻豆精品| 亚洲精品91美女久久久久久久| 欧美做受高潮6| 亚洲色图欧美| 成人乱人伦精品视频在线观看| 少妇高潮一区二区三区99小说| 久久精品一区蜜桃臀影院| 黄色免费观看视频网站| 亚洲在线资源| 久久这里有精品| 国产视频在线免费观看| 亚洲另类一区二区| 九色91popny| 久久综合五月婷婷| 97在线视频免费| 99热这里只有精品9| 亚洲另类中文字| 秘密基地免费观看完整版中文| 欧美国产一区二区三区激情无套| 4388成人网| 毛片网站在线观看| 91久久线看在观草草青青| 亚洲色图日韩精品| 国产精品自拍三区| 精品国产一二三四区| 国产精品免费大片| 国产日韩精品在线| 色呦呦在线看| 亚洲男子天堂网| 国产一级免费av| 国产美女精品一区二区三区| 国产片侵犯亲女视频播放| 日韩有码av| 国产精品自拍视频| 宅男网站在线免费观看| 日韩乱码在线视频| 91麻豆国产视频| 亚洲成人激情av| 欧美人与性囗牲恔配| 国产精品一区二区视频| 日韩精品视频久久| 欧美日韩精品一区二区三区在线观看| 操人视频在线观看欧美| 色香蕉在线视频| 亚洲国产另类av| 国产肥白大熟妇bbbb视频| 国产精品综合一区二区三区| 日日摸日日碰夜夜爽av| 欧美另类亚洲| 日产精品久久久一区二区| 亚洲一区二区三区四区电影| 国产成人精品电影久久久| 欧美拍拍视频| 日韩欧美的一区| 免费在线不卡av| 国产精品久久久久久久久久久免费看| 国产v亚洲v天堂无码久久久| 中文字幕午夜精品一区二区三区 | 国产性xxxx18免费观看视频| 午夜片欧美伦| 欧美日韩一区在线视频| 日韩精品视频一区二区三区| 欧美国产日韩二区| 尤物视频在线免费观看| 精品偷拍各种wc美女嘘嘘| 日本视频在线观看免费| 亚洲免费观看高清在线观看| 色欲AV无码精品一区二区久久| 看电视剧不卡顿的网站| 99热都是精品| 精品国产乱码久久久| 九色91视频| 91精品久久久久久综合五月天 | 国产精品免费看久久久无码| 国产精品一区二区av交换| 精品久久久久久一区| 久久九九精品视频| 国产欧美va欧美va香蕉在线| 国产综合色区在线观看| 精品国产一区二区三区久久狼黑人 | 国产精品一区二区性色av| 僵尸再翻生在线观看| 一区二区三区在线播放欧美| 天天干天天舔天天射| 欧美视频一二三区| 青青草原国产视频| 亚洲日本在线天堂| 性生交大片免费全黄| 99久久99久久精品免费看蜜桃| 亚洲综合在线网站| 亚洲在线黄色| 欧美极品欧美精品欧美图片| 国产日韩一区| 动漫av网站免费观看| 在线一区欧美| 九色在线视频观看| 免费在线播放第一区高清av| 国产肥臀一区二区福利视频| 亚洲一区视频| 日本888xxxx| 免费成人av资源网| 国产日韩欧美精品在线观看| 欧美日韩免费观看一区=区三区| 日本在线一区| 成人午夜av| 宅男噜噜99国产精品观看免费| 精品国产影院| 久久国产一区| 国产精品一区二区av日韩在线| 国产精品久久国产三级国电话系列 | 热久久天天拍国产| 一区二区三区偷拍| 一区二区三区四区电影| 日本一级黄视频| 在线一区免费观看| 日韩一级片播放| 99国产成+人+综合+亚洲欧美| 国产奶头好大揉着好爽视频| 欧美影院一区| www.av中文字幕| 日韩综合小视频| 亚洲国产午夜精品| 粉嫩一区二区三区性色av| 国产黄色三级网站| 国产欧美日韩中文久久| 成人性生活毛片| 亚洲超丰满肉感bbw| 无码人妻av一区二区三区波多野 | 欧美成年人视频网站| 女囚岛在线观看| 久久成人综合视频| 超碰在线99| 国产精品成人品| 另类视频一区二区三区| 久久精品国产第一区二区三区最新章节 | 国产午夜精品福利视频| 亚洲视频在线观看一区| 国产视频三区四区| 亚洲乱码日产精品bd| 波多野结衣国产| 福利视频第一区| 一区二区三区视频免费看| 在线精品视频一区二区| 精品久久久无码中文字幕| 欧美一卡2卡3卡4卡| 深夜影院在线观看| 久久天天躁狠狠躁老女人| 交100部在线观看| 成人字幕网zmw| 蜜臀av免费一区二区三区| 女同性恋一区二区| 日韩成人午夜精品| 亚洲自拍偷拍精品| 中文字幕中文在线不卡住| 天天操天天干视频| 欧美一区在线视频| 国产精品久久久久一区二区国产| 亚洲最新在线视频| 国内小视频在线看| 国产欧美精品在线| 欧美禁忌电影网| 美女黄色免费看| 国内精品国产成人| 国产免费一区二区三区网站免费| 久久精品一区四区| 日本亚洲色大成网站www久久| 欧美性感美女h网站在线观看免费| 豆国产97在线 | 亚洲| 欧美日韩亚洲激情| 99成人精品视频| 日韩av在线直播| 久久五月精品中文字幕| 成人精品视频在线| 日韩欧美一区免费| 欧美一级爱爱视频| 久久国内精品自在自线400部| 性xxxxxxxxx| 综合电影一区二区三区| 瑟瑟视频在线免费观看| 亚洲毛片一区二区| 免费a级在线播放| 国产精品久久久久久一区二区| 成人在线视频国产| 亚洲美女搞黄| 日本中文字幕不卡| 中国毛片在线观看| 精品欧美激情精品一区| 在线观看中文字幕av| 亚洲天堂免费视频| 台湾佬成人网| 99久久伊人精品影院| 久久不见久久见国语| 日本一区二区黄色| 91免费国产视频网站| 二区视频在线观看| 亚洲精品少妇网址| 另类专区亚洲| 视频一区视频二区视频| 青青草精品视频| av2014天堂网| 午夜精品福利在线| 国产精品无码一区二区桃花视频| 亚洲精品国偷自产在线99热 | 国产视频一区二| 九九久久九九久久| 国产精品亚洲一区二区三区在线| 全黄一级裸体片| 日本韩国欧美在线| 91精彩视频在线播放| 国产欧美日韩中文字幕| 午夜影院欧美| 人妻无码视频一区二区三区| 国产三级精品视频| 三级黄色在线视频| 亚洲美女福利视频网站| 在线成人视屏 | 岛国av一区二区在线在线观看| 国产欧美久久久精品免费| 欧美日韩高清在线观看| 日本三级久久| av网站在线不卡| 久久一留热品黄| 9i精品福利一区二区三区| 中文字幕日韩有码| 91精品影视| 久久久综合亚洲91久久98| 石原莉奈在线亚洲二区| 免费观看一级一片| 欧美亚洲国产一区二区三区| www在线视频| 精品国产福利| 美腿丝袜在线亚洲一区| 亚洲一区二区自偷自拍| 精品国产第一国产综合精品| 欧美在线视频一区二区三区| 久久99精品国产麻豆不卡| 黄色一级片在线免费观看| 亚洲精品电影在线观看| 日本少妇一区| www.日本三级| 国产亚洲1区2区3区| 国产欧美日韩成人| 日本一欧美一欧美一亚洲视频| 色愁久久久久久| 午夜久久福利视频| 午夜精彩视频在线观看不卡| 尤物视频在线免费观看| 成人xxxx视频| 国产精品日本欧美一区二区三区| 3d动漫精品啪啪一区二区下载 | 久久亚洲资源中文字| 免费在线黄网站| 中文字幕成人网| 亚洲 精品 综合 精品 自拍|