GWT - панель раскладки в UiBinder
Мне нужно реализовать DockLayoutPanel в UiBinder. Я знал, что мы можем использовать
Мой вопрос заключается в том, есть ли что-нибудь в Uibinder, который может делать то же самое, что DockLayoutPanel.insertNorth(), DockLayoutPanel.insertWest()?
Кроме того, существуют ли какие-либо официальные документы, по которым я могу искать команды Uibinder, чтобы я мог знать, что я могу использовать для uibinder?
Благодарю.
3 ответа
И то и другое add*()
а также insert*()
Методы DockLayoutPanel предназначены для программного добавления подпанелей во время выполнения. UiBinder не делает "то же самое", что и эти методы. Ваша работа напрямую с UiBinder происходит только во время разработки.
UiBinder - это статический инструмент макета, "снимок" вашего виджета сразу после инициализации, способ описать, каково расположение элементов относительно друг друга вначале.
Виджеты, которые вы определяете с помощью UiBinder, могут программно обрабатываться после инициализации. Предположим, вы указали следующий макет:
<g:DockLayoutPanel ui:field="myDockPanel">
<g:north size="100">
<g:Label ui:field="northernLabel">I am far north</g:Label>
</g:north>
<g:center>
<g:Label ui:field="centerLabel">Center Stage</g:Label>
</g:center>
</g:DockLayoutPanel>
В коде, запущенном после инициализации вашего представления, вы можете перейти:
myDockPanel.insertNorth(new Label("I am even farther north!"), 100.0, northernLabel);
Кроме того, существуют ли какие-либо официальные документы, по которым я могу искать команды Uibinder, чтобы я мог знать, что я могу использовать для uibinder?
Раздел руководства Google Dev по декларативному макету с помощью UiBinder является настолько официальным, насколько это возможно, AFAIK.
Вот что вы ищете:
<g:FlowPanel>
<g:DockLayoutPanel ui:field="myPanel">
<g:west size="300">
<g:VerticalPanel ui:field="mySideBar" />
</g:west>
<g:center>
<g:VerticalPanel ui:field="myMainPanel" />
</g:center>
</g:DockLayoutPanel>
</g:FlowPanel>
В Ui нет никаких "команд":Binder. Вы можете указать макет, используя виджеты и HTML, и вы можете установить различные атрибуты для ваших виджетов (например, класс, ширина, высота, текст, заголовок, значение и т. Д.). Но вы не можете сказать Ui:Binder вставлять виджет в одну ситуацию, а не вставлять его в другую, например. Вы делаете это в коде вашего приложения.