相对布局DependentLayout,也是比较常用的一个布局管理器,在它里面,组件的排列方式是相对于其他同级组件或者父组件的位置进行布局。
- 相对同级组件
组件B神,想躲在组件A卡的后边时,在B神中用end_of属性指定A卡的身份id即可。你将end_of理解成追尾就好,也就是说,如果想让B在A的尾部,可在组件B神中,用end_of属性指定组件A的id名称,代码如下:
<DependentLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:background_element="$media:bg"> <Text ohos:id="$+id:a" ohos:height="match_content" ohos:width="match_content" ohos:background_element="#EC9DAA" ohos:margin="10vp" ohos:padding="10vp" ohos:text="我是A卡" ohos:text_size="18fp"/> <Text ohos:id="$+id:b" ohos:end_of="$id:a" ohos:height="match_content" ohos:width="match_content" ohos:background_element="#EC9DFF" ohos:margin="10vp" ohos:padding="10vp" ohos:text="我是B神,躲在A后边" ohos:text_size="18fp"/></DependentLayout>
运行虚拟机之后,效果如下图所示:
有在尾部的end_of,就有在前面的start_of,还有在左边的left_of等等,更多用于指定相对位置的属性,如下表所示:
APPer">属性名称 |
中文描述 |
取值 |
取值说明 |
使用案例 |
left_of |
将右边缘与另一个子组件的左边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:left_of="$id:component_id" |
right_of |
将左边缘与另一个子组件的右边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:right_of="$id:component_id" |
start_of |
将结束边与另一个子组件的起始边对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:start_of="$id:component_id" |
end_of |
将起始边与另一个子组件的结束边对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:end_of="$id:component_id" |
above |
将下边缘与另一个子组件的上边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id |
ohos:above="$id:component_id" |
below |
将上边缘与另一个子组件的下边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id |
ohos:below="$id:component_id" |
align_baseline |
将子组件的基线与另一个子组件的基线对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id |
ohos:align_baseline="$id:component_id" |
align_left |
将左边缘与另一个子组件的左边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:align_left="$id:component_id" |
align_top |
将上边缘与另一个子组件的上边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id |
ohos:align_top="$id:component_id" |
align_right |
将右边缘与另一个子组件的右边缘对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:align_right="$id:component_id" |
align_bottom |
将底边与另一个子组件的底边对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id |
ohos:align_bottom="$id:component_id" |
align_start |
将起始边与另一个子组件的起始边对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。
说明
|
ohos:align_start="$id:component_id" |
align_end |
将结束边与另一个子组件的结束边对齐 |
引用 |
仅可引用DependentLayout中包含的其他组件的id。 说明
|
ohos:align_end="$id:component_id" |
align_parent_left |
将左边缘与父组件的左边缘对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 说明
|
ohos:align_parent_left="true" ohos:align_parent_left="$boolean:true" |
align_parent_top |
将上边缘与父组件的上边缘对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 |
ohos:align_parent_top="true" ohos:align_parent_top="$boolean:true" |
align_parent_right |
将右边缘与父组件的右边缘对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 说明
|
ohos:align_parent_right="true" ohos:align_parent_right="$boolean:true" |
align_parent_bottom |
将底边与父组件的底边对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 |
ohos:align_parent_bottom="true" ohos:align_parent_bottom="$boolean:true" |
align_parent_start |
将起始边与父组件的起始边对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 说明
|
ohos:align_parent_start="true" ohos:align_parent_start="$boolean:true" |
align_parent_end |
将结束边与父组件的结束边对齐 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 说明
|
ohos:align_parent_end="true" ohos:align_parent_end="$boolean:true" |
center_in_parent |
将子组件保持在父组件的中心 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 |
ohos:center_in_parent="true" ohos:center_in_parent="$boolean:true" |
horizontal_center |
将子组件保持在父组件水平方向的中心 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 |
ohos:horizontal_center="true" ohos:horizontal_center="$boolean:true" |
vertical_center |
将子组件保持在父组件垂直方向的中心 |
boolean类型 |
可以直接设置true/false,也可以引用boolean资源。 |
ohos:vertical_center="true" ohos:vertical_center="$boolean:true" |
2. 相对父级组件
内部组件相对于外部组件的位置,如内部组件A在外部组件B的左上角,将align_parent_top设置为True即可。组件的位置布局可以进行组合,形成处于左上角、左下角、右上角、右下角的布局。
代码示例如下所示:
<DependentLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:background_element="$media:bg"> <Text ohos:id="$+id:b" ohos:height="match_content" ohos:width="match_content" ohos:align_parent_top="true" ohos:background_element="#EC9DFF" ohos:margin="10vp" ohos:padding="10vp" ohos:text="我是程序猿,我在左上角飘扬" ohos:text_size="18fp"/></DependentLayout>
运行虚拟机之后的效果如下图所示:
好了,想对布局的内容就说到这了,你自己多试试其他属性,看看效果。我写下一篇其他布局去了。对了,记得关注我,赚大发。
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我爱分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
#鸿蒙##华为鸿蒙##头条热搜##程序员##热门#
企业网站建设与开发最低只要299元起,包含域名服务器,需要的联系QQ345424724,电话15516990022,18530226930相关影片资源迅雷下载推荐
开发一个APP有多难?
APP发展对我们的影响不言而喻,微信、抖音、淘宝、滴滴打车、爱奇艺等等,几乎每天都伴随着我们的生活,但我们自己要做一个APP是否可以呢?答案是“当然可以”,那么做个APP要花多少钱呢?这也是所有朋友关心的问题 ...
APP开发,开发一个APP有多难?
标签: APP开发 第11天 | 鸿蒙App开发实战 相对布局