版本:Laya2.2.0
参考:https://ldc2.layabox.com/doc/?nav=zh-ts-3-3-16
ViewStack+Tab常被用于游戏中
创建ViewStack
创建ViewStack的页面,我这里用Scene创建了Page1.scene、Page2.scene、Page3.scene。
将3个页面拖动到ViewStack下
设置ViewStack的selectIndex为0,表示默认选中第一页
设置3个页面name分别为item0,item1,item2,若不设置,则ViewStack不生效。
创建一个Tab
设置Tab的按钮skin为comp/tab.png,labels为页面1,页面2,页面3。 selectedIndex为0.
现在页面是这样子
设置Tab的var为tab, ViewStack的var为viewStack。在代码里组合使用这两个组件。
public tab:Laya.Tab; public viewStack:Laya.ViewStack; onEnable(){ this.tab.selectHandler = new Laya.Handler(this,this.onSelecte); } private onSelecte(index:number):void{ this.viewStack.selectedIndex=index; console.log(index); //当前页面索引 console.log(this.viewStack.selection); //当前选择的项对象 }
实际效果
不同样式的Tab按钮
如果Tab的按钮是不同样式,可以将不同样式按钮拖入Tab下,并给按钮name设置为item0,item1。
例如下图中两个按钮不同的skin,拖入Tab下,并且命名为item0,item1即可。
Tab的默认skin需要置空,因为item的skin,首先优先使用Tab的。Tab的为空,才会去使用Button的skin。