HarmonyOS 鸿蒙Next 如何实现左右两个Row的高度一致

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

HarmonyOS 鸿蒙Next 如何实现左右两个Row的高度一致

如何实现左右两个Row的高度一致,左边Row高度随着右边Row的高度变化

3 回复

使用相对布局,左边row与右边row上下对齐

更多关于HarmonyOS 鸿蒙Next 如何实现左右两个Row的高度一致的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以使用onAreaChange获取右边Row的高度,设置左侧的高度,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-component-area-change-event-V5#onareachange

可以参考demo:

[@Component](/user/Component)

[@Entry](/user/Entry)

struct Index{

  [@State](/user/State) lineHeight:Length=20;

  build(){

    Row(){

      Column(){

        Line()

          .stroke('#CCCCCC')

          .startPoint([0,0])

          .endPoint([0,this.lineHeight])

          .stroke(Color.Red)

          .strokeWidth(5)

          .strokeDashArray([10,3])

          .height(this.lineHeight)

          .width(5)

      }

      Column(){

        Text('右侧组件区域').fontSize(20)

      }

      .onAreaChange((oldValue:Area,newValue:Area)=>{

        this.lineHeight=newValue.height

      })

      .height(100)

      .layoutWeight(1)

      .backgroundColor(Color.Gray)

    }

    .width('100%')

  }

}

在HarmonyOS鸿蒙Next中,实现左右两个Row的高度一致,可以通过以下方式实现:

  1. 使用Container统一高度:将两个Row放置在一个Container中,并给Container设置固定的高度。这样,两个Row会因为父容器的高度限制而保持一致。
<Container height="100vp"> <!-- 假设高度为100vp -->
    <Row>
        <!-- 左侧Row的内容 -->
    </Row>
    <Row>
        <!-- 右侧Row的内容 -->
    </Row>
</Container>
  1. 利用Flex布局:如果两个Row处于同一个父级布局中,可以使用Flex布局,并设置相同的flex-grow和flex-shrink属性,确保它们在可用空间内等比例扩展或收缩。
<Flex>
    <Row flex="1">
        <!-- 左侧Row的内容 -->
    </Row>
    <Row flex="1">
        <!-- 右侧Row的内容 -->
    </Row>
</Flex>
  1. 手动设置高度:直接为两个Row设置相同的高度值。
<Row height="50vp">
    <!-- 左侧Row的内容 -->
</Row>
<Row height="50vp">
    <!-- 右侧Row的内容 -->
</Row>

选择适合你的布局方式,确保两个Row的高度一致。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部