鵸鵌—初学HarmonyOS至今所遇九大注意 原创 精华
Der_带鱼
发布于 2021-7-26 15:16
浏览
6收藏
鵸鵌—初学HarmonyOS至今所遇九大注意
本文引言
时间:2021年7月26日08:40:55
本文总结了作为鸿蒙初学者学习鸿蒙至今所遇见的九大注意,希望可以帮助到其他初学者们!一起共勉!
目录:
一、HAP应用图标在桌面不显示
二、关于DevEco硬编码文本的Warning
三、image_src格式不规范
四、ScrollView组件使用时不能完全显示
五、子组件layout_alignment不生效
六、快速重写方法
七、previewer失败
八、远程真机自动签名
九、轻量级设备开发中Direction的变化
一、HAP应用图标在桌面不显示
- 问题描述:Build—Build Hap后运行,在桌面Hap的应用图标不显示。
- 问题定位:config.json文件下module对象下distro属性配置出问题了。
- 解决方法:把installationFree的值改为False即可。
二、关于DevEco硬编码文本的Warning
-
问题描述:
-
翻译为:
硬编码字符串’单击加1’,应使用
$string:单击加1资源
检验信息:
硬编码文本
直接在布局文件中硬编码文本属性是不好的,原因如下:
-
创建配置变体(例如横向或纵向)时,必须重复实际文本(并在进行更改时保持最新)
-
仅通过为现有字符串资源添加新的翻译,无法将应用程序翻译为其他语言。
-
-
问题定位:text的内容直接用文本是不好的,是DevEco不推荐的形式。
-
解决方法:
- 数据分离(这样也方便后期修改)。用一个json文件存数据,text这里使用ohos:text=“$String:Name”
- 对string.json文件进行修改
注:
- 关于zh和en的关系,DevEco做了国际化处理,如果是中文就自动用zh里的json文件,英文就用en。其他语言就用element下的json。
三、image_src格式不规范
- 问题描述:
‘.’ is not a valid resource name character
“.”不是有效的资源名称字符
Validates resource references inside Harmony XML files
验证XML文件中的资源引用
- 解决方法:
ohos:image_src="$media:log"
四、 ScrollView组件使用时不能完全显示
- 问题描述:在ScrollView内可以显示其内部的组件!但是我这里显示不出来了!
其原因是因为:
ohos:match_viewport="true"
这一行代码不能用!导致了覆盖
-
解决方法:
-
删除后的效果
五、子组件layout_alignment不生效
- 问题描述:子组件设置水平居中ohos:layout_alignment=“horizontal_center”,显示出来却没居中
-
问题定位:子组件的宽度设置为跟父组件一样,子组件layout_alignment无效。
-
解决办法:
六、快速重写方法
- 问题描述:有时候需要重写很多生命周期函数,很麻烦。
- 问题解决:DevEco提供了快速重写的方法Code-Override Methods。
七、previewer失败
- 问题描述:在本地预览功能previewer的时候,发现失败了
- 问题定位:Tools中preview Tool没下载或者不适配。
- 解决方法:通过-Tools-SDK Manager-Tools 把previewer进行下载
八、远程真机自动签名
- 问题描述:在https://developer.huawei.com/建立好项目和应用,返回到DevEco的后进行自动签名,一直刷新不出来。
- 问题定位:远程真机需要一直打开,自动签名才会成功
- 解决方法:打开远程真机,在https://developer.huawei.com/建立好项目和应用,返回DevEco。点击Project Structure-project-signing config
九、轻量级设备开发中Direction的变化
- 问题描述:新版的DevEco中标签direction的使用方法上下左右的属性值变化了。
toNextPage(e){
switch(e.direction){
case'left':
router.replace({
uri:'pages/index/index'
});
break;
case'down':
router.replace({
uri:'pages/index/report1/report1'
});
}
}
-
问题定位:
-
上-top(老版本-up)
下-bottom(老版本-down)
左-left
右-right
-
问题解决:
//调整以后的代码
toNextPage(e) {
switch (e.direction) {
case 'left':
router.replace({
uri: 'pages/index/index'
});
break;
case 'bottom':
router.replace({
uri: 'pages/index/report1/report1'
});
}
总结
学习鸿蒙一个多月了,总结一下这段时间折磨过我的问题,希望可以帮助到大家!
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2021-8-25 13:53:24修改
赞
8
收藏 6
回复
感谢楼主排坑。
总结的不错!
大佬牛逼
支持一个,很详细了!
太棒了
这种排坑的帖子非常有用
以后大家可以多发点这类的