相对布局显示异常,约束条件不是预期效果(HarmonyOS 鸿蒙Next)

相对布局显示异常,约束条件不是预期效果(HarmonyOS 鸿蒙Next)

@Builder editRingView(){ RelativeContainer() {

  Text(this.dragHint)
    .fontSize(14)
    .fontColor($r('app.color.kw_common_cl_white_alpha_50'))
    .backgroundColor($r('app.color.kw_yellow'))
    .width('auto')
    .id('hintText')
    .textAlign(TextAlign.Center)
    .alignRules({
      middle: { anchor: '__container__', align: HorizontalAlign.Center },
      top: { anchor: "__container__", align: VerticalAlign.Top }
    })
    .height(44)

  CommonLyricComponent({showTitle:false})
    .width(CommonConstants.FULL_PARENT)
    .margin({ top: 5 , bottom: 5 , left: 20 , right: 20})
    .alignRules({
      middle: { anchor: '__container__', align: HorizontalAlign.Center },
      top: { anchor: "hintText", align: VerticalAlign.Bottom }
    })
    .id('lyricView')
    .height('50%')

  Text('\ue894 播放')
    .fontColor($r('app.color.kw_common_cl_white_alpha_50'))
    .fontWeight(FontWeight.Normal)
    .fontSize(15)
    .textAlign(TextAlign.Center)
    .width('100%')
    .alignRules({
      middle: { anchor: '__container__', align: HorizontalAlign.Center },
      top: { anchor: "lyricView", align: VerticalAlign.Bottom }
    })
    .margin({ top: 5 , bottom: 5 , left: 20 , right: 20})
    .backgroundColor($r('app.color.text_blue_color'))
    .borderRadius(25)
    .height(75)
    .id('dragView')

  Row() {
    Text('\ue894 播放')
      .fontColor($r('app.color.kw_common_cl_white_alpha_50'))
      .fontWeight(FontWeight.Normal)
      .fontSize(15)
      .textAlign(TextAlign.Center)
      .width('45.18675%')
      .borderRadius(25)
      .height(43)
      .backgroundColor($r('app.color.item_img_bg_gray_color'))
      .onClick(() => {

      })
      .margin({ top: 10})
    Text('\ue894 设置为铃声或闹钟')
      .fontColor($r('app.color.normal_black_text_color'))
      .fontWeight(FontWeight.Normal)
      .fontSize(15)
      .textAlign(TextAlign.Center)
      .width('45.18675%')
      .borderRadius(25)
      .height(43)
      .backgroundColor($r('app.color.item_img_bg_gray_color'))
      .onClick(() => {

      })
      .margin({ top: 10})
  }
    .width(CommonConstants.FULL_PARENT)
    .height(73)
    .alignRules({
      middle: { anchor: '__container__', align: HorizontalAlign.Center },
      bottom: { anchor: "__container__", align: VerticalAlign.Bottom },
      // top: { anchor: "dragView", align: VerticalAlign.Bottom }
    })
    .backgroundColor($r('app.color.white_color'))
    .alignItems(VerticalAlign.Center)
    .justifyContent(FlexAlign.SpaceBetween)
}
.backgroundColor($r('app.color.button_yellow'))
.width(CommonConstants.FULL_PARENT)
.height(CommonConstants.FULL_PARENT)

}

相对布局中,想实现前三个上对齐,最后一个下对齐。下对齐的会跑到屏幕外面。

图像描述


更多关于相对布局显示异常,约束条件不是预期效果(HarmonyOS 鸿蒙Next)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于相对布局显示异常,约束条件不是预期效果(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,相对布局显示异常可能与约束条件的设置有关。相对布局依赖于组件之间的相对位置关系,常见的约束条件包括alignParentTopalignParentBottomtoLeftOftoRightOf等。如果约束条件设置不正确,可能导致组件位置不符合预期。

首先,检查XML布局文件中各组件的约束条件是否明确且合理。例如,确保每个组件至少有一个水平和一个垂直方向的约束。如果某个组件缺少约束,系统可能无法正确计算其位置。

其次,确保约束条件之间没有冲突。例如,某个组件同时设置了alignParentTopalignParentBottom,这可能导致布局计算异常。

最后,考虑使用ConstraintLayout替代RelativeLayoutConstraintLayout提供了更灵活的约束机制,能够更好地处理复杂的布局需求。如果问题仍然存在,可以通过调试工具检查布局的边界和约束条件,进一步定位问题根源。

回到顶部