鸿蒙语言开发 50套app毕业设计及课程作业
鸿蒙 ArkTs语言开发的项目,可以用于毕业设计及大作业。3,ArkTS制作鸿蒙系统的纯净浏览器 设计及实现。原生Arkts搭建的微信UI APP设计及实现。5,鸿蒙ArkTS壁纸小屋 APP 设计及开发。8,基于鸿蒙ArkTS商城app 设计及实现。10,基于鸿蒙ArkTs个人日记设计及实现。4,鸿蒙ArkTs开发商城应用设计及实现。6,鸿蒙ArkTS记账助手 设计及实现。7,基于ArkTS守约
·
鸿蒙 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
// Main window is created, set main page for this ability
Logger.init({
domain: 0x0000, // domain
isEnable: true, // 是否打印,默认是 true,是否打印,不影响写文件
isShowFile: true, // 是否显示打印日志文件的位置 默认 true
tag: 'MyTag', // 全局TAG 默认是 Logger
jsonWrite: true, // 是否写入文件 默认是 true
debugLevelWrite: true, // debug级别的是否写入文件 默认是 true
parentPath: parentPath // 写入文件的 parent 路径
}
,
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()
// Button().onClick(()=>{
// this.pageStack.pushPath({name:'SearchView',param:new Object({id:'111'})})
// })
}
}
.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)// 跨 HSP 访问资源,需要在 oh-package.json5中导入
.fontColor($r('[basic].color.black'))
.fontSize(12)
}
.justifyContent(FlexAlign.SpaceEvenly)
.height(50)
}
}
}
更多推荐

所有评论(0)