我有一个相当简单的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
);
面板打开但也添加到标签栏。
我很感激任何指针!
答案 0 :(得分:0)
您需要做的是将myList的布局和其他tabPanel项目更改为卡片布局,并在myList的上下文中调用setActiveItem。
当你直接在TabPanel上调用setActiveItem时,这是你得到的结果(另一个项目被添加到tabBar)。 此外,您不需要在TabPanel中将布局设置为卡,因为默认情况下它已经是卡布局。
内部项(例如myDetail)应该具有合适的布局。