HarmonyOS Grid多次渲染会固定布局,如历史搜索记录展示,搜索文字长度不固定

HarmonyOS Grid多次渲染会固定布局,如历史搜索记录展示,搜索文字长度不固定。

HarmonyOS
2024-11-28 10:28:25
6140浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

​可以参考使用拉伸能力实现效果,拉伸能力是指容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域,通常通过Flex布局中的flexGrow和flexShrink属性实现,具体使用可参考文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/adaptive-layout-V5

可以加上FlexWrap.Wrap这个属性来换行,参考demo。​

@Entry 
@Component 
struct ListExample { 
  private arr: string[] = ['测试1111', '测试', '测试0', '测试112222', '测试112222yeyeyeyy', '测试1', '测试112222yeyeyeyyjdjkd'] 
 
  build() { 
    Column() { 
      Row() { 
        Flex({ wrap: FlexWrap.Wrap }) { 
          ForEach(this.arr, (item: string) => { 
            Text(item) 
              .height(50) 
              .fontSize(16) 
              .textAlign(TextAlign.Center) 
              .borderRadius(10) 
              .backgroundColor(0xFFFFFF) 
              .width('30%') 
              .flexGrow(1) 
              .flexShrink(0) 
          }, 
            (item: string) => item) 
        } 
      } 
 
      .height('100%') 
      .width('100%') 
      .backgroundColor(Color.Pink) 
      .justifyContent(FlexAlign.SpaceEvenly) 
 
 
    } 
    .width('100%').height('100%') 
    .backgroundColor(0xDCDCDC).padding({ 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.

如果是想实现类似搜索历史的功能的话,可以不用考虑flexGrow和flexShrink属性呢可以不设置元素的宽度依靠内边距来撑开内容,和设置外边距来控制边距,并且结合FlexWrap.Wrap 来让自动换行的操作。

分享
微博
QQ
微信
回复
2024-11-28 15:05:05
相关问题
如何实现搜索历史记录
1525浏览 • 1回复 待解决
HarmonyOS 搜索历史示例
555浏览 • 1回复 待解决
HarmonyOS 搜索记录的demo
807浏览 • 1回复 待解决
HarmonyOS 如何实现搜索历史功能
867浏览 • 1回复 待解决
HarmonyOS 怎么高亮显示搜索文字
924浏览 • 1回复 待解决
ArrayBuffer是否一定要传固定长度参数
2848浏览 • 1回复 待解决
如何固定应用窗口大小并居中展示
2956浏览 • 1回复 待解决
HarmonyOS 搜索功能
939浏览 • 1回复 待解决
HarmonyOS 签名固定问题
740浏览 • 1回复 待解决