首页 » 软件优化 » 相对布局(组件属性布局冲突引用)

相对布局(组件属性布局冲突引用)

落叶飘零 2024-10-24 08:42:43 0

扫一扫用手机浏览

文章目录 [+]

<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等等,更多用于指定相对位置的属性,如下表所示:

属性名称

相对布局(组件属性布局冲突引用) 软件优化
(图片来自网络侵删)

中文描述

取值

取值说明

使用案例

left_of

将右边缘与另一个子组件的左边缘对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

left_of与start_of、end_of属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,left_of会与start_of属性冲突;在“水平布局方向为从右到左”时,left_of会与end_of属性冲突。
同时配置时,start_of、end_of优先级高于left_of属性。

ohos:left_of="$id:component_id"

right_of

将左边缘与另一个子组件的右边缘对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

right_of与start_of、end_of属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,right_of会与end_of属性冲突;在“水平布局方向为从右到左”时,right_of会与start_of属性冲突。
同时配置时,start_of、end_of优先级高于right_of属性。

ohos:right_of="$id:component_id"

start_of

将结束边与另一个子组件的起始边对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

start_of与left_of、right_of属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,start_of会与left_of属性冲突;在“水平布局方向为从右到左”时,start_of会与right_of属性冲突。
同时配置时,start_of优先级高于left_of、right_of属性。

ohos:start_of="$id:component_id"

end_of

将起始边与另一个子组件的结束边对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

end_of与left_of、right_of属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,end_of会与right_of属性冲突;在“水平布局方向为从右到左”时,end_of会与left_of属性冲突。
同时配置时,end_of优先级高于left_of、right_of属性。

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。

说明

align_left与align_start、align_end属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_left会与align_start属性冲突;在“水平布局方向为从右到左”时,align_left会与align_end属性冲突。
同时配置时,align_start、align_end优先级高于align_left属性。

ohos:align_left="$id:component_id"

align_top

将上边缘与另一个子组件的上边缘对齐

引用

仅可引用DependentLayout中包含的其他组件的id

ohos:align_top="$id:component_id"

align_right

将右边缘与另一个子组件的右边缘对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

align_right与align_start、align_end属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_right会与align_end属性冲突;在“水平布局方向为从右到左”时,align_right会与align_start属性冲突。
同时配置时,align_start、align_end优先级高于align_right属性。

ohos:align_right="$id:component_id"

align_bottom

将底边与另一个子组件的底边对齐

引用

仅可引用DependentLayout中包含的其他组件的id

ohos:align_bottom="$id:component_id"

align_start

将起始边与另一个子组件的起始边对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

align_start与align_left、align_right属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_start会与align_left属性冲突;在“水平布局方向为从右到左”时,align_start会与align_right属性冲突。
同时配置时,align_start优先级高于align_left、align_right属性。

ohos:align_start="$id:component_id"

align_end

将结束边与另一个子组件的结束边对齐

引用

仅可引用DependentLayout中包含的其他组件的id。

说明

align_end与align_left、align_right属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_end会与align_right属性冲突;在“水平布局方向为从右到左”时,align_end会与align_left属性冲突。
同时配置时,align_end优先级高于align_left、align_right属性。

ohos:align_end="$id:component_id"

align_parent_left

将左边缘与父组件的左边缘对齐

boolean类型

可以直接设置true/false,也可以引用boolean资源。

说明

align_parent_left与align_parent_start、align_parent_end属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_parent_left会与align_parent_start属性冲突;在“水平布局方向为从右到左”时,align_parent_left会与align_parent_end属性冲突。
同时配置时,align_parent_start、align_parent_end优先级高于align_parent_left属性。

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资源。

说明

align_parent_right与align_parent_start、align_parent_end属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_parent_right会与align_parent_end属性冲突;在“水平布局方向为从右到左”时,align_parent_right会与align_parent_start属性冲突。
同时配置时,align_parent_start、align_parent_end优先级高于align_parent_right属性。

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资源。

说明

align_parent_start与align_parent_left、align_parent_right属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_parent_start会与align_parent_left属性冲突;在“水平布局方向为从右到左”时,align_parent_start会与align_parent_right属性冲突。
同时配置时,align_parent_start优先级高于align_parent_left、align_parent_right属性。

ohos:align_parent_start="true"

ohos:align_parent_start="$boolean:true"

align_parent_end

将结束边与父组件的结束边对齐

boolean类型

可以直接设置true/false,也可以引用boolean资源。

说明

align_parent_end与align_parent_left、align_parent_right属性有冲突,不建议一起使用。
在“水平布局方向为从左到右”时,align_parent_end会与align_parent_right属性冲突;在“水平布局方向为从右到左”时,align_parent_end会与align_parent_left属性冲突。
同时配置时,align_parent_end优先级高于align_parent_left、align_parent_right属性。

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方面的干货了。
赶紧来围观啊!!!

#鸿蒙##华为鸿蒙##头条热搜##程序员##热门#

标签:

相关文章