Sencha touch - Facebook风格的滑动菜单 - 是否可能?

时间:2013-04-29 14:42:21

标签: navigation sencha-touch

有一些插件似乎表明它是这样我们在编写自己的时候已经有了一个bash。我们可以让它在浏览器中漂亮地工作,但是当我们尝试部署到设备时,它出现了可怕的错误 - 将组件覆盖在视觉混乱中。有人对此有什么想法吗?

Ext.Viewport.add( Ext.create('WC.view.Wrapper') )

where then the wrapper is a List (Menu) and a Main(Main)

Ext.define('WC.view.Wrapper', {
    extend: 'Ext.Container',
    xtype: 'ObjectTabContainer',

    requires: [
        'WC.view.layout.RecordList',          // Menu
        'WC.view.layout.RightContainer'     // Main
    ],

    config: {

        items: [

            // Hidden appers to display no connection
            {
                xtype  : 'ConnectionStatusIndicator',
                docked : 'top'
            },
            // WC.view.layout.RecordList > list
            {
                xtype: 'RecordList',
                id   : 'recordlist'
            },
            // WC.view.layout.RightContainer > toolbars and data
            {
                xtype: 'RightContainer',
                id   : 'rightcontainer'
            }
        ]
    }
});

就z-index而言我有

List > style : 'position: absolute; top: 0; left: 0; z-index: 2, height:
100%'
RightContainer > style  : 'width: 100%; height: 100%; position: absolute;
top: 0px; left: 0px; opacity: 1; z-index: 3; opacity: 1'

问题是在设备上我看到两个组件略微重叠 (不完全从上到下......)+当我点击按钮时没有 发生...我试图使用警报和什么来尽可能多地调试 发生的是代码在这里停止,没有任何类型的错误......

Ext.define('WC.controller.SlideCtrl', {
    extend: 'Ext.app.Controller',


/////////////////////////////////////////////////////////////////////////////
    //  Require elements for this class (otherwise require them at app.js
level)

/////////////////////////////////////////////////////////////////////////////

    requires: [
    'WC.view.layout.RecordList',
        'WC.view.layout.RightContainer'
    ],

    config: {
    refs: {
    RecordList    : 'RecordList',
            RightContainer: 'RightContainer',
            menuButton    : 'RightContainer RecordInterationToolbar
button[action=openMenu]'
    },

    control: {
            menuButton: {
    tap: 'onOpenMenuButtonTapped'
    },

     .......
     ........

onOpenMenuButtonTapped: function(){
        alert('0')
        var main = this.getRightContainer();
        var menu = this.getRecordList();
        alert('1') ====================>>>>>> here stops > doesn't even
enters the main.isClosed()
        alert(main.isClosed())
        if (main.isClosed()) {
            alert('call open menu')
            main.openMenu(menu.getOpenAnimDuration());
            alert('after call open menu')
        } else {
            alert('call open close menu')
            main.closeMenu(menu.getCloseAnimDuration());
            alert('after call open close menu')
        }
        alert('end of onOpenMenuButtonTapped')
    }

=========> I should at least get the alert('isClosed')

isClosed: function() {
        alert('isClosed')
        alert(this.getDraggable().offset.x)
        alert('return')
        return (this.getDraggable().offset.x == 0);
    }

请记住,在浏览器中它看起来没问题+控制器可以做到 脏的工作!此外,该组件本身在我的设备上完美运行(我 意思是相同的z-index和控制器功能)

1 个答案:

答案 0 :(得分:0)

我使用过这个插件:

https://github.com/wnielson/sencha-SlideNavigation

在浏览器和已编译的应用程序中没有问题,请尝试一下。