2013-08-01 19 views
1

大家好,我發佈了問題here。 !此代碼是舊視圖出現在背景

Ext.define('MyPrj.view.Main', { 
extend: 'Ext.Container', 
alias: 'widget.mainmenuview', 
config: { 
activeItem: 1, 
width: 710, 
margin: '10px auto 0', 
layout: { 
type: 'hbox' 
}, 
items: [ 

{ 
    flex: 1, 
    xtype:'menupage', 
    cls: 'menuPage', 
}, 
{ 
    flex:2, 
    xtype:'homepage', 
    cls: 'homePage', 

    }, 

    { 
    flex:1, 
    xtype:'categorypage', 
    cls: 'categoryPage', 
    }, 
    ] 
    } 
}); 

itemTap上菜單後,我得到這樣的結果[結果] [3]

的代碼itemTap

if(id == '1'){ 
console.log("Value of Click--"+id); 
var publishedword = { xtype: 'publishedword' }; 

    // I am assuming active item is container, here i am getting Container object 
    var outerContainer = Ext.Viewport.getActiveItem(1); 

    // removing the second item (index start with 0) 
    outerContainer.down('panel').removeAt(1); 

    // replacing second item into publishedword 
    outerContainer.down('panel').insert(1, publishedword); 
    outerContainer.getAt(1).setActiveItem(publishedword); 
} 

我的結果應該是:

![預期結果] [4] 感謝您的幫助。

回答

0

我解決了使用:

removeInnerAt(index); 

如說in通過@TDeBailleul 我用它作爲:

panel.removeInnerAt(0); 
var publishedword = { xtype: 'publishedword' }; 
panel.insert(0, publishedword); 

希望它可以幫助一些之一。

0

首先 - 爲什麼你使用容器的mainmenuview而不是tabpanel?

現在你的代碼:

var outerContainer = Ext.Viewport.getActiveItem(1); 

getActiveItem()不支持的索引。 activeItem應該是mainmenuview

outerContainer.down('panel').removeAt(1); 

如果menupage,網頁,...是面板則該面板中,你會刪除第二項(記住,要刪除的項目添加一個項目之前)

outerContainer.down('panel').insert(1, publishedword); 

現在您要插入的發佈詞

outerContainer.getAt(1).setActiveItem(publishedword); 

在這裏,你是活動項目設置不給面板,在這裏您刪除,並添加編輯的項目,但對外部容器內的第一個項目,這並不是你想要解決的問題。

+0

我沒有使用標籤面板,因爲它們不是標籤。所有這三種視圖立即出現在一個屏幕上,現在我的要求是當用戶在主頁位置的菜單項中單擊時帶來其他視圖。 – surhidamatya