中国最大的建站平台,种子网站模板,《网站建设》期末考试,一台vps可以做几个网站相对布局#xff08;RelativeContainer#xff09;
概述
RelativeContainer为采用相对布局的容器#xff0c;支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点#xff0c;也支持指定父容器作为锚点#xff0c;基于锚点做相对位置布局。下图是一个…相对布局RelativeContainer
概述
RelativeContainer为采用相对布局的容器支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点也支持指定父容器作为锚点基于锚点做相对位置布局。下图是一个RelativeContainer的概念图图中的虚线表示位置的依赖关系。
图1 相对布局示意图 子元素并不完全是上图中的依赖关系。比如Item4可以以Item2为依赖锚点也可以以RelativeContainer父容器为依赖锚点。
基本概念
锚点通过锚点设置当前元素基于哪个元素确定位置。对齐方式通过对齐方式设置当前元素是基于锚点的上中下对齐还是基于锚点的左中右对齐。
设置依赖关系
锚点设置
锚点设置是指设置子元素相对于父元素或兄弟元素的位置依赖关系。在水平方向上可以设置left、middle、right的锚点。在竖直方向上可以设置top、center、bottom的锚点。为了明确定义锚点必须为RelativeContainer及其子元素设置ID用于指定锚点信息。ID默认为“container”其余子元素的ID通过id属性设置。未设置ID的子元素在RelativeContainer中不会显示。
说明
在使用锚点时要注意子元素的相对位置关系避免出现错位或遮挡的情况。 RelativeContainer父组件为锚点__container__代表父容器的id。 RelativeContainer() {Row()// 添加其他属性.alignRules({top: { anchor: __container__, align: VerticalAlign.Top },left: { anchor: __container__, align: HorizontalAlign.Start }}).id(row1)Row()....alignRules({top: { anchor: __container__, align: VerticalAlign.Top },right: { anchor: __container__, align: HorizontalAlign.End }}).id(row2)
}
...以子元素为锚点。 RelativeContainer() {...top: { anchor: row1, align: VerticalAlign.Bottom },...
}
.width(300).height(300)
.margin({ left: 20 })
.border({ width: 2, color: #6699FF })设置相对于锚点的对齐位置
设置了锚点之后可以通过align设置相对于锚点的对齐位置。
在水平方向上对齐位置可以设置为HorizontalAlign.Start、HorizontalAlign.Center、HorizontalAlign.End。 在竖直方向上对齐位置可以设置为VerticalAlign.Top、VerticalAlign.Center、VerticalAlign.Bottom。 场景实例
相对布局内的子元素相对灵活只要在RelativeContainer容器内均可以通过alignRules进行相应的位置移动。
Entry
Component
struct Index {build() {Row() {RelativeContainer() {Row().width(100).height(100).backgroundColor(#FF3333).alignRules({top: { anchor: __container__, align: VerticalAlign.Top }, //以父容器为锚点竖直方向顶头对齐middle: { anchor: __container__, align: HorizontalAlign.Center } //以父容器为锚点水平方向居中对齐}).id(row1) //设置锚点为row1Row() {Image($r(app.media.icon))}.height(100).width(100).alignRules({top: { anchor: row1, align: VerticalAlign.Bottom }, //以row1组件为锚点竖直方向底端对齐left: { anchor: row1, align: HorizontalAlign.Start } //以row1组件为锚点水平方向开头对齐}).id(row2) //设置锚点为row2Row().width(100).height(100).backgroundColor(#FFCC00).alignRules({top: { anchor: row2, align: VerticalAlign.Top }}).id(row3) //设置锚点为row3Row().width(100).height(100).backgroundColor(#FF9966).alignRules({top: { anchor: row2, align: VerticalAlign.Top },left: { anchor: row2, align: HorizontalAlign.End },}).id(row4) //设置锚点为row4Row().width(100).height(100).backgroundColor(#FF66FF).alignRules({top: { anchor: row2, align: VerticalAlign.Bottom },middle: { anchor: row2, align: HorizontalAlign.Center }}).id(row5) //设置锚点为row5}.width(300).height(300).border({ width: 2, color: #6699FF })}.height(100%).margin({ left: 30 })}
}