75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
列表组件 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#定位滚动位置)
|