试图让UIBinder给我一个跨度而不是div

时间:2010-02-13 14:52:47

标签: gwt uibinder

我正在使用UiBinder构建一个小部件,我需要将其封装在<span />中,但UiBinder只给我<div />。例如。 <g:HTMLPanel /> =&gt; <div />。 Horizo​​nPanel,FlowPanel,VerticalPanel也只提供<div />

有人知道解决方案吗?

3 个答案:

答案 0 :(得分:24)

试试这个:

<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>

答案 1 :(得分:5)

您可以继续使用<div>,但只需将display: inline添加到其CSS中,这样就可以显示为<span>

编辑:固定的地方在我说'div'的末尾,但意思是'span'。

答案 2 :(得分:0)

关于Robert的上述答案(抱歉,我无法弄清楚如何直接评论)

这不会开箱即用,因为小部件不能放在纯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小部件,它们能够分别在&lt; span&gt;

中保留任意html或纯文本