HarmonyOS 鸿蒙Next RelativeContainer 高度如何自适应子组件高度

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next RelativeContainer 高度如何自适应子组件高度

【关键字】

RelativeContainer / GridItem子组件 / 自适应子组件高度

【问题描述】

使用alignRules参数会导致RelativeContainer填充了整个父组件的高度,如何实现自适应子组件高度呢?

Demo示例:

RelativeContainer() {
// Row() {
// }
// .margin({ bottom: ‘15lpx’ })
// .width(‘100%’)
// .height(‘0.5lpx’)
// .backgroundColor(’#D7DEE2’)
// .id(“line”)

Image($r(‘app.media.checkBoxSelected’)) .width(‘23lpx’) .height(‘23lpx’) .margin({ left: ‘16lpx’, right: ‘16lpx’ }) .alignRules({ center: { anchor: container, align: VerticalAlign.Center }, left: { anchor: container, align: HorizontalAlign.Start } }) .id(‘img1’) } .width(‘100%’) .height(‘auto’) .margin({ bottom: ‘14lpx’ }).padding({ top: ‘15lpx’, bottom: ‘15lpx’ })<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

【解决方案】

RelativeContainer容器的默认高度是根据其父容器的高度来确定的,当前还不支持自适应高度。如果RelativeContainer没有设置具体的高度值,它会自动继承父容器的高度。如果父容器的高度是100%屏幕高度,那么RelativeContainer的高度也会是100%屏幕高度。但是如果父容器的高度是固定值或者其他百分比值,RelativeContainer的高度也会相应地进行调整。

如果设置百分比无法满足您的需求,当前您可以使用其他组件实现,比如grid组件中maxCount可以实现自适应调节。

参考链接如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid-0000001821000901

5 回复
  • 从API Version 11开始,在RelativeContainer组件中,width、height设置auto表示自适应子组件。
  • 当width设置auto时,如果水平方向上子组件以容器作为锚点,则auto不生效,垂直方向上同理。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

请问如何设置,有代码吗,其他组件也支持吗

Row和Column本身就是自适应子组件的 RelativeContainer的话,如果想高度自适应就把height设置为auto;然后其中子组件在垂直方向不能以__container__为锚点

这也太der了吧。。。是人能设计出来的?不能以__container__为锚点还怎么置顶了。。。

回到顶部