Попытка получить UIBinder, чтобы дать мне промежуток, а не div - PullRequest
16 голосов
/ 13 февраля 2010

Я создаю виджет с помощью UiBinder, и мне нужно заключить его в <span />, но UiBinder дает мне только <div />. Например. <g:HTMLPanel /> => <div />. HorizonPanel, FlowPanel, VerticalPanel также выдают только <div />.

Кто-нибудь знает решение?

Ответы [ 3 ]

24 голосов
/ 27 мая 2010

Попробуйте это:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
         xmlns:g='urn:import:com.google.gwt.user.client.ui'>
    <g:HTMLPanel tag="span">
        <!-- your stuff -->
    </g:HTMLPanel>
</ui:UiBinder>
5 голосов
/ 15 февраля 2010

Вы можете продолжать использовать <div>, но просто добавьте display: inline к его CSS, и он будет отображаться так, как если бы он был <span>.

Редактировать: фиксированное место в конце, где я сказал «div», но имел в виду «span».

0 голосов
/ 14 февраля 2010

Что касается ответа Роберта (извините, я не могу понять, как это прокомментировать напрямую)

Это не будет работать из коробки, так как виджеты не могут быть размещены внутри простогоHTML (компилятор выдаст вам «ошибка: найденный виджет в HTML-контексте»).Но есть простой обходной путь:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
             xmlns:g='urn:import:com.google.gwt.user.client.ui'>
  <g:HTMLPanel>
    <span>
      <!-- Your content with widgets goes here -->
    </span>
  </g:HTMLPanel>
</ui:UiBinder>

Еще одна полезная вещь для упоминания - это виджеты InlineHTML и InlineLabel, способные содержать произвольный html или простой текст соответственно в

...