• openharmony容器组件之Grid


    Grid:网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局

    Grid()属性:

    columnsTemplate:用于设置当前网格布局列的数量,不设置时默认1列 示例, ‘1fr 1fr 2fr’ 分三列,将父组件允许的宽分为4等份,第一列占1份,第二列占一份,第三列占2份。
    rowsTemplate:用于设置当前网格布局行的数量,不设置时默认1行 示例, '1fr 1fr 2fr’分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。
    columnsGap:用于设置列与列的间距。
    rowsGap:用于设置行与行的间距。
    以下属性SDK8拥有:
    editMode:是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部GridItem。
    layoutDirection:设置布局的主轴方向,目前支持的主轴布局方向如下:
        LayoutDirection.Row:沿水平方向布局,即先填满一列,再去填下一列。
        LayoutDirection.Column:沿垂直方向布局,即先填满一行,再去填下一行。
    maxCount:当layoutDirection是Row时,表示可显示的最大行数,当layoutDirection是Column时,表示可显示的最大列数。
    minCount:当layoutDirection是Row时,表示可显示的最小行数,当layoutDirection是Column时,表示可显示的最小列数。
    cellLength:当layoutDirection是Row时,表示一行的高度,当layoutDirection是Column时,表示一列的宽度。
    multiSelectable:是否开启鼠标框选,false:关闭框选,true:开启框选。
    dragAnimation:是否开启拖拽GridItem动画。
    edgeEffection:设置边缘滑动效果,目前支持的滑动效果EdgeEffect
        Spring:弹性物理动效,滑动到边缘后可以根据初始速度或通过触摸事件继续滑动一段距离,松手后回弹。
        None:滑动到边缘后无效果。

    效果如图:

    代码:

    1. @Entry
    2. @Component
    3. struct GridTest {
    4. @State Number: String[] = ['0', '1', '2', '3', '4']
    5. build() {
    6. Column({ space: 5 }) {
    7. Grid() {
    8. ForEach(this.Number, (day: string) => {
    9. ForEach(this.Number, (day: string) => {
    10. GridItem() {
    11. Text(day)
    12. .fontSize(16)
    13. .backgroundColor(0xF9CF93)
    14. .width('100%')
    15. .height('100%')
    16. .textAlign(TextAlign.Center)
    17. }
    18. }, day => day)
    19. }, day => day)
    20. }
    21. .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
    22. .rowsTemplate('1fr 1fr 1fr 1fr 1fr')
    23. .columnsGap(10)
    24. .rowsGap(10)
    25. .width('90%')
    26. .editMode(true)
    27. .backgroundColor(0xFAEEE0)
    28. .height(300)
    29. Text('C_scroll').fontColor(0x000000).fontSize(9).width('90%')
    30. Grid() {
    31. ForEach(this.Number, (day) => {
    32. ForEach(this.Number, (day) => {
    33. GridItem() {
    34. Text(day)
    35. .fontSize(16)
    36. .backgroundColor(0xF9CF93)
    37. .width('100%')
    38. .height(80)
    39. .textAlign(TextAlign.Center)
    40. }
    41. }, day => day)
    42. }, day => day)
    43. }
    44. .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
    45. .columnsGap(10)
    46. .rowsGap(10)
    47. .onScrollIndex((first: number) => {
    48. console.info(first.toString())
    49. })
    50. .width('90%')
    51. .backgroundColor(0xFAEEE0)
    52. .height(300)
    53. }
    54. .width('100%')
    55. .height('100%')
    56. }
    57. }

  • 相关阅读:
    Java 8之后的那些新特性(三):Java System Logger
    想做钢铁侠?听说很多大佬都是用它入门的
    TCP的发送系列 — 发送缓存的管理(一)
    sql库函数
    xgboost配置GPU
    Android init.rc 解析
    virtio frontend and backend
    猿创征文 | 【IoT开发工具箱】Postman模拟https请求
    设计模式学习(十一)责任链模式
    福建三明大型工程机械3D扫描测量工程零件开模加工逆向抄数-CASAIM中科广电
  • 原文地址:https://blog.csdn.net/lplj717/article/details/126249100