2011-09-10 123 views
1

我有一個相當簡單的Sencha Touch MVC應用程序,其中有一些由選項卡欄驅動的主標籤(包含列表)。當用戶點擊列表項時,我使用SetActiveItem打開一個新面板。這看起來不錯,但它向標籤欄添加了一個圖標(或空的可點擊空間)。我怎樣才能阻止呢?Sencha Touch SetActiveItem將圖標添加到TabBar

我視:

app.views.Viewport = Ext.extend(Ext.TabPanel, { 
    fullscreen: true,         
    layout: 'card', 
    cardSwitchAnimation: 'slide', 

    initComponent: function() { 

     // put instances of cards into app.views namespace 
     Ext.apply(app.views, { 
      myList: new app.views.MyList(), 
      myDetail: new app.views.MyDetail() 
      ... 
     }); 

     //put instances of cards into viewport 
     Ext.apply(this, { 
      tabBar: { 
       dock: 'bottom', 
       layout: { 
        pack: 'center' 
       } 
      }, 
      items: [ 
      app.views.myList, 
      ... 
      ] 
     }); 
     app.views.Viewport.superclass.initComponent.apply(this, arguments);        
    } 
}); 

然後我有一個控制器上的項目自來水激發我的列表:

app.views.viewport.setActiveItem(
       app.views.myDetail, 
       options.animation 
      ); 

的面板打開,但增加的TabBar爲好。

我會很感激任何指針!

回答

0

您需要做的是將myList和其他tabPanel項目的佈局更改爲卡布局,並在myList的上下文中調用setActiveItem。

當你直接在TabPanel上調用setActiveItem時,這是你得到的結果(另一個項目被添加到tabBar中)。 此外,您不需要在TabPanel中將佈局設置爲卡片,因爲默認情況下它已經是卡片佈局。

內部項目(例如myDetail)應該有合適的佈局。

+0

感謝您的回覆。我試過 myList.setActiveItem( app.views.myDetail, options.animation ); 但在列表視圖中打開詳細信息視圖(我的意思是列表的標題面板 - 停靠的工具欄 - 仍位於頂部),而詳細信息面板會滑入列表主體的位置。 我的範圍錯了嗎? – matdar

+0

我的意思是說: app.views.myList.setActiveItem(app.views.myDetail,options.animation); – matdar

+0

嘗試將包含卡布局的面板添加到tabPanel的項目中,並將該列表添加到該面板中。然後調用list.ownerCt.setActiveItem – Rubinsh

相關問題