我正在使用 UiBinder 构建一个小部件,我需要将其封装在 <span /> 但 UiBinder 只给我 <div />. 。例如。 <g:HTMLPanel /> => <div />. 。Horizo​​nPanel、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 或纯文本

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top