sencha触摸如何更改标签栏中的标题

时间:2013-01-10 16:04:34

标签: extjs sencha-touch touch tabbar

我无法在标签面板中更改标签栏标题。

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

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

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

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

以下是代码:

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... 
        }
    }
}
});

拜托,你能帮助我吗?我无法理解什么是错的。

1 个答案:

答案 0 :(得分:3)

该行说:

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

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

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

Here's a fiddle with your code来演示。

虽然有,但请注意:使用alias: 'widget.main'代替xtype: 'main'xtype用于配置,alias用于定义别名,后者随后可以使用xtype(使用前缀widget.作为窗口小部件,{{1}用作商店等。)。