Пытаюсь заставить Uibinder дать мне пролет, а не див

StackOverflow https://stackoverflow.com/questions/2257924

  •  20-09-2019
  •  | 
  •  

Вопрос

Я строю виджет с 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 или простой текст соответственно в

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top