элементы не загружаются в sencha touch 2

у меня есть сенсорное приложение sencha, которое использует панель вкладок, бета-версия этого приложения загружает все элементы панели вкладок и отображает их. с таким количеством элементов переключение между вкладками стало медленнее для оптимизации моя идея состоит в том, чтобы загружать элементы только тогда, когда определенная панель активируется после отображения маски загрузки.

Мне удалось заставить его работать при первом нажатии, но когда я переключаюсь на ту же вкладку в другой раз, она не заполняется или, по крайней мере, элементы не отображаются. исключения не выбрасываются.

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. я столкнулся с другой проблемой, теперь при следующем тапе на панели мои предметы отображаются, но без маски загрузки, как будто я загружаю элементы в начале до нажатия.

5
задан john 27 April 2012 в 10:12
поделиться