0

我的tabpanel视图中只有一个选项卡。稍后当加载其他数据时,我将这些选项卡添加到此选项卡中,tabpanel但这样选项卡将按照我添加的顺序呈现。我想在现有选项卡之前显示新选项卡,但它总是在它之后附加选项卡,有没有办法做一些事情,比如addBefore使用它可以控制选项卡的位置?

这是我的标签面板:

{
    xtype           : 'tabpanel',
    flex            : 1,
    id          : 'featurePanel',
    tabBarPosition  : 'top',
    height          : '100%',
    ui              : 'maintabbar',
    tabBar          : { 
        layout : { 
            pack    : 'center' 
        } 
    },
    items   : [{
        title   : 'Tab 1',
        items   : [{
            xtype   : 'panel',
            id  : 'tab1Id'
        }]
    }]
}

这是我添加新面板的方式:

var featureList = Ext.create('MyTabApp.view.FeaturedList', {
        id      : "tab2Id"
    });
    var featurePanel = Ext.getCmp("featurePanel");
    featurePanel.add({
        title   : 'Tab 2',
        items   : [{
            xtype   : 'panel',
            items   : [featureList]
        }]
    });

我希望这个新标签(标签 2)出现在“标签 1”之前。

4

1 回答 1

1

tabpanel 的 add 方法总是会在最后添加新标签。所以如果你想在不同的位置添加新标签,你必须使用插入方法。使用此方法,您可以设置要添加的新选项卡的位置。

使用您的代码,它可以像 -

var featureList = Ext.create('MyTabApp.view.FeaturedList', {
    id      : "tab2Id"
});
var featurePanel = Ext.getCmp("featurePanel");
featurePanel.insert(0,{
    title   : 'Tab 2',
    items   : [{
        xtype   : 'panel',
        items   : [featureList]
    }]
});

这将在第一个位置添加新标签。如果要添加多个选项卡,则可以设置计数器并相应地添加新选项卡。

于 2013-03-13T13:20:49.333 回答