Использование UIBinder для создания виджета для перехода в диалог

Я нашел это; который позволяет мне создать виджет в коде: почему размер диалогового окна такой маленький с этой панелью GWT DockLayoutPanel?

но я хочу использовать UIBinder.

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

например:

код UIBinder:

<g:DockLayoutPanel unit='EM'>
  <g:north size='4'>
    <g:Label>Header</g:Label>
  </g:north>

  <g:west size='8'>
    <g:Label>Navigation</g:Label>
  </g:west>

  <g:center size="10">
    <g:ScrollPanel>
      <g:Label>Content Area</g:Label>
    </g:ScrollPanel>
  </g:center>
</g:DockLayoutPanel>

и если виджет называется WizardPanel;

тогда код будет:

Dialog mydialog = new Dialog();
mydialog.add(new WizardPanel);
mydialog.show();

Я также попытался вставить строку в:

WizardPanel wp = new WizardPanel();
wp.setSize("100em", "100em");

прежде чем добавить его в mydialog, это не имеет никакого значения.

В конце концов я могу захотеть использовать LayoutPanel; но пока DockLayoutPanel кажется достаточным.

Спасибо!

2 ответа

В DockLayoutPanel вы не должны устанавливать размер для центра. Центр просто берет то, что осталось от других элементов. Кроме этого я не вижу ничего плохого в вашем коде.

Я думаю, что все LayoutPanels нуждаются в непрерывной цепочке LayoutPanels вплоть до RootLayoutPanel. Диалог является "нормальной" панелью, поэтому вы должны явно указать размеры LayoutPanels.

Смотрите раздел " Использование LayoutPanel без RootLayoutPanel " в рецептах LayoutPanel

Другие вопросы по тегам