• 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. }

  • 相关阅读:
    js异步编程-题目29 实现异步任务执行器 AsyncWorker
    划水日常(16.5)关于出版图书有偿征集书名 ~
    GEE:Bfast时间序列扰动检测
    JVM运行时数据区
    中国人民大学与加拿大女王大学金融硕士——不忘初心,点燃梦想之火
    根据表名称快速查询表所有字段是否包含特定数据筛选
    读取 resources 目录下的文件路径的几种方法
    渲染时间过长?这些参数设置学起来
    js NaN不等于NaN
    【基础算法系列】离散化与前缀和算法的运用
  • 原文地址:https://blog.csdn.net/lplj717/article/details/126249100