2010-12-02 6 views
4

を埋めるためにExt.Panelの高さを取得するにはどうすれば持って、次のExt.TabPanel:親エリアに

alt text

はどのように取得することができます。このようになります

var modules_info_panel = new Ext.TabPanel({ 
    activeTab: 0, 
    defaults:{autoScroll:true}, 
    //layout: 'fit', // makes component disappear 
    viewConfig: { 
     forceFit: true //has no effect 
    }, 
    // height: auto, //error "auto isn't recognized" 
    items:[{ 
      title: 'Section 1', 
      html: 'test' 
     },{ 
      title: 'Section 2', 
      html: 'test' 
     },{ 
      title: 'Section 3', 
      html: 'test' 
     }] 
}); 

中間の行を下に伸ばして、親の空間を垂直に塗りつぶしますか?ここで

は、タブパネルがregionContentにロードされる方法は次のとおりです。

regionContent = new Ext.Panel({ 
    id: 'contentArea', 
    region: 'center', 
    autoScroll: true 
}); 


function clearExtjsComponent(cmp) { 
    var f; 
    while(f = cmp.items.first()){ 
     cmp.remove(f, true); 
    } 
} 

function replaceComponentContent(cmpParent, cmpContent) { 
    clearExtjsComponent(cmpParent); 
    cmpParent.add(cmpContent); 
    cmpParent.doLayout(); 
} 

replaceComponentContent(regionContent, modules_info_panel); 

私は高さがDOMに、この要素のためであることがわかり設定されていることを絶対(19px)、ですか?修正さ

var modules_info_panel = new Ext.TabPanel({ 
    activeTab: 0, 
    defaults:{autoScroll:true}, 
    items:[{ 
      title: 'Section 1', 
      layout: 'fit', 
      html: 'test' 
     },{ 
      title: 'Section 2', 
      layout: 'fit', 
      html: 'test' 
     },{ 
      title: 'Section 3', 
      layout: 'fit', 
      html: 'test' 
     }] 
}); 
+0

申し訳ありませんが、私はレイアウトの正しい配置と私の応答を更新しました:「フィット」私が試したこと – McStretch

答えて

2

alt text

補遺

McStretchは、私自身が、ラインがまだ同じ場所にあるタブでlayout: 'fit'を置くことによって、あなたのアイデアを試してみました

申し訳ありませんが、私は間違っていた、あなたは欲しいlayout: 'fit'regionContent Panel内にあります。更新されたコードの変更は以下の通りです。

layout: 'fit'を使用する最初の考え方は正しいですが、間違った場所にあります。あなたはボーダーレイアウト内にあるように

var regionContent = new Ext.Panel({ 
    region  : 'center', 
    autoScroll : true, 
    layout  : 'fit', // added this line 
    items  : [] 
}); 
+0

次 の例ではコンテナ(Ext.Panel)は が西地域に追加されますあなたのコードのように、それは助けにならなかった、私はすべての私のタブ(上のコード)に追加し、それはまだ効果がなかった。 –

+0

これはうまくいきました –

2

が見え、どのように境界線のレイアウトを設定するパネルを定義します:あなたは次のようしたいですか?境界線レイアウトの中央領域は、通常、他の領域に残っていない領域を埋める必要があります。 Border Layoutドキュメントからhttp://jsbin.com/ikazo3/6/edit

:私はあなたのレイアウトのように見えるサンプルをした

  • 領域と子アイテムを持っている必要がありますにBorderLayoutを使用して、任意のコンテナ:「センター」。 中央領域の子アイテムは、 の残りのスペースを埋めるために常にサイズ変更され、 はレイアウト内の他の領域で使用されません。
  • 西または東の領域を持つ子アイテムの幅は、 (領域は を取るべき ピクセルの数を表す整数)と定義する必要があります。
  • 北または南の地域を持つ子アイテムの高さは、 である必要があります。
  • レンダリング時にBorderLayoutの領域が固定された後、 子コンポーネントが削除または追加されない可能性があります。 /追加のBorderLayout内 コンポーネントを削除するには、それらを直接 のBorderLayoutによって管理されている追加の コンテナによってラップ を持っています。領域が に折りたたみ可能な場合、コンテナはBorderLayoutマネージャ を直接Panelとして使用します。そのことについて
+0

+1 jsbin.com、非常に便利 –

+0

私はついにそれがあなたのコードで 'border:false'でした。 –