如果我使用UIBinder創建一個Composite Widget,那麼使用我創建的代碼中的小部件,它會在我的小部件周圍插入額外的<div>
元素。有沒有辦法消除div或控制它是什麼樣的元素?如何在不向DOM添加DIV的情況下創建GWT複合控件?
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>
編輯 看來,正在被<g:HTMLPanel>
我爲了這個問題簡化了我的例子,而不是隻有一個標籤,我有幾個字段,如果它不是複合材料,我還能夠擁有多個字段嗎? – checketts 2012-01-12 00:10:50
只要你不使用小部件(只有com.google.gwt.dom.client。*元素),是的;顯然你仍然需要一個容器元素。 – 2012-01-12 12:54:49
是的;你可以在那裏獲得所有你想要的HTML,你不能添加一個小部件,這就是HTML面板的用途,因爲它處理了小部件的邏輯綁定。如果你自己處理邏輯綁定,你可以將小部件的元素插入到你的html中,但你基本上會重寫很多HTMLPanel綁定邏輯。 – LINEMAN78 2012-01-12 21:18:20