Gwt 获取UiBinder小部件以显示内联而不是块

Gwt 获取UiBinder小部件以显示内联而不是块,gwt,uibinder,Gwt,Uibinder,我试图让我的UiBinder定义的小部件以内联方式显示,但我不能。我目前的代码是: <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'> <ui:style> .section { border: 1px solid #000000; width: 330px; pa

我试图让我的UiBinder定义的小部件以内联方式显示,但我不能。我目前的代码是:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
  <ui:style>
    .section {
      border: 1px solid #000000;
      width: 330px;
      padding: 5px;
      display: run-in;
    }
  </ui:style>

  <g:HTMLPanel>
    <div class="{style.section}">
      <div ui:field="titleSpan" class="{style.title}" />
      <div class="{style.contents}">
        <g:VerticalPanel ui:field="messagesPanel" />
      </div>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>

.科{
边框:1px实心#000000;
宽度:330px;
填充物:5px;
显示:磨合;
}
就小部件的内部外观而言,这很好,但我想将这些小部件组合到FlowPanel中,并在调整窗口大小时使它们流动。HTMLPanel是一个div,但我无法获得要分配的display属性。我无法强制使用样式名称,因为以下错误:

<g:HTMLPanel styleNames="{style.section}">

我可以指定其他样式,但它不应用显示设置

<g:HTMLPanel addStyleNames="{style.section}">

这将按预期显示边框并设置大小,但不会流动。Firebug显示div上的样式为边框、宽度和填充,但不显示

有没有一种方法可以在UiBinder中创建一个小部件,以便它以内联方式而不是块方式显示?如果是这样的话,我可以让它与内部的VerticalPanel兼容吗(我可以不让整个小部件成为纯HTML而不使用任何GWT小部件吗)


PS:我看到了这个问题,但最近没有得到任何答案,他似乎专注于获取标签,而不是专门获取内联布局。我不直接关心,如果我可以让我的小部件的顶级标记内联流动,我很高兴。

看来您的问题是使用
display:run-in
而不是更“标准”的
display:inline
造成的。IE和Firefox不支持在中运行
,而且Firebug似乎会在添加时修剪样式

尝试将样式更改为
display:inline
(或者
inline block
,如果您想要块的某些属性,例如宽度,但要注意IE+
inline block
)的样式。

应该是
,而不是
-样式名是一个打字错误(出现在UiBinder文档中,因此我确信这就是您从中获得它的). styleName是正确的用法

此外,Igor Klimer认为应该使用
display:inline
display:inline block
而不是
display:run-in
是正确的

通常,您可以通过在类上查找setXXX方法来判断可用的属性名称,而属性名称就是XXX。因此,
UIObject
有一个
setStyleName
方法,您可以使用名为
styleName
的属性访问该方法