Sencha Touch SetActiveItem将Icon添加到TabBar

时间:2011-09-10 15:12:37

标签: sencha-touch

我有一个相当简单的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
            );

面板打开但也添加到标签栏。

我很感激任何指针!

1 个答案:

答案 0 :(得分:0)

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

当你直接在TabPanel上调用setActiveItem时,这是你得到的结果(另一个项目被添加到tabBar)。 此外,您不需要在TabPanel中将布局设置为卡,因为默认情况下它已经是卡布局。

内部项(例如myDetail)应该具有合适的布局。