这篇文章介绍了sencha touch 模仿tabpanel导航栏TabBar的实例代码,有需要的朋友可以参考一下

基于sencha touch 2.2所写

效果图:

代码:

/*

*模仿tabpanel导航栏

*/

Ext.define('ux.TabBar', {

    alternateClassName: 'tabBar',

    extend: 'Ext.Toolbar',

    xtype: 'tabBar',

    config: {

        docked: 'bottom',

        cls: 'navToolbar',

        layout: {

            align: 'stretch'

        },

        defaults: {

            flex: 1

        },

        //被选中的按钮

        selectButton: null

    },

    initialize: function () {

        var me = this;

        me.callParent();

        //监听按钮点击事件

        me.on({

            delegate: '> button',

            scope: me,

            tap: 'onButtonTap'

        });

    },

    //更新被选中按钮

    updateSelectButton: function (newItem, oldItem) {

        console.log(oldItem);

        if (oldItem) {

            oldItem.removeCls('x-tabBar-pressing');

        }

        if (newItem) {

            newItem.addCls('x-tabBar-pressing');

        }

    },

    //当按钮被点击时

    onButtonTap: function (button) {

        this.setSelectButton(button);

    },

    /**

    * @private

    *执行添加项,调用add方法后自动执行

    */

    onItemAdd: function (item, index) {

        if (!this.getSelectButton() && item.getInitialConfig('selected')) {

            this.setSelectButton(item);

        }

        this.callParent(arguments);

    }

});

需要的css:

复制代码 代码如下:

.navToolbar {

    padding:0;

}

.navToolbar .x-button {

    border:0;

    margin:0;

    border-right:1px solid #585B5B;

    border-radius:0;

    padding:0;

}

.navToolbar .x-button .x-button-label {

    font-weight:normal;

    color:White;

    font-size:0.6em;

}

.navToolbar .x-tabBar-pressing {

    background-image:none;

    background-color:#0f517e;

    background-image:-webkit-gradient(linear,50% 0%,50% 100%,color-stop(0%,#0a3351),color-stop(10%,#0c4267),color-stop(65%,#0f517e),color-stop(100%,#0f5280));

    background-image:-webkit-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);

    background-image:-moz-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);

    background-image:-o-linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);

    background-image:linear-gradient(top,#0a3351,#0c4267 10%,#0f517e 65%,#0f5280);

}

使用:

复制代码 代码如下:

Ext.define('app.view.MyBar', {

    alternateClassName: 'myBar',

    extend: 'ux.TabBar',

    xtype: 'myBar',

    config: {

        items: [

        {

            xtype: 'button',

            text: '问卷调查',

            //只有第一个设置的属性有效

            selected: true

        },

        {

            xtype: 'button',

            text: '我的积分'

        },

        {

            xtype: 'button',

            text: '开奖大厅'

        },

        {

            xtype: 'button',

            text: '幸运号码'

        },

        {

            xtype: 'button',

            text: '更多'

        }]

    }

});

