0

タブパネルのタブバーのタイトルを変更できません。

編集:私はテストアプリに取り組んでいます。魔女は、sencha-touchドキュメントの「はじめにのビデオ」と同様に、他の3つのビューを備えたメインタブパネルで構成されています。

ここで、ローカリゼーションの目的で、パネルへの3つのリンクを表すタブバーのアイコンの下のラベルを動的に変更する必要があります。

以下のコードでは、関連するビューのタイトルを変更して最初のボタンのラベルを変更しようとしています。ラベルには、ビューのタイトルである「ホーム」が表示されます。ビューの「アクティブ化」イベントでそれを実行したいと思います。このコードの結果、ホームビューのタイトルをログに記録すると、タイトルは変更されますが、タブバーのボタンラベルは同じままです。

ボタンを「更新」するようなものが恋しいと思いますが、ドキュメントでこのテーマについて何も見つかりません。この編集が私の質問をよりよく説明することを願っています。

コードは次のとおりです。

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はconfigs用で、alias後で使用できるエイリアスを定義するためのものですxtype(プレフィックスwidget.としてウィジェットとしてstore.使用したり、ストアとして使用したりするなど)。

于 2013-01-11T10:25:51.763 に答える