• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ListItem
2
3用来展示列表具体item,宽度默认充满List组件,必须配合List来使用。
4
5>  **说明:**
6>
7>  该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## 子组件
11
12可以包含单个子组件。
13
14
15## 接口
16
17ListItem(value?: string)
18
19
20## 属性
21
22| 名称                      | 参数类型    | 默认值         | 描述                                       |
23| ----------------------- | ------- | ----------- | ---------------------------------------- |
24| sticky                  | Sticky  | Sticky.None | 设置ListItem吸顶效果,参见Sticky枚举描述。<br/>默认值:Sticky.None |
25| editable                | boolean&nbsp;\|&nbsp;EditMode | false       | 当前ListItem元素是否可编辑,进入编辑模式后可删除或移动。<br/>默认值:false |
26| selectable<sup>8+</sup> | boolean | true        | 当前ListItem元素是否可以被鼠标框选。<br/>默认值:true<br/>**说明:**<br/>外层List容器的鼠标框选开启时,ListItem的框选才生效。 |
27
28## Sticky枚举说明
29
30| 名称     | 描述        |
31| ------ | --------- |
32| None   | 无吸顶效果。    |
33| Normal | 当前item吸顶。 |
34| Opacity | 当前item吸顶显示透明度变化效果。 |
35
36## EditMode枚举说明
37
38| 名称     | 描述        |
39| ------ | --------- |
40| None   | 编辑操作不限制。    |
41| Deletable | 可删除。 |
42| Movable | 可移动。 |
43
44## 事件
45
46| 名称                                       | 功能描述                                     |
47| ---------------------------------------- | ---------------------------------------- |
48| onSelect(event:&nbsp;(isSelected:&nbsp;boolean)&nbsp;=&gt;&nbsp;void)<sup>8+</sup> | ListItem元素被鼠标框选的状态改变时触发回调。<br/>isSelected:进入鼠标框选范围即被选中返回true,&nbsp;移出鼠标框选范围即未被选中返回false。 |
49
50
51## 示例
52
53```ts
54// xxx.ets
55@Entry
56@Component
57struct ListItemExample {
58  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
59  @State editFlag: boolean = false
60
61  build() {
62    Column() {
63      List({ space: 20, initialIndex: 0 }) {
64        ListItem() {
65          Text('sticky:Normal , click me edit list')
66            .width('100%').height(40).fontSize(12).fontColor(0xFFFFFF)
67            .textAlign(TextAlign.Center).backgroundColor(0x696969)
68            .onClick(() => {
69              this.editFlag = !this.editFlag
70            })
71        }.sticky(Sticky.Normal)
72
73        ForEach(this.arr, (item) => {
74          ListItem() {
75            Text('' + item)
76              .width('100%').height(100).fontSize(16)
77              .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
78          }.editable(this.editFlag)
79        }, item => item)
80      }
81      .editMode(true)
82      .onItemDelete((index: number) => {
83        console.info(this.arr[index - 1] + 'Delete')
84        this.arr.splice(index - 1,1)
85        this.editFlag = false
86        return true
87      }).width('90%')
88    }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
89  }
90}
91```
92
93![zh-cn_image_0000001219864159](figures/zh-cn_image_0000001219864159.gif)
94