• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# list-item-group
2
3>  **说明:**
4>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5
6<[list](../arkui-js/js-components-container-list.md)>的子组件,用来展示分组,宽度默认充满list组件。
7
8
9- 使用该组件时父元素list组件的样式columns必须为1,否则功能异常。
10
11- 由于父元素list组件的align-items默认样式为stretch,该组件宽度默认充满list组件。设置父元素list组件的align-items样式为非stretch来生效自定义宽度。
12
13## 权限列表
14
1516
17
18## 子组件
19
20仅支持<[list-item](../arkui-js/js-components-container-list-item.md)>。
21
22
23## 属性
24
25除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性:
26
27| 名称   | 类型     | 默认值     | 必填   | 描述                                       |
28| ---- | ------ | ------- | ---- | ---------------------------------------- |
29| type | string | default | 否    | list-item-group类型,同一list支持多种type的list-item-group,相同type的list-item-group需要确保渲染后的视图布局也完全相同,当type固定时,使用show属性代替if属性,确保视图布局不变。 |
30
31>  **说明:**
32>
33>  - 通用属性中的id用来标识一个group。list中相关的函数的入参以及事件的信息皆以此标识一个唯一的group。
34
35
36## 样式
37
38除支持[通用样式](../arkui-js/js-components-common-styles.md)外,还支持如下样式:
39
40| 名称              | 类型     | 默认值        | 必填   | 描述                                       |
41| --------------- | ------ | ---------- | ---- | ---------------------------------------- |
42| flex-direction  | string | row        | 否    | flex容器主轴方向。可选项有:<br/>-&nbsp;column:垂直方向从上到下<br/>-&nbsp;row:水平方向从左到右 |
43| justify-content | string | flex-start | 否    | flex容器当前行的主轴对齐格式。可选项有:<br/>-&nbsp;flex-start:项目位于容器的开头。<br/>-&nbsp;flex-end:项目位于容器的结尾。<br/>-&nbsp;center:项目位于容器的中心。<br/>-&nbsp;space-between:项目位于各行之间留有空白的容器内。<br/>-&nbsp;space-around:项目位于各行之前、之间、之后都留有空白的容器内。<br/>-&nbsp;space-evenly<sup>5+</sup>:&nbsp;&nbsp;均匀排列每个元素,每个元素之间的间隔相等。 |
44
45
46## 事件
47
48除支持[通用事件](../arkui-js/js-components-common-events.md)外,还支持如下事件:
49
50| 名称            | 参数                                 | 描述                                       |
51| ------------- | ---------------------------------- | ---------------------------------------- |
52| groupclick    | {&nbsp;groupid:&nbsp;string&nbsp;} | group点击事件。<br/>groupid:被点击的group的id。     |
53| groupcollapse | {&nbsp;groupid:&nbsp;string&nbsp;} | group收拢事件。<br/>groupid:收拢的group的id。<br/>当不输入参数或者groupid为空时收拢所有分组。 |
54| groupexpand   | {&nbsp;groupid:&nbsp;string&nbsp;} | group展开事件。<br/>groupid:展开的group的id。<br/>当不输入参数或者groupid为空时展开所有分组。 |
55
56
57## 方法
58
59支持[通用方法](../arkui-js/js-components-common-methods.md)。
60
61
62## 示例
63
64```html
65<!-- xxx.hml -->
66<div class="doc-page">
67  <list style="width: 100%;" id="mylist">
68    <list-item class="top-list-item" clickeffect="false">
69      <div class="item-div">
70        <div class="item-child">
71          <button type="capsule" value="Collapse first" onclick="collapseOne"></button>
72          <button type="capsule" value="Expand first" onclick="expandOne"></button>
73        </div>
74        <div class="item-child">
75          <button type="capsule" value="Collapse all" onclick="collapseAll"></button>
76          <button type="capsule" value="Expand all" onclick="expandAll"></button>
77        </div>
78      </div>
79    </list-item>
80    <list-item-group for="listgroup in list" id="{{listgroup.value}}" ongroupcollapse="collapse" ongroupexpand="expand">
81      <list-item type="item" style="background-color:#FFF0F5;height:95px;">
82        <div class="item-group-child">
83          <text>One---{{listgroup.value}}</text>
84        </div>
85      </list-item>
86      <list-item type="item" style="background-color: #87CEFA;height:145px;" primary="true">
87        <div class="item-group-child">
88          <text>Primary---{{listgroup.value}}</text>
89        </div>
90      </list-item>
91    </list-item-group>
92  </list>
93</div>
94```
95
96```css
97/* xxx.css */
98.doc-page {
99  flex-direction: column;
100}
101.top-list-item {
102  width:100%;
103  background-color:#D4F2E7;
104}
105.item-div {
106  flex-direction:column;
107  align-items:center;
108  justify-content:space-around;
109  height:240px;
110}
111.item-child {
112  width:100%;
113  height:60px;
114  justify-content:space-around;
115  align-items:center;
116}
117.item-group-child {
118  justify-content: center;
119  align-items: center;
120  width:100%;
121}
122```
123
124```js
125// xxx.js
126import promptAction from '@ohos.promptAction';
127export default {
128    data: {
129        direction: 'column',
130        list: [],
131        listAdd: []
132    },
133    onInit() {
134        this.list = []
135        this.listAdd = []
136        for (var i = 1; i <= 3; i++) {
137            var dataItem = {
138                value: 'GROUP' + i,
139            };
140            this.list.push(dataItem);
141        }
142    },
143    collapseOne(e) {
144        this.$element('mylist').collapseGroup({
145            groupid: 'GROUP1'
146        })
147    },
148    expandOne(e) {
149        this.$element('mylist').expandGroup({
150            groupid: 'GROUP1'
151        })
152    },
153    collapseAll(e) {
154        this.$element('mylist').collapseGroup({
155            groupid: ''
156        })
157    },
158    expandAll(e) {
159        this.$element('mylist').expandGroup({
160            groupid: ''
161        })
162    },
163    collapse(e) {
164        promptAction.showToast({
165            message: 'Close ' + e.groupid
166        })
167    },
168    expand(e) {
169        promptAction.showToast({
170            message: 'Open ' + e.groupid
171        })
172    }
173}
174
175
176
177```
178
179![zh-cn_image_0000001127284978](figures/zh-cn_image_0000001127284978.gif)
180