Пытаюсь заставить Uibinder дать мне пролет, а не див
Вопрос
Я строю виджет с Uibinder, и мне нужно закрыть его в <span />
Но Uibinder только дает мне <div />
. Анкет Например <g:HTMLPanel />
=> <div />
. Анкет HorizonPanel, FlowPanel, VerticalCalpanel также выдает только <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 и inlinelebel виджеты, способные удерживать арбитатный HTML или простой текст соответственно в