GWT UiBinder каким-либо образом иметь динамический список виджетов?

Класс Foo имеет переменную List<Button> bar, как я могу отображать каждую из кнопок с помощью UiBinder? Возможно ли это?

Ответы

Ответ 1

UiBinder - это XML шаблон для декларативной прокладки виджета, а не является рендерером. Следовательно, вы не можете иметь условные обозначения, циклы и другие логические конструкции в XML файле UiBinder.

Вместо этого вы можете сделать панель в UiBinder как простой placeholder для того, где вы хотите, чтобы все ваши кнопки шли. У вас есть ссылка на ui: field на эту панель в вашем классе Java. Прокрутите список кнопок и добавьте кнопки в панель в Java-коде, используя дескриптор поля.

Другим подходом было бы определить составной и добавить композит в UiBinder, и пусть композит сделает рендеринг кнопок сам по себе. Просто зависит от того, что лучше всего подходит для вашего дизайна.