相对布局(RelativeContainer)

相对布局(RelativeContainer)

HarmonyOS
2024-05-26 15:31:01
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

该demo实现了相对布局容器的锚点设置的动态展示,实现了以父容器为锚点和以子组件为锚点的动态展示效果;实现了相对于锚点的对齐位置的动态展示效果,分别为

竖直方向上的展示效果和水平方向上的展示效果;实现了子组件位置偏移的动态展示。它们均以按钮控制。

使用的核心API

核心API可参考:RelativeContainer

核心代码解释

  •  alignRules:设置子元素的对齐规则
  •  id:设置子元素id
  •  HorizontalAlign.Start:水平方向起始位置对齐
  •  HorizontalAlign.Center:水平方向居中对齐
  •  HorizontalAlign.End:水平方向末尾对齐
  •  VerticalAlign.Top:竖直方向顶端位置对齐
  •  VerticalAlign.Center:竖直方向居中对齐
  •  VerticalAlign.Bottom:竖直方向底端对齐
  •  offset:设置位置偏移
RelativeContainer() { 
Row() 
.width(100) 
.height(100) 
.backgroundColor("#FF3333") 
.alignRules({ 
top: {anchor: "__container__", align: VerticalAlign.Top}, 
left: {anchor: "__container__", align: HorizontalAlign.Start} 
}) 
.id("row1") 
.offset({ 
x: this.x, 
y: this.y 
}) 
} 
.width(300) 
.height(300) 
.border({width:2, color: "#6699FF"}) 
  
  
//RelativeContainer为采用相对布局的容器,支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。 
// 子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。 
import router from '@ohos.router' 
@Entry 
@Component 
struct Index { 
  build() { 
    Column({space: 30}) { 
      Text('相对布局(RelativeContainer)') 
        .fontSize(24) 
        .fontWeight(FontWeight.Bold) 
  
      Text('RelativeContainer为采用相对布局的容器,支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。' + 
        '子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。') 
  
      Button('锚点设置') 
        .width('50%') 
        .onClick(() =>{ 
          console.info('描点设置') 
          router.pushUrl({ 
            url: 'pages/AnchorExample' 
          }) 
        }) 
  
      Button('相对于锚点的对齐位置') 
        .width('50%') 
        .onClick(() =>{ 
          console.info('相对于锚点的对齐位置') 
          router.pushUrl({ 
            url: 'pages/AlignExample' 
          }) 
        }) 
  
      Button('子组件位置偏移') 
        .width('50%') 
        .onClick(() =>{ 
          console.info('子组件位置偏移') 
          router.pushUrl({ 
            url: 'pages/OffsetExample' 
          }) 
        }) 
  
    } 
    .width('100%') 
    .height('100%') 
    .margin({top: 10}) 
  } 
}

实现效果

分享
微博
QQ
微信
回复
2024-05-27 20:32:41
相关问题
RelativeContainer如何让多个view居中
376浏览 • 1回复 待解决
ArkTS布局组件实现瀑布流式布局
305浏览 • 1回复 待解决
基于tabs实现页面布局
164浏览 • 1回复 待解决
Text组件布局过界问题
349浏览 • 1回复 待解决
找不到图片和布局资源
10536浏览 • 8回复 待解决
请问原子布局能力怎么理解?
8923浏览 • 1回复 已解决
原子布局能力对应的api
8016浏览 • 1回复 待解决
ets中设置布局高度和宽度
1537浏览 • 1回复 待解决
音乐播放悬浮按钮该如何布局
339浏览 • 1回复 待解决