ts-container-grid.md 4.3 KB
Newer Older
Z
zengyawen 已提交
1 2
# Grid

H
geshi  
HelloCrease 已提交
3
>  **说明:**
Z
zengyawen 已提交
4
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
5

Y
Yao yuchi 已提交
6 7
网格容器,由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。

Z
zengyawen 已提交
8 9


Z
zengyawen 已提交
10 11

## 权限列表
Z
zengyawen 已提交
12 13 14



Z
zengyawen 已提交
15 16

## 子组件
Z
zengyawen 已提交
17 18 19

包含[GridItem](ts-container-griditem.md)子组件。

Z
zengyawen 已提交
20

Y
Yao yuchi 已提交
21
## 接口
Z
zengyawen 已提交
22 23 24 25 26 27 28 29 30 31 32 33

Grid()


## 属性

| 名称 | 参数类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| columnsTemplate | string | '1fr' | 用于设置当前网格布局列的数量,不设置时默认1列 示例, '1fr 1fr 2fr' 分三列,将父组件允许的宽分为4等份,第一列占1份,第二列占一份,第三列占2份。 |
| rowsTemplate | string | '1fr' | 用于设置当前网格布局行的数量,不设置时默认1行 示例, '1fr 1fr 2fr'分三行,将父组件允许的高分为4等份,第一行占1份,第二行占一份,第三行占2份。 |
| columnsGap | Length | 0 | 用于设置列与列的间距。 |
| rowsGap | Length | 0 | 用于设置行与行的间距。 |
34
| editMode<font color=ff0000><sup>8+</sup></font> | boolean | flase | 是否进入编辑模式,进入编辑模式可以拖拽Gird组件内部[GridItem](ts-container-griditem.md)。 |
35
| layoutDirection<font color=ff0000><sup>8+</sup></font>  | number | 0 |设置布局的主轴方向,目前支持的主轴布局方向如下:<br/>-&nbsp;0:主轴布局方向沿水平方向布局,即先填满一列,再去填下一列。 <br/>-&nbsp;1:主轴布局方向沿垂直方向布局,即先填满一行,再去填下一行。|
36 37 38
| maxCount<font color=ff0000><sup>8+</sup></font> | number | 1 | 当layoutDirection是Row时,表示可显示的最大行数<br/>当layoutDirection是Column时,表示可显示的最大列数。 |
| minCount<font color=ff0000><sup>8+</sup></font> | number | 1 | 当layoutDirection是Row时,表示可显示的最小行数<br/>当layoutDirection是Column时,表示可显示的最小列数。 |
| cellLength<font color=ff0000><sup>8+</sup></font> | number | 0 | 当layoutDirection是Row时,表示一行的高度<br/>当layoutDirection是Column时,表示一列的宽度。 |
Y
Yao yuchi 已提交
39
| multiSelectable<font color=ff0000><sup>8+</sup></font> | boolean | false | 是否开启鼠标框选。<br/>-&nbsp;false:关闭框选。<br/>-&nbsp;true:开启框选。 |
T
tianyu 已提交
40
| supportAnimation<font color=ff0000><sup>8+</sup></font> | boolean         | false                 | 控制Grid是否支持动画。 |
Y
Yao yuchi 已提交
41

Z
zengyawen 已提交
42 43
## 事件

Y
Yao yuchi 已提交
44
| 名称 | 功能描述 |
Z
zengyawen 已提交
45 46 47 48
| -------- | -------- |
| onScrollIndex(first:&nbsp;number)&nbsp;=&gt;&nbsp;void | 当前列表显示的起始位置item发生变化时触发。 |

## 示例
Z
zengyawen 已提交
49

H
geshi  
HelloCrease 已提交
50 51
```ts
// xxx.ets
Z
zengyawen 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
@Entry
@Component
struct GridExample {
  @State Number: String[] = ['0', '1', '2', '3', '4']

  build() {
    Column({ space: 5 }) {
      Grid() {
        ForEach(this.Number, (day: string) => {
          ForEach(this.Number, (day: string) => {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height('100%')
                .textAlign(TextAlign.Center)
            }
          }, day => day)
        }, day => day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .rowsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)

      Text('scroll').fontColor(0xCCCCCC).fontSize(9).width('90%')
      Grid() {
        ForEach(this.Number, (day: string) => {
          ForEach(this.Number, (day: string) => {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height(80)
                .textAlign(TextAlign.Center)
            }
          }, day => day)
        }, day => day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .onScrollIndex((first: number) => {
        console.info(first.toString())
      })
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)
    }.width('100%').margin({ top: 5 })
  }
}
```

Y
Yao yuchi 已提交
110
![zh-cn_image_0000001219744183](figures/zh-cn_image_0000001219744183.gif)