【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向外暴露接口,组件使用者无法拦截数据的变化;
  • 如果使用到数字,需要定义为常量;

未完,待续...

相关推荐
北墨NoLimit1 天前
DevEco Code:在终端里用 AI 写鸿蒙应用
harmonyos
智塑未来2 天前
鸿蒙游戏体验手册:四种能力从性能到玩法逐一解锁
游戏·华为·harmonyos
math_hongfan2 天前
鸿蒙离线数据缓存高级架构:弱网预加载/离线数据优先级/同步冲突解决/上线后数据合并策略
学习·缓存·华为·架构·harmonyos·鸿蒙
math_hongfan2 天前
鸿蒙企业级数据存储高级架构:从读写分离到冷热数据分层/归档策略/数据生命周期管理最佳实践
人工智能·学习·华为·架构·harmonyos·鸿蒙
math_hongfan2 天前
鸿蒙存储异常高级排查:文件损坏检测/数据恢复/读写失败重试/磁盘空间预警系统性根治方案
学习·华为·harmonyos·鸿蒙
lilian2332 天前
Harmony os 技术实战|拼豆制图10:把取消、解析失败和保存失败写成可恢复状态机
java·javascript·华为·harmonyos
2501_919749032 天前
华为鸿蒙美缝剂实用APP—小羊美缝
华为·harmonyos
2501_919749032 天前
华为鸿蒙积攒年度高光APP—小羊高光
华为·harmonyos
智塑未来2 天前
鸿蒙7碰一碰智感交互——碰哪儿传哪儿
华为·harmonyos
math_hongfan2 天前
鸿蒙存储碎片高级清理机制:数据库Vacuum/文件碎片整理/缓存过期清理/主动空间回收策略
jvm·数据库·学习·缓存·华为·harmonyos·鸿蒙