4

私は次のExt.TabPanelを持っています:

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'
        }]
});

これは次のようになります:

代替テキスト

真ん中の線を下まで伸ばして、親スペースを垂直に埋めるにはどうすればよいですか?

TabPanelがロードされる方法は次のとおりです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)であることがわかりますが、どこに設定されていますか?

代替テキスト

補遺

McStretch、私layout: 'fit'はタブ自体を入れてあなたのアイデアを試しましたが、行はまだ同じ場所にあります:

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'
        }]
});
4

2 に答える 2

2

修正:

申し訳ありませんがエドワード私は間違っていました、あなたはあなたの地域のコンテンツパネルlayout: 'fit'内に欲しいです。更新されたコードの変更は以下のとおりです。

使用するという最初の考えlayout: 'fit'は正しいですが、間違った場所にあります。次のものが必要です。

var regionContent = new Ext.Panel({
   region     : 'center',
   autoScroll : true,
   layout     : 'fit', // added this line
   items      : []
});
于 2010-12-02T15:07:40.073 に答える
2

境界線レイアウト内にいるように見えますが、境界線レイアウトを設定するパネルをどのように定義しますか?境界線レイアウトの中央領域は、通常、他の領域によって残されていないスペースを埋める必要があります。私はあなたのレイアウトのように見えるサンプルを作りました:http://jsbin.com/ikazo3/6/edit

ボーダーレイアウトのドキュメントから:

  • BorderLayoutを使用するコンテナには、region:'center'の子アイテムが必要です。中央の領域の子アイテムは、レイアウト内の他の領域で使用されていない残りのスペースを埋めるために、常にサイズ変更されます。
  • 西または東の領域を持つ子アイテムには、幅を定義する必要があります(領域が占めるピクセル数を表す整数)。
  • 北または南の領域を持つ子アイテムには、高さを定義する必要があります。
  • BorderLayoutの領域はレンダリング時に固定され、その後、その子コンポーネントを削除または追加することはできません。BorderLayout内でコンポーネントを追加/削除するには、BorderLayoutによって直接管理される追加のコンテナでコンポーネントをラップします。リージョンを折りたたみ可能にする場合、BorderLayoutマネージャーが直接使用するコンテナーはPanelである必要があります。次の例では、コンテナ(Ext.Panel)が西のリージョンに追加されています。
于 2010-12-02T15:12:54.920 に答える