鸿蒙 ArkTs语言开发的项目,可以用于毕业设计及大作业
1,鸿蒙ArkTS仿网易云APP开发及设计
2,基于鸿蒙记事本设计与实现
3,基于鸿蒙仿抖音实现
4,鸿蒙ArkTs开发商城应用设计及实现
5,鸿蒙ArkTS壁纸小屋 APP 设计及开发
6,鸿蒙ArkTS记账助手 设计及实现
7,基于音乐播放器 设计及实现
8,基于鸿蒙ArkTS商城app 设计及实现
9, 基于鸿蒙小米天气app实现
10,基于鸿蒙ArkTs个人日记设计及实现
11,鸿蒙备忘录APP
12 鸿蒙Next 音乐播放器
13,基于鸿蒙健康助手APP
14,基于鸿蒙视频播放实现
15,基于鸿蒙毕业设计项目记账APP实现
import { BreakPointConstants, BreakPointType, cart, EmitterKey, FullScreenConstants, PMNavPathStack } from 'basic'
import { CartView } from 'cart'
import { CategoryView } from 'category'
import { HomeView } from 'home'
import { MyView } from 'my'
import { emitter } from '@kit.BasicServicesKit'
import { FileStrategy, Logger } from '@nzy/logger';
interface TabItem {
text: string
normal: ResourceStr
active: ResourceStr
}
@Entry
@Component
struct Index {
@StorageProp(cart.CartCountKey) cartCount: number = 0
@StorageProp(FullScreenConstants.BOTTOM_HEIGHT) bottomHeight: number = 0
@StorageProp(BreakPointConstants.BREAKPOINT_KEY) bp: string = BreakPointConstants.SM
@State activeIndex: number = 0
list: TabItem[] = [
{ text: '首页', normal: $r('app.media.ic_public_home_normal'), active: $r('app.media.ic_public_home_active') },
{ text: '分类', normal: $r('app.media.ic_public_pro_normal'), active: $r('app.media.ic_public_pro_active') },
{ text: '购物袋', normal: $r('app.media.ic_public_cart_normal'), active: $r('app.media.ic_public_cart_active') },
{ text: '我的', normal: $r('app.media.ic_public_my_normal'), active: $r('app.media.ic_public_my_active') },
]
@Provide pageStack: NavPathStack = PMNavPathStack
tabsController: TabsController = new TabsController()
aboutToAppear(): void {
let parentPath = getContext(this).getApplicationContext().filesDir
Logger.init({
domain: 0x0000,
isEnable: true,
isShowFile: true,
tag: 'MyTag',
jsonWrite: true,
debugLevelWrite: true,
parentPath: parentPath
}
,
new FileStrategy(`${Date.now()}.txt`)
)
cart.updateCartCount()
emitter.on(EmitterKey.CHANGE_TAB, (eventData: emitter.EventData) => {
this.activeIndex = eventData.data?.index || 0
this.tabsController.changeIndex(this.activeIndex)
})
}
build() {
Navigation(this.pageStack) {
Tabs({ barPosition: BarPosition.End, controller: this.tabsController }) {
ForEach(this.list, (item: TabItem, index: number) => {
TabContent() {
if (index === 0) {
HomeView()
} else if (index === 1) {
CategoryView()
} else if (index === 2) {
CartView()
} else {
MyView()
}
}
.tabBar(this.TabItemBuilder(item, index))
})
}
.scrollable(false)
.barPosition(new BreakPointType({
sm: BarPosition.End,
md: BarPosition.End,
lg: BarPosition.Start
}).getValue(this.bp))
.vertical(this.bp == BreakPointConstants.LG ? true : false)
.onTabBarClick(index => {
this.activeIndex = index
})
.padding({ bottom: this.bottomHeight })
}
.hideTitleBar(true)
.mode(NavigationMode.Stack)
}
@Builder
TabItemBuilder(item: TabItem, index: number) {
Badge({
count:index==2?this.cartCount:0,
style:{}
}){
Column() {
Image(this.activeIndex === index ? item.active : item.normal)
.width(24)
.aspectRatio(1)
Text(item.text)
.fontColor($r('[basic].color.black'))
.fontSize(12)
}
.justifyContent(FlexAlign.SpaceEvenly)
.height(50)
}
}
}
TypeScript
运行