跳到主要内容

eui.DataGroup

   eui

   public class DataGroup

继承    eui.DataGroup → eui.Groupegret.DisplayObjectContaineregret.DisplayObjectegret.EventDispatcheregret.HashObject

子类    eui.ListBase

DataGroup 类将数据项目转换为可视元素以进行显示。尽管此容器可以包含可视元素,但它通常仅用于包含作为子项的数据项目。

公共属性

属性
dataProvider : eui.ICollection
列表数据源,请使用实现了ICollection接口的数据类型,例如 ArrayCollection
itemRenderer : any
用于数据项目的项呈示器
itemRendererFunction : (item:any)=>any
为某个特定数据项返回一个项呈示器类定义的函数
itemRendererSkinName : any
条目渲染器的可选皮肤标识符
numElements : number
布局元素子项的数量
useVirtualLayout : boolean
若要配置容器使用虚拟布局,请为与容器关联的布局的 useVirtualLayout 属性设置为 true

公共方法

方法
DataGroup()
构造函数
getElementAt(index:number):egret.DisplayObject
获取一个布局元素子项
getVirtualElementAt(index:number):eui.UIComponent
invalidateSize():void
标记提交过需要验证组件尺寸,以便在稍后屏幕更新期间调用该组件的 measure() 方法
setVirtualElementIndicesInView(startIndex:number,endIndex:number):void
在支持虚拟布局的容器中,设置容器内可见的子元素索引范围
updateRenderer(renderer:eui.IItemRenderer,itemIndex:number,data:any):eui.IItemRenderer
此方法首先会准备项呈示器以重用,方法是清除任何旧属性,同时使用新属性进行更新

事件

Events
egret.Event.RESIZE
当UI组件的尺寸发生改变时调度
eui.UIEvent.MOVE
当UI组件在父级容器中的位置发生改变时调度
eui.UIEvent.CREATION_COMPLETE
当UI组件第一次被添加到舞台并完成初始化后调度
egret.Event.ADDED
将显示对象添加到显示列表中时调度。
egret.Event.ADDED_TO_STAGE
在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。
egret.Event.REMOVED
将要从显示列表中删除显示对象时调度。
egret.Event.REMOVED_FROM_STAGE
在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。
egret.Event.ENTER_FRAME
[广播事件] 播放头进入新帧时调度。
egret.Event.RENDER
[广播事件] 将要更新和呈现显示列表时调度。
egret.TouchEvent.TOUCH_MOVE
当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。
egret.TouchEvent.TOUCH_BEGIN
当用户第一次触摸启用触摸的设备时(例如,用手指触摸手机屏幕)调度。
egret.TouchEvent.TOUCH_END
当用户移除与启用触摸的设备的接触时(例如,将手指从屏幕上抬起)调度。
egret.TouchEvent.TOUCH_TAP
当用户在启用触摸设备上的已启动接触的同一 DisplayObject 实例上抬起接触点时(例如,手机点击屏幕后抬起)调度。
egret.TouchEvent.TOUCH_RELEASE_OUTSIDE
当用户在启用触摸设备上的已启动接触的不同 DisplayObject 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。

属性详细信息

dataProvider

dataProvider : eui.ICollection

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

列表数据源,请使用实现了ICollection接口的数据类型,例如 ArrayCollection

itemRenderer

itemRenderer : any

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

用于数据项目的项呈示器。您应该直接为此属性赋值自定义类的类定义,而不是一个实例。注意:该类必须实现 IItemRenderer 接口。

rendererClass获取顺序:itemRendererFunction > itemRenderer > 默认ItemRenerer。

itemRendererFunction

itemRendererFunction : (item:any)=>any

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

为某个特定数据项返回一个项呈示器类定义的函数。rendererClass获取顺序:itemRendererFunction > itemRenderer > 默认ItemRenerer。

itemRendererSkinName

itemRendererSkinName : any

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

条目渲染器的可选皮肤标识符。在实例化itemRenderer时,若其内部没有设置过skinName,则将此属性的值赋值给它的skinName。注意:若 itemRenderer 不是 Component 的子类,则此属性无效。

numElements

numElements : number

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

