Как использовать AbsolutePanel в XML-файле UiBinder - PullRequest
5 голосов
/ 13 мая 2010

Я хотел бы сделать абсолютную разметку, используя указанную панель, используя только файл ui.xml, однако не ясно, возможно ли это, поскольку документация концентрируется на коде и вообще игнорирует язык разметки. Полагаю, поскольку в учебнике об этом нет упоминания, это невозможно, но хотелось бы знать наверняка.

Ответы [ 2 ]

9 голосов
/ 16 июня 2011

Я знаю, что это старый, но они обновили uibinder для AbsolutePanel

Использование в шаблонах UiBinder

Элементы AbsolutePanel в UiBinder шаблоны выкладывают своих детей с абсолютная позиция, используя элементы. Каждый элемент должен иметь левый и верхний атрибуты в пикселях. Они также могут содержать виджеты детей напрямую, без указания позиции.

Например:

<g:AbsolutePanel>
   <g:at left='10' top='20'>
     <g:Label>Lorem ipsum...</g:Label>
   </g:at>
   <g:Label>...dolores est.</g:Label>
 </g:AbsolutePanel>
2 голосов
/ 14 мая 2010

Вы правы - сейчас нет способа сделать это. Эта может быть исправлена ​​ в будущем выпуске GWT путем введения некоторого пользовательского синтаксиса, как это было сделано для DockLayoutPanel. Но я сомневаюсь в этом - вы бы хотели написать такой код:

<g:AbsolutePanel ui:field="absolutePanel">
    <g:Button x="50px" y="50px">Test</g:Button>
</g:AbsolutePanel>

Однако это конфликтует с "bean" (как в Java Beans; если у вас есть метод getSomethingCool, вы можете написать somethingCool="kewl" в коде UiBinder, и он автоматически вызовет соответствующий метод get / set) потому что Button не имеет setX/Y метода. Это можно обойти, заменив вызовы setX/Y соответствующими вызовами существующих методов (позиционирование CSS и т. Д.) Во время компиляции. Но это вводит еще одно пользовательское поведение, зависящее от Widget / Panel для переноса - я думаю, что разработчики GWT хотели бы избежать этого.

...