Gwt 获取UiBinder小部件以显示内联而不是块
我试图让我的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
<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
的属性访问该方法