HarmonyOS 关于list横向滚动高度不会自适应子组件问题?

创建了一个横向的list,item是一个text,只设置了宽度,但是展示出来的效果是,list会铺满全屏,在不设置高度的情况下,我就想问下,如何让list的高度自适应

阅读 641
1 个回答

可以参考以下demo:

@Entry
@Component
struct listDemoFirst {
  private arr: string[] = ['0zkjsajlkhzfdjlaskhfiu', '1', '2hsaifuhshjflknsddukfhkushvkushiahfuisyujag', '3', '4', '5slkhfvuisdhvlansdkufyslfnsd', '6', '7', '8', '9isuidbhnakgcuahkucgyauis'];
  @State sizeValue: string = '';
  build() {
    Row() {
      List() {
        ForEach(this.arr, (item: string) => {
          ListItem() {
            Text(item)
              .width('30%')
              .height('auto')
              .fontSize(16)
              .border({ width: 1 })
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0xFFFFFF)
              .onAreaChange((oldValue: Area, newValue: Area) => {
                console.log(newValue.height.toString())
                if (Number(newValue.height) > Number(this.sizeValue)) {
                  this.sizeValue = newValue.height.toString()
                }
              })
          }
        },
          (item: string) => item)
      }
      .listDirection(Axis.Horizontal)
      .scrollBar(BarState.Auto)
      .backgroundColor(Color.Gray)
      .width('100%')
      .height(this.sizeValue)
    }
    .width('100%')
    .padding({ top: 5 })
  }

}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进