2011-09-10 14 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 
      ); 

をパネルが開きますが、同様にタブバーに追加されます。

私はどんなポインタにも感謝します!

答えて

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

関連する問題