0

我无法更改选项卡面板中的选项卡标题。

编辑:我正在开发一个测试应用程序,它包含一个带有其他三个视图的主选项卡面板,类似于 sencha-touch 文档的“入门视频”。

现在,出于本地化目的,我需要动态更改选项卡栏图标下的标签,代表面板的三个链接。

在下面的代码中,我尝试通过更改相关视图的标题来更改第一个按钮的标签,因为标签显示“主页”,即视图的标题。我想在视图的“激活”事件上执行此操作。此代码的结果是,如果我记录主视图的标题,它会更改,但标签栏按钮标签保持不变。

我认为我错过了“刷新”按钮之类的东西,但是我在文档中找不到有关此主题的任何内容。我希望这个编辑能更好地解释我的问题。

这是代码:

Ext.define('lvzMobile.view.Main', {
extend: 'Ext.tab.Panel',
requires: ['Ext.TitleBar'],
xtype: 'main',

config: {
    tabBarPosition: "bottom",

    items: [
        {
            xtype: 'homePanel',
            id: 'home',
        },
        {
            xtype: 'catalogue',
            id: 'catalogue'
        },
        {
            xtype: 'infoPanel',
            id: 'info'
        }
    ],

    listeners: {
        activate: function() {
            console.log("activate");
            this.getAt(0).setTitle("emoh");
            //the title changes but nothing happens in the tabbar... 
        }
    }
}
});

拜托,你能帮帮我吗?我不明白出了什么问题。

4

1 回答 1

3

那行说:

this.getAt(0).setTitle('emoh')

…会改变你的标题panel,但不会改变按钮本身。要更改按钮文本,请使用:

this.getTabBar().getAt(0).setTitle('emoh')

这是您要演示的代码的小提琴。

在那里,这里有一个提示:使用alias: 'widget.main'而不是xtype: 'main'. xtype用于配置,alias用于定义别名,该别名随后可用于xtype(使用前缀widget.用作小部件,store.用作商店等)。

于 2013-01-11T10:25:51.763 回答