keep是一款专为热爱生活、追求健康与活力的人们设计的全面运动健身应用程序。无论您是初学者还是健身达人,我们的应用都能为您提供个性化的训练计划、详细的成就跟踪以及贴心的个人管理功能,帮助您实现每一个健身目标。包含主页、成就、个人三个模块,有记录功能。
项目结构:
import AchievementContent from '../view/achievement/AchievementContent'
import HomeContent from '../view/home/HomeContext'
import MineContent from '../view/mine/MineContent'
@Entry
@Component
struct MainIndex{
@State selectIndex : number = 0
@Builder TabBarBuilder(index: number, normalIcon: ResourceStr,selIcon:ResourceStr, text: string) {
Column(){
Image(this.selectIndex === index? selIcon :normalIcon)
.width(20)
Text(text)
.fontSize(10)
.fontColor(this.selectIndex === index ? $r('app.color.tab_bar_sel') : $r('app.color.tab_bar_normal'))
}
}
build() {
Tabs({
barPosition: BarPosition.End,
index:this.selectIndex
}){
//主页
TabContent(){
HomeContent()
}
.tabBar(this.TabBarBuilder(
0,
$r('app.media.ic_tabs_home_normal'),
$r('app.media.ic_tabs_home_sel'),
"主页"
))
//成就页
TabContent(){
AchievementContent()
}
.tabBar(this.TabBarBuilder(
1,
$r('app.media.ic_tabs_achievement_normal'),
$r('app.media.ic_tabs_achievement_sel'),
"成就"
))
//个人页
TabContent(){
MineContent()
}
.tabBar(this.TabBarBuilder(
2,
$r('app.media.ic_tabs_mine_normal'),
$r('app.media.ic_tabs_mine_sel'),
"个人"
))
}
.onChange((index:number) =>{
this.selectIndex = index
})
}
}
以下是主页的展示:
import DateDialog from '../../dialog/DateDialog'
import DateUtil from '../../utils/DateUtil'
@Extend(Text)
function textStyle(color: ResourceStr | Color,fw : number | FontWeight){
.fontSize(20)
.fontWeight(fw)
.fontColor(color)
}
@Component
export default struct AchievementTop{
@State value: number = 1930
@State task: nu