Ответ 1
Попробуйте следующее:
<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>
Я создаю виджет с UiBinder, и мне нужно включить его в <span />
, но UiBinder дает мне <div />
. Например. <g:HTMLPanel />
= > <div />
. HorizonPanel, FlowPanel, VerticalPanel также выдают только <div />
.
Кто-нибудь знает решение?
Попробуйте следующее:
<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>
Вы можете использовать <div>
, но просто добавьте display: inline
в свой CSS, который будет отображаться так, как будто это был <span>
.
Изменить: фиксированное место в конце, где я сказал "div", но имел в виду "span".
Что касается вышеприведенного ответа Роберта (извините, я не могу понять, как напрямую это прокомментировать)
Это не будет работать из коробки, так как виджеты не могут быть размещены внутри обычного 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, способные удерживать arbitary html или обычный текст соответственно в <span>