sencha touch 模仿tabpanel导航栏TabBar的实现代码的更多相关文章

  1. sencha touch 模仿tabpanel导航栏TabBar(2013-11-7)

    基于sencha touch 2.2所写 代码: /* *模仿tabpanel导航栏 */ Ext.define('ux.TabBar', { alternateClassName: 'tabBar' ...

  2. iOS开发之 -- 判断tableview/scrollview的滑动方法,及导航栏渐变的实现代码

    开发的过程中,肯定会用到在视图想上滑动的时候,在导航处做一些操作,比如向上滑动的时候,做个动画,出现一个搜索框,或者其他的操作,那么我们怎么来判断它的滑动方向呢? 首先我们应该知道tableview继 ...

  3. jquery侧边折叠导航栏制作,两行代码搞定

    jquery侧边折叠导航栏制作,两行代码搞定 //CSS*{margin: 0;padding: 0} ul{list-style: none} .menu li ul{display: none} ...

  4. sencha touch 2 tabpanel中List的不显示问题,解决方案

    笔者在做sencha项目的时候碰到一个需求,就是"好友列表"中分为"未确认好友"和"已确认好友",两个都是一个list,自然想到的就是使用t ...

  5. 小程序 - 底部导航栏“tabBar”

    小程序底部导航 1.app.json页面配置: { "pages": [ "pages/movie/movie", "pages/cinema/cin ...

  6. 添加底部导航栏tabbar

    效果图: 如果要添加底部导航栏,最少2个,最多5个. app.json { "pages": [ "pages/index/index", "page ...

  7. 网页导航栏 html + css的代码实现

    一般来讲,我们的网页导航栏是这么个模式来构建在结构上:1.首先我们需要给导航栏的div 给个类名 一般为nav2.然后就是一个无序表格 3.由于导航栏的文字一般都是链接用来跳转页面 要在li里面包含一 ...

  8. <iOS 导航栏>第一节:导航栏透明方法实现代码

      说下导航栏的透明方法:   很多应用需要导航栏随着向上滑动,逐渐从透明变成不透明,很炫酷,大部分应用都在使用导航栏渐变效果,现附上代码然后直接将实现,一会讲下如何来实现,这一部分直接上代码.   ...

  9. 01 uni-app框架学习:项目创建及底部导航栏tabBar配置

    1.创建一个项目类型选择uniapp 2. pages里新建3个页面如下 3.在pages.json中配置底部导航tabBar 效果展示:

随机推荐

  1. Ubuntu中搭建Hadoop集群(简记)

    stp1:在Vmware虚拟机上创建Ubantu.2环境 步骤:文件—>新建虚拟机—>典型(下一步)—>下一步——>位置(不建议放c盘,文件地址一定要全英文)—>下一步— ...

  2. 使用uniflash串口烧写CC3200的常见问题

    1. 在正常情况下,cc3200的烧写使用的是芯片的PIN55和PIN57,只要把SOP2上拉既可正常烧写,常见问题是烧写的时候没有上拉SOP2,正常运行SOP2留空,IAR只能仿真调试,不能下载程序 ...

  3. Leetcode 简略题解 - 共567题

    Leetcode 简略题解 - 共567题     写在开头:我作为一个老实人,一向非常反感骗赞.收智商税两种行为.前几天看到不止两三位用户说自己辛苦写了干货,结果收藏数是点赞数的三倍有余,感觉自己的 ...

  4. define 和 const常量有什么区别?

    define在预处理阶段进行替换,const常量在编译阶段使用 宏不做类型检查,仅仅进行替换,const常量有数据类型,会执行类型检查 define不能调试,const常量可以调试 define定义的 ...

  5. C#3DES加密了解一下

    最近一个项目中,因为服务端是用的java开发的,客户端是用的C#,由于通信部分采用到了3DES加密,所以做个记录,以备以后需要的时候直接用. 这是对方(java)的加密算法,和网上流传的代码也差不多( ...

  6. ES6 export,import报错

    问题描述: 现有两个文件: profile.js const firstName = 'Michael'; const lastName = 'Jackson'; const year = 2018; ...

  7. JS运行在服务器端注意事项

    <script runat="server" language="javascript"> </script> 1. ASP利于JS重载 ...

  8. python 网络编程(socketserver,阻塞,其他方法)

    重点回顾: (重点)粘包 : 就是因为接收端不知道如何接收数据,造成接收数据的混乱的问题 只发生在tcp协议上. 因为tcp协议的特点是面向数据流形式的传输 粘包的发生主要是因为tcp协议有两个机制: ...

  9. python基础训练营02

    任务二 时长:2天 1. 列表 a. 标志 b. 基本操作(创建,append( ),pop( ) ,del( ), 拷贝) c. 列表相关方法 2. 元组 a. 标志 b. 基本操作(创建及不可变性 ...

  10. NO4——并查集

    int find(int x) { int r = x; while(father[r]!=r) r = father[r]; return r; } /* int find(int x) { if( ...