布局元素子项的数量。

useVirtualLayout

useVirtualLayout : boolean = false

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

若要配置容器使用虚拟布局,请为与容器关联的布局的 useVirtualLayout 属性设置为 true。只有布局设置为 VerticalLayout、HorizontalLayout 或 TileLayout 的 DataGroup 才支持虚拟布局。不支持虚拟化的布局子类必须禁止更改此属性。

方法详细信息

DataGroup()

public DataGroup()

构造函数。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

getElementAt()

public getElementAt(index:number):egret.DisplayObject

获取一个布局元素子项。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数

getVirtualElementAt()

public getVirtualElementAt(index:number):eui.UIComponent

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数

invalidateSize()

public invalidateSize():void

标记提交过需要验证组件尺寸,以便在稍后屏幕更新期间调用该组件的 measure() 方法。Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改文本和字体大小,如果在更改文本后立即进行更新,然后在设置大小后再更新大小,就有些浪费。更改两个属性后再使用新的大小一次性呈示文本,效率会更高。很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native

setVirtualElementIndicesInView()

public setVirtualElementIndicesInView(startIndex:number,endIndex:number):void

在支持虚拟布局的容器中,设置容器内可见的子元素索引范围。此方法在不支持虚拟布局的容器中无效。通常在即将重新布局子项之前会被调用一次,容器覆盖此方法提前释放已经不可见的子元素。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数
    • startIndex:number - 可视元素起始索引(包括)
    • endIndex:number - 可视元素结束索引(包括)

updateRenderer()

public updateRenderer(renderer:eui.IItemRenderer,itemIndex:number,data:any):eui.IItemRenderer

此方法首先会准备项呈示器以重用,方法是清除任何旧属性,同时使用新属性进行更新。最后,此方法应对项呈示器设置 data 属性。

  • 支持版本:eui 1.0
  • 运行平台:Web,Native
  • 参数
    • renderer:eui.IItemRenderer - 项呈示器。
    • itemIndex:number - 数据提供程序中的数据索引。
    • data:any - 此项呈示器正在表示的数据对象。

示例

**

* 下面的例子演示了两种方法来创建 DataGroup。

*/

class DataGroupExample extends egret.Sprite {

public constructor() {

super();

this.createDataGroupByTypeScript();

this.createDataGroupByEXML();

}

private createDataGroupByTypeScript():void {

var dataGroup = new eui.DataGroup();

dataGroup.layout = new eui.VerticalLayout();

dataGroup.itemRenderer = LabelRender;

var collection = new eui.ArrayCollection();

collection.addItem({"label": "1", "color": 0xcc9999});

collection.addItem({"label": "2", "color": 0xff9966});

collection.addItem({"label": "3", "color": 0xcc3333});

collection.addItem({"label": "4", "color": 0xff6666});

dataGroup.dataProvider = collection;

this.addChild(dataGroup);

dataGroup.x = 50;

dataGroup.y = 50;

}

private createDataGroupByEXML():void {

var exml =

`<e:DataGroup class="Example.DataGroup" xmlns:e="http:/ns.egret.com/eui" x="300" y="50">

<e:layout>

<e:VerticalLayout gap="20"/>

</e:layout>

<e:itemRendererSkinName>

<e:Skin>

<e:Label text="{data.label}" textColor="{data.color}"/>

</e:Skin>

</e:itemRendererSkinName>

<e:ArrayCollection>

<e:Array>

<e:Object label="a" color="0xcc9999"/>

<e:Object label="b" color="0xff9966"/>

<e:Object label="c" color="0xcc3333"/>

<e:Object label="d" color="0xff6666"/>

</e:Array>

</e:ArrayCollection>

</e:DataGroup>`;

var clazz = EXML.parse(exml);

var dataGroup2:eui.DataGroup = new clazz();

this.addChild(dataGroup2);

}

}

class LabelRender extends eui.ItemRenderer {

private label:eui.Label;

public constructor() {

super();

this.label = new eui.Label();

this.addChild(this.label);

}

public dataChanged() {

if (this.data) {

this.label.text = this.data.label;

this.label.textColor = this.data.color;

}

}

}