我正在用 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>
您可以继续使用 a<div>
但只需添加display: inline
到它的 CSS 中,这将使它显示为就好像它是一个<span>
.
编辑:在我说“div”但意思是“跨度”的末尾固定位置。
关于罗伯特上面的答案(对不起,我不知道如何直接评论)
这不会开箱即用,因为小部件不能放在纯 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 小部件能够分别在 <span> 中保存任意 html 或纯文本