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

未完,待续...

相关推荐
小冷爱学习!1 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
2501_904447742 小时前
华为发力中端,上半年nova14下半年nova15,大力普及原生鸿蒙
华为·智能手机·django·scikit-learn·pygame
MarkHD2 小时前
第十八天 WebView深度优化指南
华为·harmonyos
塞尔维亚大汉3 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI CSI】
harmonyos·领域驱动设计
别说我什么都不会3 小时前
鸿蒙轻内核M核源码分析系列十五 CPU使用率CPUP
操作系统·harmonyos
feiniao86514 小时前
2025年华为手机解锁BL的方法
华为·智能手机
塞尔维亚大汉5 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【I3C】
harmonyos·领域驱动设计
VVVVWeiYee5 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
今阳7 小时前
鸿蒙开发笔记-6-装饰器之@Require装饰器,@Reusable装饰器
android·app·harmonyos
余多多_zZ8 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统