Grid实现单双列展示,谁有好的方案吗?

Grid实现单双列展示

HarmonyOS
2024-05-26 14:40:56
1395浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
失望的满天星

核心代码如下:

@Entry 
@Component 
struct GridExample1 { 
  @State numbers: string[] = [] 
  
  @State inputValue: string = 'click me' 
  @State columnsTemplateStr: string = '2fr 2fr' 
  @State widthNum: string = '50%' 
  aboutToAppear() { 
    for (let i = 1;i <= 5; i++) { 
      this.numbers.push(i + '') 
    } 
  } 
  
  build() { 
    Column({space:5}) { 
      Button(this.inputValue) 
        .onClick(() => { 
          if(this.columnsTemplateStr == '2fr' && this.widthNum == '100%'){ 
            this.columnsTemplateStr = '2fr 2fr' 
            this.widthNum = '50%' 
          }else{ 
            this.columnsTemplateStr = '2fr' 
            this.widthNum = '100%' 
          } 
        }).backgroundColor(0x317aff) 
      Grid() { 
        ForEach(this.numbers, (day: string) => { 
          GridItem() { 
            Text(day) 
              .fontSize(16) 
              .backgroundColor('#36D') 
              .width(this.widthNum) 
                // .width(130) 
              .height(80) 
              .textAlign(TextAlign.Center) 
          } 
          .selected(true) 
          .hitTestBehavior(HitTestMode.Transparent) 
          .onTouch((event?: TouchEvent) => { 
            console.log(`dzy>onTouch>item: ${day}, event.type: ${event.type}`) 
          }) 
        }) 
      } 
      // .columnsTemplate('2fr 2fr') 
      .columnsTemplate(this.columnsTemplateStr) 
      .columnsGap(10) 
      .rowsGap(10) 
      .width('90%') 
      .backgroundColor('#bfc') 
      .height('100%') 
      .multiSelectable(true) 
    }.width('100%').margin({ top: 5 }) 
  } 
}
  • 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.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.

实现效果

分享
微博
QQ
微信
回复
2024-05-27 19:53:24


相关问题
转场动画,谁有方案
1229浏览 • 1回复 待解决
taskpool使用 ,谁有方案
1554浏览 • 1回复 待解决
本地收发消息实践,谁有方案
1201浏览 • 1回复 待解决
Text模拟隐私协议,有方案
1491浏览 • 1回复 待解决
连接网络信息获取有方案
1457浏览 • 1回复 待解决
Scrollerfling实现有什么方案
1405浏览 • 1回复 待解决
har和hsp转换,有方案
1559浏览 • 1回复 待解决
在鸿蒙中netty有替代方案
880浏览 • 0回复 待解决
SM4 CBC模式加解密,有方案
1942浏览 • 1回复 待解决
屏幕旋转计算,有什么方案
1865浏览 • 2回复 待解决
包大小优化,有没有解决方案
1193浏览 • 2回复 待解决
oceanbase支持节点副本部署
4999浏览 • 1回复 待解决