У меня есть следующий вложенный макет в приложении dojo 1.4:
BorderContainer 1
-> Контейнер стека 1
-> -> BorderContainer 2
-> -> BorderContainer 3
Размер StackContainer составляет 100% по ширине и высоте. Когда я изменяю размер окна браузера с помощью максимизации / восстановления, StackContainer правильно изменяет размер до центральной области его родительского BorderContainer.
У меня проблема в том, что дочерние элементы StackContainer (BorderContainer 2 и 3) не меняют размер до contentBox StackContainer.
Есть ли что-то особенное, что нужно сделать, чтобы принудительно изменить размер дочерних элементов StackContainer? Я пробовал вызвать StackContainer1.resize (), но это не имеет значения.
Заранее спасибо.
Дополнительная информация:
Спасибо за ответ peller. Иерархия виджетов, содержащая StackContainer, на самом деле является настраиваемым виджетом, поэтому StackContainer фактически не находится в BorderContainer напрямую, но для его высоты и ширины явно установлено значение 100%. Это работает, и размер StackContainer изменяется правильно при максимальном увеличении браузера. Прямые дочерние элементы stackcontainer - это BorderContainer, и именно эти BorderContainer не изменяют размер при изменении размера StackContainer. Точная разметка:
<div dojoType="dijit.layout.StackContainer" style="height:100%;width:100%;">
<div dojoType="dijit.layout.BorderContainer" gutters="false" style="height:100%;width:100%;padding:0;" id="bcWrongSize">
</div>
</div>
Это BorderContainer 'bcWrongSize', размер которого не изменяется с родительским StackContainer. Встроенная высота и ширина, указанные в BorderContainer, заменяются явными размерами в пикселях в StackContainer. Однако при изменении размера браузера размер StackContainer изменяется до его родительского виджета правильно, но явные высота и ширина BorderContainer неверны. Первоначально вызывается метод макета в StackContainer, и он изменяет размер BorderContainer (являющегося видимым дочерним элементом). Однако размеры _contentBox, которые он передает BorderContainer, являются размерами StackContainer ДО его изменения размера. Ширина и высота, вычисленные dojo.marginBox, неверны (offsetWidth и offsetHeight - это размеры до того, как браузер развернул в максимальном масштабе). Может быть, эта проблема связана с тем, что StackContainer является subContainerWidget настраиваемого виджета и поэтому имеет 100% ширину и высоту?