TabContainer.layout()
コンテナのサイズが変更されるたびに呼び出す必要があります。これを行うには、1)DOMNodeの包含時にDOMEvents onunderflowおよびonoverflowを監視するか、2)コンテナーが表示されたとき(once-n-forall)を監視できます。
window.onresizeイベントがそれを修正する理由は、TabContainerがそのイベントをフックし、独自のレイアウトを呼び出すためです。
TabControllerがTabContainerのペインをいじる状況では、どこかに「layoutChildren」がない可能性があります。最適には、グリッドを一人っ子の最初のタブとして配置する必要があります。
グリッドが展開された後、TabContainerから「継承された」絶対的な計算された高さが取得されます。これは、TabContainerがサイズ変更を選択するか、サイズ変更を指示されると発生します。
手動で、タブを再度開いた後、これらの行を実装できるはずです。スクリプトは、説明のために_Grid.jsから取得されています
var grid = dijit.byId('MYGRIDID');
require(["dijit/layout/utils"], function(layerUtils) {
layoutUtils.layoutChildren(grid.domNode,
grid._contentBox,
[grid.tablist, {
domNode: grid.tablistSpacer,
layoutAlign: titleAlign
}, {
domNode: grid.containerNode,
layoutAlign: "client"
}]);
grid._containerContentBox = layoutUtils.marginBox2contentBox(grid.containerNode,
{
domNode: grid.containerNode,
layoutAlign: "client"
});
// note this line in particular
grid.selectedChildWidget.resize(grid._containerContentBox);
}