Sencha touch Sencha Touch SetActiveItem将图标添加到选项卡栏

Sencha touch Sencha Touch SetActiveItem将图标添加到选项卡栏,sencha-touch,Sencha Touch,我有一个相当简单的Sencha Touch MVC应用程序,其中我有一些主选项卡,其中包含由选项卡栏驱动的列表。当用户点击列表项时,我会使用SetActiveItem打开一个新面板。这看起来不错,但它会在选项卡栏中添加一个图标或空白的可单击空间。我怎样才能阻止这一切 我的视口: app.views.Viewport = Ext.extend(Ext.TabPanel, { fullscreen: true, layo

我有一个相当简单的Sencha Touch MVC应用程序,其中我有一些主选项卡,其中包含由选项卡栏驱动的列表。当用户点击列表项时,我会使用SetActiveItem打开一个新面板。这看起来不错,但它会在选项卡栏中添加一个图标或空白的可单击空间。我怎样才能阻止这一切

我的视口:

app.views.Viewport = Ext.extend(Ext.TabPanel, {
    fullscreen: true,                                
    layout: 'card',
    cardSwitchAnimation: 'slide',

    initComponent: function() {

        // put instances of cards into app.views namespace
        Ext.apply(app.views, {
             myList: new app.views.MyList(),
             myDetail: new app.views.MyDetail()
             ...
        });

        //put instances of cards into viewport
        Ext.apply(this, {
            tabBar: {
                dock: 'bottom',
                layout: {
                    pack: 'center'
                }
            },
            items: [
            app.views.myList,
             ...
            ]
        });
        app.views.Viewport.superclass.initComponent.apply(this, arguments);                             
    }
});
然后,我有一个控制器,可在列表中的项目点击时触发:

app.views.viewport.setActiveItem(
                app.views.myDetail,
                options.animation
            );
面板将打开,但也会添加到选项卡栏


如果有人给我指点,我将不胜感激

您需要做的是将myList和其他tabPanel项的布局更改为card layout,并在myList的上下文中调用setActiveItem

当您直接在TabPanel上调用setActiveItem时,这将导致另一项被添加到tabBar中。 此外,您不需要在TabPanel中将布局设置为card,因为默认情况下它已经是card layout


例如,内部项目myDetail应该有合适的布局。

感谢您的回复。我试过myList.setActiveItem app.views.myDetail、options.animation;但这会在列表视图中打开详细视图,我的意思是列表的标题面板(停靠的工具栏)仍然位于顶部,并且详细面板在列表主体的位置滑动。我的范围搞错了吗?我的意思是:app.views.myList.setActiveItem app.views.myDetail,options.animation;尝试将具有卡片布局的面板添加到tabPanel的项目中,然后将列表添加到该面板中。然后调用list.ownerCt.setActiveItem