🚀一、RelativeContainer
🔎1.概述
ArkUI元件中的RelativeContainer是一個相對定位的容器,可以用來將子元件按照相對位置佈局。
在RelativeContainer中,每個子元件都可以設定相對於父容器或其他元件的位置和大小。可以透過設定相對位置、偏移量、寬度和高度來實現佈局。相對位置可以設定為左側、上方、右側和下方。偏移量可以設定為相對位置的偏移值,例如向右偏移10畫素或向下偏移5畫素。寬度和高度可以設定為相對值或絕對值。
使用RelativeContainer時,要注意避免元件重疊或越出容器邊界的情況。可以使用zIndex屬性來設定元件的堆疊順序,避免遮蓋問題。同時,也可以使用padding屬性來設定內邊距,避免元件緊貼容器邊緣。
更多鴻蒙最新技術知識點,請關注作者部落格:https://t.doruo.cn/14DjR1rEY
RelativeContainer是一個非常靈活的容器元件,可以實現各種複雜的佈局效果。
🔎2.設定依賴關係
🦋2.1 錨點設定
在網頁中,錨點是指可以跳轉到頁面中特定位置的連結。設定錨點需要以下步驟:
在 HTML 頁面中找到要設定錨點的位置。
在該位置的標籤中新增一個 ID 屬性,併為其賦一個唯一的值。例如:
Section 1
。在引用該錨點的連結中,將連結目標指向該 ID。例如:Go to Section 1。
當使用者點選連結時,頁面會自動滾動到設定的錨點位置。
更多鴻蒙最新技術知識點,請關注作者部落格:https://t.doruo.cn/14DjR1rEY
但在RelativeContainer中錨點其實是對於的參照物,具體用法介紹如下:
- 在水平方向上,可以設定left、middle、right的錨點。
- 在豎直方向上,可以設定top、center、bottom的錨點。
- 必須為RelativeContainer及其子元素設定ID,用於指定錨點資訊。RelativeContainer的ID預設為__container__
1、RelativeContainer父元件為錨點,__container__代表父容器的id
RelativeContainer() {
Row(){
Text('1').width('33%').height(50).backgroundColor(0xF5DEB3)
}
// 新增其他屬性
.alignRules({
top: { anchor: '__container__', align: VerticalAlign.Top },
left: { anchor: '__container__', align: HorizontalAlign.Start }
})
.id("row1")
Row(){
Text('2').width('33%').height(50).backgroundColor(0xD2B48C)
}
.alignRules({
top: { anchor: '__container__', align: VerticalAlign.Top },
right: { anchor: '__container__', align: HorizontalAlign.End }
})
.id("row2")
}
.width(300).height(300)
.margin({ left: 20 })
.border({ width: 2, color: '#6699FF' })
2、以子元素為錨點
RelativeContainer() {
Row(){
Text('1').width('33%').height(50).backgroundColor(0xF5DEB3)
}
// 新增其他屬性
.alignRules({
top: { anchor: '__container__', align: VerticalAlign.Top },
left: { anchor: '__container__', align: HorizontalAlign.Start }
})
.id("row1")
Row(){
Text('2').width('33%').height(50).backgroundColor(0xD2B48C)
}
.alignRules({
top: { anchor: 'row1', align: VerticalAlign.Bottom },
right: { anchor: 'row1', align: HorizontalAlign.End }
})
.id("row2")
}
.width(300).height(300)
.margin({ left: 20 })
.border({ width: 2, color: '#6699FF' })
🦋2.2 設定相對於錨點的對齊位置
1、在水平方向上,對齊位置可以設定為HorizontalAlign.Start、HorizontalAlign.Center、HorizontalAlign.End
2、在豎直方向上,對齊位置可以設定為VerticalAlign.Top、VerticalAlign.Center、VerticalAlign.Bottom
🔎3.案例
@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') //設定錨點為row1
Row() {
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') //設定錨點為row2
Row()
.width(100)
.height(100)
.backgroundColor('#FFCC00')
.alignRules({
top: { anchor: 'row2', align: VerticalAlign.Top }
})
.id('row3') //設定錨點為row3
Row()
.width(100)
.height(100)
.backgroundColor('#FF9966')
.alignRules({
top: { anchor: 'row2', align: VerticalAlign.Top },
left: { anchor: 'row2', align: HorizontalAlign.End },
})
.id('row4') //設定錨點為row4
Row()
.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 })
}
}
🚀寫在最後
- 如果你覺得這篇內容對你還蠻有幫助,我想邀請你幫我三個小忙:
- 點贊,轉發,有你們的 『點贊和評論』,才是我創造的動力。
- 關注小編,同時可以期待後續文章ing🚀,不定期分享原創知識。
- 更多鴻蒙最新技術知識點,請關注作者部落格:https://t.doruo.cn/14DjR1rEY