更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos。51cto.com1.天干计划介绍:基于HCIA鸿蒙应用开发认证创建并构建一系列学习路线、学习总结、学习心得分享。《鸿蒙北向天干计划》收录,十干:烟风、展梦、柔照、强语、竹用、土味、上章、重光、玄衣、昭阳。对应HCIA-HarmonyOSApplicationDeveloperV1.0认证十章。天干项目是我的HCIA学习认证之路,也是开发者学习HCIA认证的一堂课!部分参考资料:主要参考:HCIA-HarmonyOS应用开发者V1.0认证考试大纲、学员用书、培训资料、实验手册华为达人在线-HCIA-HarmonyOS应用开发者四部分文档分析。其他参考:鸿蒙开发文档-鸿蒙官网、鸿蒙开源项目-Gitee。目的:与想获得HCIA-HarmonyOSApplicationDeveloperV1.0认证的开发者一起学习HarmonyOS,共同总结难点和知识点。针对准备加入、学习和打造鸿蒙的开发者,提供基于认证路线的学习思路和学习心得。扎根鸿蒙技术社区,助力鸿蒙开发者生态建设,繁荣鸿蒙生态。为中华民族的复兴而学习!万物互联方案!二、第四章JavaUI设计与开发全面掌握(一)课程及考试大纲:第四章UI页面设计与开发,笔试占31%JavaUI开发JSUI开发UI设计多模输入培训教材(273页):JavaUI设计与开发(P118-P138);JSUI设计与开发(P139-P154);用户界面设计(P155-161);摘要(第162-165页)。总量约占17%。学生用书(365页):第4章JavaUI设计与开发(P151-P276),约占34%;第5章JSUI设计与开发(P277-P301),约占6%。第四、五章约占总页数的40%。实验手册(6个实验):三是手机天气预报界面设计,四是手表天气预报界面设计。三是JavaUI设计开发,四是JSUI设计开发。补充(来源:官方文档JSAPI参考):多模式输入(来源:官方文档UI):多模式输入感觉重点在JavaUI框架上。所以我把JavaUI框架放在天干项目的开头。概括四大知识点,学生用书有JavaUI开发和JSUI开发,培训教材有UI设计。多模式输入,辅之以学。(2)成功就在不远处。第4章JavaUI框架共八节。我把这八个部分分成三个部分。开始:4.1、4.2、4.4核心:4.3、4.5结束:4.6、4.7、4.8建议:根据培训资料学习JavaUI开发和JSUI开发,根据官方文档学习多模式输入根据实验手册用于知识连接和代码复制III。4.1JavaUI框架概述IV概念三描述两张图IV概念:Component中文描述:组件概述:绘制交互对象ComponentContainer中文描述:容器,布局概述:LayoutConfig,可以容纳组件和容器的容器中文描述:布局配置概述:提供了各个布局,子组件用于设置布局的属性和参数。组织结构布局。可以结合数据结构中的树结构来理解。Picking:(1)根节点是唯一的(2)层级结构(3)子节点和父节点【与节点和树的前身和后方不是同一个概念】用户界面(即UI)的三种描述,UserInterface),统称为用户界面元素,所有的组件都是由Component和ComponentContainer对象组成。Component是界面中所有组件的基类,即ComponentContainer其实是一个组件,一个布局组件。可以包含其他组件(称为子组件)的特殊组件。可以包含其他组件(称为子组件)的特殊组件。JavaUI框架为容器提供了标准的布局功能,直接继承ComponentContainer,间接继承Component。布局容器一般以Layout结尾,但也有例外,例外,还有例外!例如:提供滑动翻页功能的PageSlider、提供内容滚动功能的ScrollView、提供翻页效果的PageFlipper两张图(简单)组件结构图LayoutConfig图4、4.2组件与Layout开发指导一个接口,两种方法,三种分类一、接口setUIContent(ComponentContainerroot)接口说明:设置接口入口,root是接口组件树的根节点背景知识:鸿蒙提供了两个基础类,Ability和AbilitySlice,AbilitySlice承载了单页的最小单元和逻辑执行。AbilitySlice通过这个接口设置布局。实景:两种方式概述(布局的写法):通过XML声明布局通过代码创建布局对比:相同:加载后可以修改区别:XML声明更方便,代码方式有一个更高程度的自定义示例:三类(组件按功能分类)概述布局类显示类交互类具体功能说明和属性设置见API参考。5.4.4组件通用XML属性概述:组件通用XML属性是指每个组件都可以使用的XML属性,布局组件(layouts)也可以使用。注意:默认大小的单位是px(需要掌握fp,px,vp)string类型建议在string中设置xml属性。)分类(可以点开链接看完整文档,这里只是总结一下容易出问题的)基本属性名:id(1)不是class样式:theme(1)type是引用类型,参考patternresourcetransparency:alpha(1)区别同JS样式opacity(2)取值为0-1,0-1不会报错(3)必须和XML属性区别visibilityineffect(4)即使透明度为0,仍然占用空间。Visibility:visibility(1)在效果上,区别于transparencyalpha(2)visible,invisible,hide分别对应visible,invisible但占用空间,invisible不占用空间,是否可点击:clickable(1)是否设置点击事件支持长按的前提条件:long_click_enabled(1)实现长按功能的关键背景层:background_element(1)注意Elementtype的值可以设置成各种间距(关于spacingoverallpriority)内间距:padding外边距:margin外边距出现冲突时的优先级:内间距冲突时的优先级:滚动条(特色属性)粗细:scrollbar_thickness起始角度:scrollbar_start_angle扫描角度:scrollbar_sweep_angle(1)角度不同,所以条形滚动组件ProgressBar和后面的组件是不同的环形滚动组件RoundProgressBarFading(比较有意思的属性):scrollbar_fading_enabled,scrollbar_fading_delay,scrollbar_fading_duration(1)对应是否淡入淡出,淡入淡出延迟,淡入淡出时间旋转缩放(这部分和动画有关)旋转点X,Y:pivot_x,pivot_y在X和Y的缩放级别directions:scale_x,scale_yX和Y方向的移动距离:translation_xandtranslation_yfocus(gesture,touchscreenrelated)是否可聚焦:focusable触摸状态:focusable_in_touch更多信息请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com
