假设我的ui.xml文件中有一些visible="false"
属性的组件,在我的java代码中我展示了一些组件。有没有简单的方法/方法来恢复存储在uiBinder中的可见性限制,所以我得到了基本的组件配置?
答案 0 :(得分:2)
不,UiBinder不会这样做。编译时使用ui.xml
文件为您生成Java代码。因此,您的visible="false"
可能会生成对UiObject.setVisible
等的调用。当您致电initWidget(uiBinder.createAndBindUi(this));
时,会运行此代码。如果你想恢复"你的小部件到UiBinder设置的初始状态我担心唯一简单的方法是再次实例化小部件 - 但我不推荐这个,因为它通常是一个代价高昂的操作。最好只编写一个将字段恢复到预定义状态的方法 - 您也可以使用此方法设置初始状态,而不是在UiBinder模板中定义它(并在某种意义上复制)。我假设您在课堂上可以访问所有必要的字段(因为您提到在您的问题中通过Java代码更改其可见性),因此您不必添加一堆字段来调用{{ 1}}在他们身上。
答案 1 :(得分:0)
您只需将setVisible(true)调用到您想要的小部件:
Fichier UiBinder
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:HTMLPanel>
Hello, <g:TextBox ui:field='textBox' visible='false'/>.
</g:HTMLPanel>
</ui:UiBinder>
Fichier Java
public class HelloWidgetWorld extends Composite {
interface MyUiBinder extends UiBinder<Widget, HelloWidgetWorld> {}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
@UiField TextBox textBox;
public HelloWidgetWorld() {
// sets listBox
initWidget(uiBinder.createAndBindUi(this));
}
public void restoreVisible() {
textBox.setVisible(true);
}
}