繁体   English   中英

未在sencha touch中加载的商品2

[英]items not loading in sencha touch 2

我有一个使用tabpanel的sencha touch应用程序,此应用程序的beta版本加载tabpanel的所有项目并显示它。 如此多的项目,在标签之间切换变得更慢以进行优化我的想法是仅在显示加载掩码后激活某个面板时才加载项目。

我能够让它在第一次点击时工作,但当我再次切换到相同的标签时,它没有被填充或至少没有显示项目。 没有异常被抛出。

Ext.application({
    name : 'Sencha',
    launch : function() {
           var root = contents;
           var children = root._listOfContentChild;
           var mainPanel =  Ext.create('components.NavigationPanel',
                {
                iconCls : 'more', 
                listeners: {

                   activate: function() {   
                             mainPanel .setMasked({ 
                                xtype: 'loadmask',
                                message: 'Loading...'
                            });

                           setTimeout(function() {          
                              loadItems(root,children);  // returns my items
                              mainPanel .setItems(items);
                              mainPanel .setMasked(false);
                            }, 300);

    } } });

   var settingsPanel =  Ext.create('components.NavigationPanel', {
        title : 'Settings',
        iconCls : 'settings',
    });


  view=Ext.Viewport.add({
        xtype : 'tabpanel',  
        deferredRender:true,

        tabBarPosition : 'bottom',
        activeItem:settingsPanel,
        items : [mainPanel,settingsPanel ]
    }); 
    }
    });

概述:我的应用程序工作正常,如果所有项目都在开头填写之前按下标签我的问题是当我有大量的项目,我按下他们相应的选项卡。 它挂了1,2秒。 使用此应用程序的人会认为他没有正确地按下选项卡,它看起来会很慢。 我的方法是在标签上加载一个面具,持续1秒,这将使我的标签在按下时自动响应,然后我添加我的项目。 这个想法只适用于第一次点击,当我切换到另一个选项卡并回到原始没有显示任何东西(除了加载掩码)我尝试了mainPanel.add而不是mainPanel.setItems 我面临另一个问题,现在在面板上的下一个点击,我的项目显示但没有加载面具,好像我在按下之前在开始时加载项目。

我找到了解决方案。 检查以下代码。

希望对你有所帮助!

代码:

Ext.Loader.setConfig({
    enabled: true
});

Ext.application({
    name: 'Sencha',

    launch: function() {
        //var root = contents;
        //var children = root._listOfContentChild;
        var mainPanel =  Ext.create('Ext.Panel', {
                            iconCls : 'more', 
                            id:'mpanel',
                            styleHtmlContent:true,
                            listeners: {
                               painted: function() {  
                                 mainPanel.removeAll();
                                 mainPanel.add({
                                       masked:{
                                         xtype:'loadmask',
                                         id:'lmask',
                                       }
                                 });
                                 setTimeout(function() {    
                                       Ext.getCmp('lmask').hide();
                                       Ext.getCmp('mpanel').add({ xtype:'textfield',label:'Name',required:true });
                                   }, 300);

                                 }
                            } 
                          });

        var settingsPanel =  Ext.create('Ext.Panel', {
            title : 'Settings',
            iconCls : 'settings',
        });


        view=Ext.Viewport.add({
            xtype : 'tabpanel',  
            deferredRender:true,

            tabBarPosition : 'bottom',
            activeItem:settingsPanel,
            items : [mainPanel,settingsPanel ]
        }); 
    }
});

样本输出:

装面膜

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM