列表组件使用问题咨询?

使用Grid组件时遇到了些问题,想咨询下:

问题1.Grid设置了columnsTemplate,发现高度无法根据内容自适应,试了同时设置rowsTemplate也不起作用。可以怎么让高度自适应吗?目前先改换成LIst组件实现了

问题2.想问下有类似clipToPadding的属性吗?想给列表加个底部间距,只在滑动到底部时显示,滑动过程中不会阻碍子组件的显示

阅读 644
1 个回答

关于第一个问题:按照文档描述,rowsTemplate、columnsTemplate都不设置时layoutDirection、maxcount、minCount、cellLength才生效,maxCount内的值为多少,对应方向上最大显示行数就是多少,可以理解为maxCount有一个高度控制开关,只要设置了maxCount之后,Grid就能实现自适应高度效果,具体使用方式请参考文档, 文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-grid-0000001815927620\#ZH-CN\_TOPIC\_0000001815927620\_\_属性

关于第二个问题:底部间距效果,需要自己填充空item,如下demo

@Entry
@Component
struct GridExample {
  @State Number: number[] = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]
  @State footer: String[] = ['','','']

  build() {
    Column({ space: 5 }) {
      Grid() {

        ForEach(this.Number, (day: string) => {
          GridItem() {
            Text("ksjdhfkadshfsadfjdshfldshfkashfdsadhfkjsadhfkjsahdfadsf")
              .fontSize(16)
              .backgroundColor(0xF9CF93)
              .width('100%')
              .height('auth')
              .textAlign(TextAlign.Center)
          }.backgroundColor(Color.Gray)
        })

        ForEach(this.footer, (day: string) => {
          GridItem() {

          }
          .height(40)
        })

      }
      .columnsTemplate('1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .scrollBar(BarState.Off)
      .width('90%')
      .backgroundColor(0xFAEEE0)

    }.width('100%').margin({ top: 5 })
    .height("100%")
    .backgroundColor(Color.Yellow)
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进