我正在使用UiBinder构建一个小部件,我需要将其封装在<span />
中,但UiBinder只给我<div />
。例如。 <g:HTMLPanel />
=&gt; <div />
。 HorizonPanel,FlowPanel,VerticalPanel也只提供<div />
。
有人知道解决方案吗?
答案 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或纯文本