У меня есть следующий вложенный макет в приложении Dojo 1.4:
BorderContainer 1
-> Стек-контейнер 1
-> -> BorderContainer 2
-> -> BorderContainer 3
Размер StackContainer по ширине и высоте составляет 100%.
Когда я изменяю размер окна браузера с помощью функции максимизации / восстановления, StackContainer корректно изменяет размеры до центральной области своего родительского BorderContainer.
Проблема, с которой я столкнулся, заключается в том, что дочерние элементы StackContainer (BorderContainer 2 и 3) не изменяют размер в contentBox StackContainer.
Есть ли что-то особенное, что вам нужно сделать, чтобы принудительно изменить размер детей StackContainer?
Я пытался вызвать StackContainer1.resize (), но это не имеет значения.
Заранее спасибо.
Дополнительная информация:
Спасибо за ответ Пеллер. Иерархия виджетов, которая содержит StackContainer, на самом деле является пользовательским виджетом, поэтому StackContainer фактически не находится непосредственно в BorderContainer, но его высота и ширина явно установлены на 100%. Это работает, и размер StackContainer корректно изменяется в браузере. Прямыми потомками стека-контейнера являются BorderContainers, и именно эти BorderContainers не изменяются при изменении размера 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 неверны.
Incedentally, метод расположения на StackContainer вызывается, и это изменяет размер BorderContainer (являющийся видимым дочерним элементом). Однако измерения _contentBox, которые он передает в BorderContainer, являются измерениями StackContainer ДО его изменения размера. Ширина и высота, вычисленные с помощью dojo.marginBox, являются неверными (offsetWidth и offsetHeight - это размеры, которые были до максимизации браузера).
Может быть, эта проблема связана с тем, что StackContainer является subContainerWidget пользовательского виджета и поэтому имеет ширину и высоту 100%?