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

news/2024/7/21 9:16:21 标签: 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布局的实现

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

未完,待续...


http://www.niftyadmin.cn/n/5254199.html

相关文章

InitializingBean初始化--Spring容器管理

目录 InitializingBean--自动执行一些初始化操作spring初始化bean有两种方式:1.优点2.缺点2.PostConstruct 注解2.举例使用InitializingBean接口 和PostConstruct3.初始化交给容器管理4.与main入口函数有什么区别5.在 Spring 中,有两种主要的初始化 bean…

关于5G基站节能及数字化管理解决方案

安科瑞电气股份有限公司 201801 截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力…

124.(leaflet篇)leaflet禁止地图移动,缩放,双击

地图之家总目录(订阅之前必须详细了解该博客) 完整代码工程包下载,运行如有问题,可“私信”博主。效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【公益小天使】壹起来|“守护绿色 增添美好”公益小天使环保主题活动

为进一步增强树木抗寒防冻能力&#xff0c;减少冬季病虫害的发生&#xff0c;同时也为少年儿童进一步营造爱绿护绿、保护环境的良好氛围。2023年12月9日下午&#xff0c;平湖公益小天使联合平湖先行园艺工程有限公司在梦飞路青影绿廊三期木头房开展了“守护绿色 增添美好”公益…

U2 文法和语言

文章目录 一、预备知识1、字母表和符号串2、符号串形式定义3、符号串相等4、延申 二、文法1、 一些概念2、文法的定义3、推导的形式定义4、规范推导5、语言的形式定义6、递归文法7、BNF范式总结 三、短语、简单短语和句柄四、语法树(推导树)1、概念2、语法树推导--句型的推导3、…

【LeetCode热题100】【滑动窗口】找到字符串中所有字母异位词

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p "…

(四)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

Faster RCNN 源码解析

源码 在Pytorch官网找到源码 pascal_voc_classes.json: pascal_voc标签文件。 一个类别对应一个整形数字。在目标检测中“0”是专门留给背景的。 制作自己的voc数据集 加载模型 # create model num_classes equal background 20 classesmodel create_model(num_classes21)…