应用程序构建后,Sencha Touch 2:面板不会滚动

时间:2015-02-22 20:34:33

标签: extjs mobile sencha-touch sencha-cmd

我有一个Sencha Touch应用程序,它包含一个带有多个页面的标签栏布局,其中一个页面是列表视图,另一个是“详细视图”,基本上是一个面板。

运行“ sencha app build ”后面板不会滚动。除了面板不再滚动之外,生成的构建包工作正常。

我在OS X Yosemite上使用Sencha Touch 2.4.1和Sencha Cmd v5.1.1.39。

该应用的演示位于:http://simbro5-80.terminal.com

源代码在这里:http://github.com/simbro/Geograph

以下是一些片段:

主视图(扩展Ext.tab.Panel):

{
    title: 'News',
    layout: 'fit',
    iconCls: 'news',

    items: [
        {
            xtype: 'itemsListView'
        }
    ]
},
{
    title: 'Item Details',
    layout: 'fit',
    hidden: true,

    items: [
        {
            xtype: 'itemDetailView'
        }
    ]
},

项目明细视图:

Ext.define('Geograph.view.ItemDetailView', {
    extend: 'Ext.Panel',
    xtype: 'itemDetailView',
    id: 'itemDetailPage',

    config: {
        title: 'Item Detail',
        scrollable: {
            direction: 'vertical'
        },
        styleHtmlContent: true,
        title: 'Details',
        layout: 'fit',
        tpl: [
            '<h2>{title}</h2>',
            '<div><b>{creator}</b></div>',
            '<div><span class="itemDetailDate">{date:date("l, jS F Y")}</span></div>',
            '<div><br />{description}</div>'
        ],
        data: null,
        items: [{
            docked: 'top',
            xtype: 'titlebar',
            title: 'Item Details',
            items: [{
                ui: 'back',
                text: 'Back',
                id: 'newsBackBtn'
            }]
        }]
    }
});

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。修正了这篇文章的问题 Sencha Forum

只需在app.js中注释掉加载蒙版的代码: -

 launch: function() {
        // Destroy the #splash-logo element
        Ext.fly('splash-logo').destroy();

        // Initialize the main view
        Ext.Viewport.add(Ext.create('Geograph.view.Main'));

        Ext.Viewport.add(Ext.create('Geograph.view.SearchForm'));

//        var loadingMask = new Ext.LoadMask(Ext.getBody(), {msg:"wait msg..."}); 
//
//        // Before the AJAX event, enable the mask on the application's
//        // Viewport so it shows regardless of the active view.
//        Ext.Ajax.on('beforerequest', function() {
//            Ext.Viewport.setMasked(loadingMask);
//        });  

        // When the AJAX request completes disable the mask.
//        Ext.Ajax.on('requestcomplete', function() {
//            Ext.Viewport.setMasked(false);
//        });
    },