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

  • 相关阅读:
    Failed to prepare the device for development
    Part3_理解MATSIM_第51章 效益-成本分析中matsim的微观经济学解释
    free marker /spring boot
    3、在docker 容器中安装tomcat
    Java浮点运算为什么不精确
    # 深入理解高并发编程(二)
    java的序列化和反序列化
    Git clone 提示“Could not resolve hostname”解决
    Hyper-V 安装 CentOS (二)
    从过去到未来:回顾DDR技术的演进和未来趋势
  • 原文地址:https://blog.csdn.net/lplj717/article/details/126249100