zoukankan      html  css  js  c++  java
  • Egret EUI Tab + ViewStack

    参考:

    Egret教程-选项卡

    游戏中很多选项卡的UI。

    官网教程说的不清楚。以前是用自己写的。这里用Eui的Tab+ViewStack实现一下。

    1. 新建Tab的条目皮肤

    第一个Image是按钮弹起时显示

    第二个Image是按钮选中时显示

    第三个Label的标签设置为{data},用于显示ViewStack的内容name

    进入exml的源码,设置第一张图片visible.down="false",设置第二张图片visible.disabled="false", visible.up="false"

    2. 拖动一个Tab组件到舞台

    设置ID为tab,条目皮肤为TabBarSkin,布局为水平排列HorizontalLayout。

    进入exml源码,设置数据源dataProvider="viewStack",设置默认选择第一项selectedIndex="0"

     3 拖动一个ViewStack到舞台

    设置Viewstack的ID为viewstack

    拖动3个按钮(或者自定义UI)到viewstack下,这3个按钮就相当于要切换的3个页面。

    进入exml源码,设置按钮的name,这个name会映射到TabBarSkin上的Labe的{data}上。

    4   代码里操作tab+viewstack

    tab监听ITEM_TAP事件

    /**
     * 主页
     * @author chenkai 2020.2.16
     */
    class HomeScene extends eui.Component{
    	public tab:eui.TabBar;
    	public viewStack:eui.ViewStack;
    
    	public constructor() {
    		super();
    		this.skinName = "HomeSceneSkin";
    	}
    
    	protected childrenCreated(){
    		this.tab.addEventListener(eui.ItemTapEvent.ITEM_TAP, this.itemTap, this);
    	}
    
    	private itemTap(e:eui.ItemTapEvent){
    		                                           //当点击第一个选项卡按钮时,下面输出为
    		console.log(e.itemIndex, e.itemRenderer);  //0
    		console.log(e.itemRenderer);               //第一个选项按钮实例
    		console.log(this.viewStack.selectedIndex); //0 
    		console.log(this.viewStack.selectedChild); //viewstack下的第一个Button实例
    	}
    }
    

      

     实际效果:

    问题:

    1. 当按钮样式不同时,怎么整?

    因为Tab用的条目皮肤是TabBarSkin是一个皮肤,当3个按钮,每个按钮外观不同时,就用不了了。

    Laya的Tab+Viewstack使用方便,支持3个按钮使用1个皮肤,也支持3个按钮使用3个皮肤,Egret如果要实现,得自己写自定义组件了。

  • 相关阅读:
    有return的情况下try_catch_finally的执行顺序
    java异常处理之try_catch_finally
    乔布简历
    策略模式--经典详细分析
    观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
    luogu2444 [POI2000]病毒
    bzoj3172 luogu3966 [TJOI2013]单词
    luogu3808 luogu3796 AC自动机(简单版) AC自动机(加强版)
    vijos1459 车展
    poj2985 The k-th Largest Group
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/12319292.html
Copyright © 2011-2022 走看看