如何更改 gwt 面板的内容?

How to change the content of a gwt panel?

假设我有一个名为 A 的视图,它的 xml 类似于:

<g:HTMLPanel>
  <my:widgetA>
    ....
  </my:widgetA>
</g:HTMLPanel>

此外,我还有一个名为 widgetB 的小部件。我想根据某些条件更改视图 A 的内容,例如:

if (...is true) {
   A.clear();
   A.add(widgetA);
} else {
   A.clear();
   A.add(widgetB);
}

现在的问题是view A无法正确显示widgetA。向其中添加 widgetA 时,视图 A 变为空白。上面的实现有什么问题?

您可能要添加一个实现 RequiresResize 或至少需要指定固定大小的小部件。

要查明是否是这种情况,只需在该小部件上调用 [setSize](http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/UIObject.html#setSize(java.lang.String, java.lang.String)) ,固定大小如下:widgetA.setSize('50px','50px);'

如果可行,您需要提供尺寸或使用实现 ProvidesResize.

的面板