题
我正在使用 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>
其他提示
您可以继续使用 <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 和 InlineLabel 小部件能够分别在 <span> 中保存任意 html 或纯文本
不隶属于 StackOverflow