egret-docs-master/extension/EUI/dataCollection/list/README.md

75 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

列表组件 List ,继承自 DataGroup它和 DataGroup 的区别在于:
* 在 List 中选中一项,会触发 `eui.ItemTapEvent.ITEM_TAP` 事件。
* List有选中项的概念可以设置 List 中的默认选中项。
下面是List的基本用法
~~~ typescript
class Main extends eui.Group {
constructor() {
super();
}
private list:eui.List;
protected createChildren() {
super.createChildren();
var exml = `
<e:Skin xmlns:e="http://ns.egret.com/eui" states="up,down" height="50"> <e:Label text="{data}" textColor.down="0xFFFFFF" textColor.up="0x666666" horizontalCenter="0" verticalCenter="0"/> </e:Skin>`;
var list = new eui.List();
list.dataProvider = new eui.ArrayCollection(["item1","item2","item3"]);
list.itemRendererSkinName = exml;
this.addChild(list);
this.list = list;
list.selectedIndex = 1;//设置默认选中项
list.addEventListener(eui.ItemTapEvent.ITEM_TAP,this.onChange,this);
}
private onChange(e:eui.PropertyEvent):void{
//获取点击消息
console.log(this.list.selectedItem,this.list.selectedIndex)
}
}
~~~
效果如下:
![](5604f13909a44.png)
~~~
设置默认选中项
list.selectedIndex = 1;
~~~
~~~
获取当前选中项的信息
list.selectedItem
list.selectedIndex
~~~
## 多选状态
List 还可以开启多选状态
~~~ TypeScript
list.allowMultipleSelection = true;
~~~
效果如下:
![](5625d92835954.png)
多选状态下List 中所有的条目都可以被选中,再次点击选中的条目则会取消选中,恢复原状。
此时监听 `eui.ItemTapEvent.ITEM_TAP` 事件,可以通过下面两个属性获得一个数组,里面包含了当前处于选中状态的项目:
~~~
list.selectedIndices
list.selectedItems
~~~
在多选状态下还有一个命令可以配合使用:
~~~ TypeScript
list.requireSelection = true;
~~~
该属性设置为 true 后,多选状态下最少有一个条目会被选中,不可以被取消。
## 滚动列表
列表配合 Scroller 使用可以实现滚动效果。
具体参考文档:[定位滚动位置](../../container/scroller/README.md#定位滚动位置)