当前位置: 首页 > 科技观察

基于HarmonyOS的UI布局(一)

时间:2023-03-16 21:39:06 科技观察

更多内容请访问:https://harmonyos.51cto.com与华为官方联合打造的HarmonyOS技术社区概览华为HarmonyOS是一个全新的面向A全场景分布式操作系统和基于和谐的应用开发越来越广泛。鸿蒙系统是否也能像Android平台一样开发出丰富多彩的应用UI界面?通过对现有的androidUI知识的回顾和最近harmony应用开发的学习和研究,总结了一份UI框架开发文档,记录了一些开发中可能遇到的小问题和有用的技巧分享给大家。常用布局1.DirectionalLayout布局DirectionalLayout布局是有方向的布局,分为两种模式(vertical)垂直排列子元素,和(horizo??ntal)水平排列子元素。垂直排列的子元素的高度之和不能超过父元素,否则会被截取,超出的部分无法显示。同样,如果水平排列的子元素的宽度之和超过父元素,也会被拦截。水平排列和垂直排列通过设置ohos:orientation属性定义,ohos:orientation="vertical"为垂直排列,ohos:orientation="horizo??ntal"为水平排列;1、垂直排列上面的代码是三个textview在垂直方向的布局,效果图如下:2.水平排列上面代码是三个textview在水平方向的布局,效果图如下:3.AlignmentDirectionalLayout中的组件使用layout_alignment来控制自己布局中的对齐方式,当对齐方式与排列方式方向一致时,对齐方式不会生效,具体见下表三种基本对齐方式:左对齐、右对齐对齐和居中。ohos:layout_alignment="left"ohos:layout_alignment="horizo??ntal_center"ohos:layout_alignment="right"分别对应layout_alignment属性。布局显示的样式为:4.Weight权重(weight)是按照组件的比例分配父组件的大小,由ohos:weight属性定义。布局计算公式为:组件宽度=组件权重/所有组件权重之和*父布局可分配宽度;例如ohos:weight设置为ohos:weight="1",ohos:weight="2",ohos:weight="3"三个空格的布局分别占1/6,2/6,3/6分别为父空间。上面代码展示的布局效果图如下:2.DependentLayout布局DependentLayout相比DirectionalLayout,布局方式更多,每个组件可以指定自己相对于同级其他元素的位置,或者指定相对于父组件的位置1、相对于同级组件的位置布局2、相对于父组件的位置布局DependentLayout布局类似于Android的RelativeLayout,更加灵活,如何显示和调整组件布局可以自己测试三、TableLayout布局TableLayout以表格的形式划分子组件,即行和列,TableLayout可以配置表格的排列方式,行数和列数,以及组件的位置1.行列的设置ohos:row_count表示设置网格布局的行数,ohos:column_count表示设置列数在网格布局中。如果子布局没有设置行数和列数,它会自动继承父布局的行数和列数。在网格布局中,如果子组件的个数超过设置的列数,则自动添加行数。比如你设置了一行两列,但是有三个子组件,如果行号设置失败,会自动添加一行。如下设置三行两列。布局如下。2。设置对齐方式。通过属性ohos:alignment_type设置对齐方式,如下:...4.StackLayoutStackLayout直接在屏幕上开辟一块空白区域。添加到该布局中的视图以层叠方式显示,默认将这些视图放置在该区域的左上角。第一个添加到布局中的第一个视图显示在底部,最后一个放在顶部。上一层的视图会覆盖下一层的视图。上述代码效果图如下:更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto。com