Sencha touch setActiveItem(0)的选项卡视图未在sencha touch2中显示页面内容

Sencha touch setActiveItem(0)的选项卡视图未在sencha touch2中显示页面内容,sencha-touch,extjs,sencha-touch-2,Sencha Touch,Extjs,Sencha Touch 2,我有四个单独的视图,在单个选项卡视图中添加这四个视图,如下所示 选项卡视图代码: Ext.define("SLS.BRND.WEB.view.MainTabbarView", { extend: 'Ext.tab.Panel', xtype: 'MainTabbarView', requires: ['Ext.data.proxy.JsonP', 'Ext.TitleBar', 'Ext.Video', 'SLS.BRND.WEB.view.GallerysView',

我有四个单独的视图,在单个选项卡视图中添加这四个视图,如下所示

选项卡视图代码:

Ext.define("SLS.BRND.WEB.view.MainTabbarView", {
    extend: 'Ext.tab.Panel',
    xtype: 'MainTabbarView',
    requires: ['Ext.data.proxy.JsonP', 'Ext.TitleBar', 'Ext.Video', 'SLS.BRND.WEB.view.GallerysView', 'SLS.BRND.WEB.view.FloorView'],
    config: {
        tabBarPosition: 'bottom',
        items: [
            {
                xclass: "SLS.BRND.WEB.view.GlobalNavigationView",
                docked: "top",
                scrollable: false
            },
            {
                xclass: 'SLS.BRND.WEB.view.ApartmentView'                    
            },
            {              
                xclass: 'SLS.BRND.WEB.view.SpecificationView'
            },
            {                
                xclass: 'SLS.BRND.WEB.view.FloorView'
            },
            {                
                xclass: 'SLS.BRND.WEB.view.GallerysView'
            }
          ]
    }
});
Ext.define("SLS.BRND.WEB.controller.ApartmentController", {
    extend: "Ext.app.Controller",
    requires: ['Ext.data.proxy.JsonP'],
    config: {
        refs: {
        projectsPage: "projectspage",            
            mainTabbarView: "MainTabbarView",         
        },
    control: {

            projectsPage: {               
               BtnApartments: "onAptButtonTap"               

            }
        }
  },
    onAptButtonTap: function () {
        var ApartmentTabbar = this.getMainTabbarView();
        ApartmentTabbar.setActiveItem(0);
        Ext.Viewport.animateActiveItem(ApartmentTabbar, this.slideLeftTransition);
    },
    activateNotesList: function () {
        Ext.Viewport.animateActiveItem(this.getHomepage(), this.slideRightTransition);
    },
    slideRightTransition: { type: 'slide', direction: 'right' },
    slideDownTransition: { type: 'flip', direction: 'down' },
    slideLeftTransition: { type: 'fade', direction: 'left' }

});
在控制器onbuttontap函数中,我在“MainTabbarView”页面上方调用,如下所示。我已设置setActiveItem(0);显示四个选项卡项中的第一个选项卡项,即(xclass:'SLS.BRND.WEB.view.ApartmentView')。当我设置like this setActiveItem(0)时,它将显示第一个视图页面,但没有数据(空白屏幕)。如果我设置like this setActiveItem(1),它将显示第二个视图页面和数据。然后我认为第一页可能有问题,所以我改变了“MainTabbarView”中页面视图的顺序。我再次设置setActiveItem(0),然后它显示活动页面,但没有数据。我一直在将setActiveItem(0)更改为1,2,3,它工作正常,并且还显示数据但对于setActiveItem(0),数据未显示。有什么能帮我的吗。如何解决这个问题。多谢各位

控制器代码:

Ext.define("SLS.BRND.WEB.view.MainTabbarView", {
    extend: 'Ext.tab.Panel',
    xtype: 'MainTabbarView',
    requires: ['Ext.data.proxy.JsonP', 'Ext.TitleBar', 'Ext.Video', 'SLS.BRND.WEB.view.GallerysView', 'SLS.BRND.WEB.view.FloorView'],
    config: {
        tabBarPosition: 'bottom',
        items: [
            {
                xclass: "SLS.BRND.WEB.view.GlobalNavigationView",
                docked: "top",
                scrollable: false
            },
            {
                xclass: 'SLS.BRND.WEB.view.ApartmentView'                    
            },
            {              
                xclass: 'SLS.BRND.WEB.view.SpecificationView'
            },
            {                
                xclass: 'SLS.BRND.WEB.view.FloorView'
            },
            {                
                xclass: 'SLS.BRND.WEB.view.GallerysView'
            }
          ]
    }
});
Ext.define("SLS.BRND.WEB.controller.ApartmentController", {
    extend: "Ext.app.Controller",
    requires: ['Ext.data.proxy.JsonP'],
    config: {
        refs: {
        projectsPage: "projectspage",            
            mainTabbarView: "MainTabbarView",         
        },
    control: {

            projectsPage: {               
               BtnApartments: "onAptButtonTap"               

            }
        }
  },
    onAptButtonTap: function () {
        var ApartmentTabbar = this.getMainTabbarView();
        ApartmentTabbar.setActiveItem(0);
        Ext.Viewport.animateActiveItem(ApartmentTabbar, this.slideLeftTransition);
    },
    activateNotesList: function () {
        Ext.Viewport.animateActiveItem(this.getHomepage(), this.slideRightTransition);
    },
    slideRightTransition: { type: 'slide', direction: 'right' },
    slideDownTransition: { type: 'flip', direction: 'down' },
    slideLeftTransition: { type: 'fade', direction: 'left' }

});

您的
onaptbuttonap
函数不在正确的位置,请将其放在配置中,因为您应该将其放在配置之后,如下所示:

...
config: {
    refs: {
        projectsPage: "projectspage",            
        mainTabbarView: "MainTabbarView",         
    },
    control: {
        projectsPage: {               
           BtnApartments: "onAptButtonTap"  
        }
    },
    ...
},
onAptButtonTap: function () {
    var ApartmentTabbar = this.getMainTabbarView();
    ApartmentTabbar.setActiveItem(0);
    Ext.Viewport.animateActiveItem(ApartmentTabbar, this.slideLeftTransition);
},
...

谢谢你的回复。我在发布代码时出错,函数在配置之外。如上代码所示,但面临与上述讨论相同的问题。如何解决这个问题?您已经展示了控制器和视图如何组合以显示5个不同的面板(它们都在工作),而不是如何填充有问题的面板。将工作导航作为问题,而不是数据/存储/模型/视图/组件-谁知道GlobalNavigationView是什么?!