layout: post title: "HarmonyOS Tips" subtitle: " "厚积薄发"" date: 2025-3-17 15:39:00 author: "littleplayer" header-img: "img/about-bg.jpg" catalog: true tags: - ArkTs
路漫漫其修远兮, 吾将上下而求索
题记
江湖风云变幻,鸿蒙终将成为操作系统的半壁江山
ArkTs屏幕的宽高
import { display } from '@kit.ArkUI'
class ScreenUtils {
static defaultDisplay = display.getDefaultDisplaySync()
static width(): number {
return ScreenUtils.defaultDisplay.width
}
static height(): number {
return ScreenUtils.defaultDisplay.height
}
static widthPv(): number {
return px2vp(ScreenUtils.defaultDisplay.width)
}
static heightPv(): number {
return px2vp(ScreenUtils.defaultDisplay.height)
}
}
Step
Step StepItem不支持ForEach吗?
Navigation
ArkTs导航与苹果的导航类似,但设计又不太一样
root使用
Navigation(this.navStack) {
this.navStack.pushPath({ name: '', param: ? }, true)
}
.navDestination((name: string, param: object) => { //无法跳转
if(name === '') {
return PlanMaterialsListPage()
}
return PlanMaterialsListPage()
})
.navDestination(this.PageMap)
@Builder
PageMap(name: string, params: object) {
if (name === 'PlanMaterialsListPage') {
PlanMaterialsListPage()
}
})
subpage
NavDestination() {
}
tips: 为何@Builder才能正常跳转呢
ArkTs Link使用
传入子页面 $xxxx
ArkTs 清空数组
arr.length = 0
arr = []
Navgation包裹Tab,为何高度会短半截??
什么情况下用@Link 什么情况下用@ObjectLink
@Link 双向绑定,整个变量,基本类型、简单对象,整个变量变化触发
@ObjectLink 双向绑定(对象属性),复杂对象(嵌套对象),对象属性变化时触发
return 在map中很重要
let times = days.length > 0 ? '[' + days.map((day) => {
return '' + (day.time?.getTime() ?? 0) / 1000
}).join(',') + ']' : `[${this.currentDate}]`