HarmonyOS 鸿蒙Next示例代码中资源属性值放入常量文件的做法解析

HarmonyOS 鸿蒙Next示例代码中资源属性值放入常量文件的做法解析

可以看到width的值非常不直观,而且想要调整的时候,需要跳转到另个文件,调整完后,再返回,

我想知道,有没有类似android中的写法,每一个值都在资源文件中定义,这样调整也方便,不用切换文件

而且,为什么是写到常量文件,而不是资源文件中?

19 回复

有资源文件的,用的时候$r(‘app.float.icon_length’),可以联想了来:

cke_201.png

更多关于HarmonyOS 鸿蒙Next示例代码中资源属性值放入常量文件的做法解析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我这里没标识清楚,这个常量的值是’100%’,float中放的是’24vp’,

有没有可能,新建一个string类型叫size的资源文件,然后在里面同时放 vp 和 百分比

好想法,

好想法,

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

这样是为了设计规范,比如一个页面四边的margin设计的时候是定义了一个10, 按照设计规范所有的页面最外层的margin都应该为10 ,突然有一天领导看了说是这个10的边距不好看,需要改成15,你现在只需要在资源文件改一处就可以。否则你就需要在App里所有的地方都改一遍。

再举个例子,比如你们的标题栏标题文字是20的大小,你都开发完了,UI说是20不好看需要改成25,这时候你改一个地方就可以,否则你也得从代码里面把所有的页面都找一遍改一遍。

这个场景,你在实际开发中遇到过吗

我们android开发中,通常的做法是在资源文件中定义这个值,比如deafult_font_size之类的。但是他这里不是选择在资源文件中进行定义,而是在CommonConstants常量文件中进行定义,我不太理解这个用意是什么。

这样可以方便后面修改吧
看着确实挺难受的

我想,我明白问题出在哪里了,deveco studio 是基于android studio的?如果是这样,那就能理解了,我开始以为是基于idea的

android 对于宽度高度没有'100%'这种值,而deveco studio没有对这个解析的改造,是照着android来的?

因此只能识别'24vp'这种值,无法识别'100%'这种值。

如果要改造,还得改代码中显示识别,工作量太大了?

所以对于'100%'这种常量值,不能放到float资源文件中,而是要放到常量中,虽然他也是宽度的一个值。

android因为宽度值都是固定的值,没有百分比的值,所以解析上单一。

网页开发上,似乎没有将长度提取出常量这种习惯?

所以将ts用于手机开发的ide也就是androi studio或者说,deveco,再用android的思维去理解,就会有点散,不统一。会不理解:同样是距离,为什么不放在一个文件中。

用android的思维来理解就是,一个24dp,一个50dp,放在了两个文件中

对应到鸿蒙的 24vp、100%,放在两个文件,况且100%还不是放在资源文件

或许,这是鸿蒙规则下的分类?

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

  1. 不是基于Android Studio,是基于Idea。
  2. 我记得Android里面配置具体大小的是res/values/dimens.xml里面也是写具体大小的。
  3. Android有100% 是match_parent,但是没有40%这种。
  4. Android有自定义公共的style可以引用,可能你习惯用的是那个。

因为是demo,他不可能每个地方都给你写的好好的,主要突出demo想要表达的功能即可,生产中酌情考虑实际写法。楼上也有人说了$r('app.float.icon_length'),这种方式,你可以试试

试过了,不能放在一起,

const关键字总见过吧,很多语言都会有,是非常常用的功能,

我不理解的是:为什么不统一到资源文件中,而是分开到常量ets文件,

height设置的值不就类似于android中写在了xml文件中吗

对,所以这里说的是width,如果能直接写,这个demo为什么不用height的形式来写,而是采用常量,这是我不理解的地方,

在HarmonyOS鸿蒙Next中,资源属性值放入常量文件的做法主要是为了提高代码的可维护性和可读性。通过将资源属性值集中管理,开发者可以更方便地进行统一修改和引用。

常量文件定义:

在鸿蒙Next中,通常会在resources目录下创建一个constants.json文件,用于存放各种资源属性值。例如:

{
  "color": {
    "primary": "#FF6200",
    "secondary": "#00A0E9"
  },
  "string": {
    "app_name": "MyApp",
    "welcome_message": "Welcome to MyApp"
  }
}

资源引用:

在代码中,可以通过$r函数引用常量文件中的资源。例如:

const primaryColor = $r('app.color.primary');
const appName = $r('app.string.app_name');

优势:

  • 统一管理:所有资源属性值集中在一个文件中,便于查找和修改。
  • 减少重复:避免在代码中多次硬编码相同的值,减少重复代码。
  • 提高可读性:通过有意义的常量名称,提高代码的可读性和可维护性。

注意事项:

  • 确保常量文件中的键值对命名规范且有意义。
  • 在引用资源时,确保路径正确,避免因路径错误导致的资源无法加载。

通过这种方式,鸿蒙Next的开发者可以更高效地管理和使用资源属性值,提升开发效率和代码质量。

回到顶部