如果我使用UIBinder创建一个复合widget,然后在代码中使用我创建的小部件,它会在我的小部件周围插入和添加额外的<div>
元素。有没有办法消除div或控制它是什么类型的元素?
public class ExamplePanel<T> extends Composite {
@UiField LabelElement inputLabel;
private static ExamplePanelUiBinder uiBinder = GWT.create(ExamplePanelUiBinder.class);
interface ExamplePanelUiBinder extends UiBinder<Widget, ExamplePanel> { }
public ExamplePanel() {
initWidget(uiBinder.createAndBindUi(this));
}
}
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<g:HTMLPanel>
<label ui:field="inputLabel">Label text</label>
</g:HTMLPanel>
</ui:UiBinder>
编辑看起来DIV是由<g:HTMLPanel>
创建的
发布于 2012-01-11 16:06:48
是的,div是由HTML面板创建的。您可以删除HTMLPanel,但是您必须将绑定类型更改为元素,并且您将不能再将其作为一个组合使用。在这种情况下,我要做以下几点:
public class ExamplePanel extends Widget
{
private static ExamplePanelUiBinder uiBinder = GWT.create(ExamplePanelUiBinder.class);
interface ExamplePanelUiBinder extends UiBinder<Element, ExamplePanel>
{
}
@UiField LabelElement inputLabel;
public ExamplePanel()
{
setElement(uiBinder.createAndBindUi(this));
}
}
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder">
<label ui:field="inputLabel">Label text</label>
</ui:UiBinder>
发布于 2012-01-12 07:22:03
显然,部分应答生成div,并且可以使用标记属性来控制:
<g:HTMLPanel tag="span">
<!-- your stuff -->
</g:HTMLPanel>
信贷:Trying to get UIBinder to give me a span not a div
这并不能完全解决我的需求,因为我想要消除DIV (使用HTMLPanel的替代方案?)或者能够与它交互(添加类等)。
https://stackoverflow.com/questions/8828422
复制