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

Posted

技术标签:

【中文标题】Sencha Touch 2:应用程序构建后面板不会滚动【英文标题】:Sencha Touch 2: panel won't scroll after app build 【发布时间】:2015-02-22 20:34:32 【问题描述】:

我有一个 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

这里有一些sn-ps:

主视图(扩展 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'
            ]
        ]
    
);

【问题讨论】:

在运行“sencha app build”之前如何知道面板滚动? 我知道面板会在我运行“sencha app build”之前滚动,因为我可以通过我的网络浏览器运行“sencha web start”并点击localhost:1841来访问该应用程序,滚动很好。当我构建应用程序时,我导航到localhost:1841/build/production/Geograph,滚动被破坏了。 【参考方案1】:

我也遇到了同样的问题。修复了这个帖子的问题 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);
//        );
    ,

【讨论】:

Sujata 你真是个天才!这完全解决了它!也感谢您花时间查看源代码。

以上是关于Sencha Touch 2:应用程序构建后面板不会滚动的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2:数据视图在 android 模拟器中不可见

sencha touch 动态构建窗体

MVC Sencha Touch 无法正确显示选项卡面板

Sencha touch 2 原生构建未加载

在sencha touch 2中滚动面板时的文本字段焦点问题

如何使用 Sencha Touch 2 获取表单面板和禁用选择字段