Размер GWT LayoutPanel - PullRequest
       6

Размер GWT LayoutPanel

0 голосов
/ 19 июля 2011

Я пробовал несколько примеров с LayoutPanel в GWT.Я попытался разместить макетную панель (с размером 100%, 100%) на ScrollPanel, которая, в свою очередь, прикреплена к rootlayoutPanel.Несмотря на то, что высота, которую я назначил, составляет 100%, она не отображает панель макета, которая должна быть заполнена в корневом слое панели.Даже если я добавлю виджет на панель макета, он не будет виден в представлении дизайнера.Я мог бы просмотреть их, перетаскивая панель макета в представлении конструктора.Но это в конечном итоге заставит размер быть в пикселях.почему я нахожу это поведение?ниже приведен код:

RootLayoutPanel rp = RootLayoutPanel.get();

LayoutPanel lp = new LayoutPanel();

lp.setSize("100%","100%");

ScrollPanel sp = new ScrollPanel(lp);

rp.add(lp);

с этим кодом, я мог видеть layoutPanel только в виде строки.Я не мог видеть область (коробку), покрытую Layoutpanel.Если я пытаюсь вручную изменить высоту путем перетаскивания, она автоматически изменяет высоту панели макета на пиксели:

lp.setsize("100%","500px");

Почему я вижу это поведение?Есть какое-нибудь объяснение ??

1 Ответ

7 голосов
/ 19 июля 2011

Компоновка панелей может быть хитрой. LayoutPanels - это, по сути, абсолютные панели, которые предназначены для полностраничных веб-приложений. Чтобы это работало, все панели от корневой панели вниз (или от панели, где вызывается изменение размера и имеет фиксированный размер) должны иметь RequiresResize. В вашем случае (кроме ошибки в вашем примере, когда вы добавляете lp вместо sp в корневую панель, но я предполагаю, что вы хотели добавить sp), вы помещаете non LayoutPanel между RootPanel и LayoutPanel, это нарушает поток макета и таким образом, LayoutPanel lp не может быть автоматически изменен. LayoutPanel не получит высоту / ширину.

Однако использование ScrollPanel вместе с LayoutPanels не сработает. Вся идея LayoutPanel состоит в том, чтобы получить его размер на основе его родительского размера, но внутри ScrollPanel размер не связан, поэтому размер LayoutPanel не может быть установлена.

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