【HarmonyOS开发】控件开发过程中,知识点记录

1、问题记录及解决方案

1.1 资源(Icon&i18n)问题

控件:只有一个JS文件,不会将任何资源型文件(图片、字体、默认文字等)打包到SO中。因此,当我们开发控件时,需要将需要使用到的资源,提前申请,放入资源仓库,然后等官方集成到系统中。

注意:资源都需要集成得到系统的room中,因此该步骤需要提前准备。

仓库:https://gitee.com/openharmony/utils_system_resources

图片资源存放位置:

systemres/main/resources/base/media/ohos_xxx.svg

国际化资源存放位置:

中文:systemres/main/resources/zh_CN/element/string.json

英文:systemres/main/resources/base/element/string.json

配置对应的ID:

systemres/main/resources/base/element/id_defined.json

1.2 媒体查询

获取系统主题色(深色/浅色),目前无可用API,如需使用,只能使用系统颜色,系统自动切换。

更新时间:2023/12/10

文档中心

1.3 容器问题

ArkUI通过****onAreaChange获取的的宽**** 高包含(content+padding+border+margin),和Css不同,计算高度时,需要注意。

我们开发前,最好搞明白,各个容器的具体作用。

参考:https://juejin.cn/post/7304938797865844771eg

eg: 复杂Grid布局的实现

TypeScript 复制代码
Grid() {
    GridItem() {}
    GridItem() {}
    GridItem() {}
    .columnStart(1)
    .columnEnd(2)

    GridItem() {}
    .rowStart(1)
    .rowEnd(2)
    GridItem() {}
    GridItem() {}
    GridItem() {}
    
    GridItem() {}
    .columnStart(1)
    .columnEnd(3)
}
.rowsTemplate('1fr 1fr 1fr')
.columnsTemplate('1fr 1fr 1fr 1fr')
.columnsGap(8)
.rowsGap(8)

1.4 API问题

编译后的SO出现闪退问题,有可能系统还未支持,eg:curve动效库等;

2、开源库开发规范

  • 控件中不允许使用Base64图片,只能使用系统图标,但是系统中并未全部集成(https://developer.harmonyos.com/cn/design/harmonyos-icon);
  • 枚举值命名规范是全大写,并且值为number时,从0开始,key如果为多个字符使用_间隔;
  • 变量名规范为小驼峰,eg:hardwareStates;
  • 接口、枚举、Type的命名规范为大驼峰,eg: IsSelectedState;
  • 不建议使用@Link向外暴露接口,组件使用者无法拦截数据的变化;
  • 如果使用到数字,需要定义为常量;

未完,待续...

相关推荐
nashane5 小时前
HarmonyOS 6学习:外接键盘CapsLock与长截图功能的实战调试与完整解决方案
学习·华为·计算机外设·harmonyos
aqi0012 小时前
一文理清 HarmonyOS 6.0.2 涵盖的十个升级点
android·华为·harmonyos·鸿蒙·harmony
环信即时通讯云14 小时前
环信Flutter UIKit适配鸿蒙实战指南
flutter·华为·harmonyos
Swift社区15 小时前
鸿蒙 PC 应用启动优化全解析
华为·harmonyos
richard_yuu16 小时前
鸿蒙本地数据存储实战|Preferences 封装、数据隔离与隐私合规存储方案
android·华为·harmonyos
Lynnb17 小时前
Mac电脑烧录 RK3588 鸿蒙开发板固件教程
华为·harmonyos·鸿蒙系统
我头上有犄角ovo17 小时前
HarmonyOS 测肤拍照页实战:Metadata 实时取景 + Core Vision 拍后校验,从 0.001 的 widthRatio 踩坑到可上线
前端·harmonyos
码农小北18 小时前
MAC 配置鸿蒙(HarmonyOS) SDK 环境变量完整指南
macos·华为·harmonyos
weixin_3864689618 小时前
openharmony 6.0编译rk3568过程记录
c语言·c++·git·python·vim·harmonyos·openharmony