eui.ViewStack
包 eui
类 public class ViewStack
继承 eui.ViewStack → eui.Group → egret.DisplayObjectContainer → egret.DisplayObject → egret.EventDispatcher → egret.HashObject
ViewStack 导航器容器由一组彼此上下堆叠的子容器组成,其中一次只可以显示一个子容器。选择另一个子容器后,它将显示在原来子容器的位置处,所以看起来好像此子容器替换了原来的子容器。但是,原来的子容器仍然存在,只不过它现在处于不可见状态。
公共属性
属性 |
---|
layout : eui.LayoutBase 此容器的 layout 对象 |
length : number 子项数量 |
selectedChild : egret.DisplayObject 对当前可见子容器的引用 |
selectedIndex : number 当前可见子容器的从零开始的索引 |
公共方法
方法 |
---|
ViewStack() 构造函数 |
getItemAt(index:number):any 获取指定索引处的项目 |
getItemIndex(item:any):number 如果项目位于列表中,返回该项目的索引 |
事件
Events |
---|
eui.CollectionEvent.COLLECTION_CHANGE 以某种方式更新 ICollection 后分派。 |
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 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。 |
属性详细信息
layout
layout : eui.LayoutBase = eui.BasicLayout
- 支持版本:eui 1.0
- 运行平台:Web,Native
此容器的 layout 对象。此对象负责容器中可视元素的测量和布局。
length
length : number
- 支持版本:eui 1.0
- 运行平台:Web,Native
子项数量
selectedChild
selectedChild : egret.DisplayObject
- 支持版本:eui 1.0
- 运行平台:Web,Native
对当前可见子容器的引用。默认设置为对第一个子容器的引用。如果没有子项,则此属性为 null
。
selectedIndex
selectedIndex : number
- 支持版本:eui 1.0
- 运行平台:Web,Native
当前可见子容器的从零开始的索引。子索引的范围是 0、1、2、...、n - 1,其中 n
是子项的数目。默认值是 0,对应于第一个子项。如果不存在子容器,则此属性的值为 -1。
方法详细信息
ViewStack()
public ViewStack()
构造函数。
- 支持版本:eui 1.0
- 运行平台:Web,Native
getItemAt()
public getItemAt(index:number):any
获取指定索引处的项目。
支持版本:eui 1.0
运行平台:Web,Native
参数
- index:number - 要得到的项的指定位置。
返回:在索引位置的项,如果没有该项则返回null。
getItemIndex()
public getItemIndex(item:any):number
如果项目位于列表中,返回该项目的索引。否则返回-1。
支持版本:eui 1.0
运行平台:Web,Native
参数
- item:any - 要查找的项。
返回:项的索引,如果该项没有在列表中将返回-1.
示例
class ViewStackExample extends egret.Sprite {
public constructor() {
super();
var exml =
`<e:Group xmlns:e="http:/ns.egret.com/eui">
<e:TabBar dataProvider="{viewStack}">
<e:layout>
<e:HorizontalLayout gap="20"/>
</e:layout>
<e:itemRendererSkinName>
<e:Skin states="up,down" height="50">
<e:Label text="{data}" textColor.down="0xFFFFFF" textColor.up="0x666666" horizontalCenter="0" verticalCenter="0"/>
</e:Skin>
</e:itemRendererSkinName>
</e:TabBar>
<e:ViewStack y="50" id="viewStack">
<e:Group name="Page1">
<e:Panel width="400" height="300" title="title panel" xmlns:e="http:/ns.egret.com/eui" y="50">
<e:Skin>
<e:Image width="100%" height="100%" source="resource/track.png" scale9Grid="1,1,4,4"/>
<e:Group id="moveArea" width="100%" height="40">
<e:Image width="100%" height="100%" source="resource/thumb.png" scale9Grid="1,1,4,4"/>
<e:Label id="titleDisplay" text="标题" textColor="0" horizontalCenter="0" verticalCenter="0"/>
</e:Group>
<e:Button id="closeButton" right="-15" y="-15">
<e:Skin states="up,down,disabled">
<e:Image width="50" height="50" source="resource/close.png" scaleX.up="1" scaleX.down="0.95" scaleY.up="1" scaleY.down="0.95"/>
</e:Skin>
</e:Button>
</e:Skin>
</e:Panel>
</e:Group>
<e:Group name="Page2">
<e:List id="list" width="200" height="400" y="50">
<e:layout>
<e:VerticalLayout gap="20"/>
</e:layout>
<e:itemRendererSkinName>
<e:Skin states="up,down,disabled" height="50">
<e:Label text="{data.label}" textColor="0" horizontalCenter="0" verticalCenter="0"/>
</e:Skin>
</e:itemRendererSkinName>
<e:ArrayCollection>
<e:Array>
<e:Object label="Text1"/>
<e:Object label="Text2"/>
<e:Object label="Text3"/>
<e:Object label="Text4"/>
<e:Object label="Text5"/>
<e:Object label="Text6"/>
<e:Object label="Text7"/>
<e:Object label="Text8"/>
<e:Object label="Text9"/>
<e:Object label="Text10"/>
</e:Array>
</e:ArrayCollection>
</e:List>
</e:Group>
</e:ViewStack>
</e:Group>`;
var clazz = EXML.parse(exml);
var group = new clazz();
this.addChild(group);
}
}