【问题标题】:Trying to get UIBinder to give me a span not a div试图让 UIBinder 给我一个跨度而不是 div
【发布时间】:2011-01-16 12:10:20
【问题描述】:

我正在使用 UiBinder 构建一个小部件,我需要将它包含在 <span /> 中,但 UiBinder 只给我 <div />。例如。 <g:HTMLPanel /> => <div />。 Horizo​​nPanel、FlowPanel、VerticalPanel 也只给出<div />

有人知道解决办法吗?

【问题讨论】:

标签: gwt uibinder


【解决方案1】:

试试这个:

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

【讨论】:

  • 问题是您不能使用这种技术通过 ui:field 更改内容。
【解决方案2】:

您可以继续使用 &lt;div&gt;,但只需在其 CSS 中添加 display: inline,这将使其显示为好像是 &lt;span&gt;

编辑:在我说“div”但意思是“跨度”的末尾固定位置。

【讨论】:

    【解决方案3】:

    关于罗伯特上面的回答(对不起,我不知道如何直接评论)

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

    中保存任意 html 或纯文本

    【讨论】:

    • 我尝试了 Bob 的解决方案,它在 HTMLPanel 中的小部件上运行良好。
    • 我的评论适用于较旧的 GWT 版本 - 10 年可用的版本
    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多