GWT DockLayoutPanel с браузером, определяющим размер некоторых подпанелей? - PullRequest
1 голос
/ 02 января 2012

Похоже, вы должны указать абсолютные размеры всех, кроме одной подпанели. Например, из GWT документов :

DockLayoutPanel p = new DockLayoutPanel(Unit.EM);
p.addNorth(new HTML("header"), 2);
p.addSouth(new HTML("footer"), 2);
p.addWest(new HTML("navigation"), 10);
p.add(new HTML(content));

Но я хочу, чтобы размер северной панели определялся браузером. Я поместил в него текст или кнопки, и я точно не знаю, какой это будет размер, я просто знаю, что он относительно тонкий и находится вверху страницы. И я хочу, чтобы контент занимал все остальное пространство, но не более, поэтому в браузере нет полос прокрутки. Есть ли способ справиться с этим с помощью этих новых панелей макета?

Прямо сейчас я использую старые панели, и к мне прикреплен обработчик с Window.addResizeHandler, который устанавливает высоту основной области содержимого так, чтобы все вписывалось в Window.getClientHeight

Обновление:

Томас предложил DockLayoutPanel внутри HeaderPanel, но это не работает для меня:

<g:HeaderPanel>
 <g:Label>Header top</g:Label>
 <g:DockLayoutPanel unit='PX'>
   <g:west size='300'>
     <g:Label>West</g:Label>
   </g:west>
   <g:center>
     <g:Label>Center</g:Label>
   </g:center>
 </g:DockLayoutPanel>
</g:HeaderPanel>

"Верхний колонтитул" там, остальные невидимы. Похоже, что внутренние div получают 0 высоту.

1 Ответ

1 голос
/ 02 января 2012

Вы должны поместить DockLayoutPanel (для западной и центральной областей, возможно, также и южную, если вы не хотите, чтобы он использовал естественную высоту ) в HeaderPanel (для натурального проката северного региона)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...