gwt StackPanel替换小部件

gwt StackPanel替换小部件,gwt,Gwt,我正在使用StackPanel,我想知道是否有一种聪明的方法可以将StackPanel子部件中的一个替换为另一个,而不是修改标题。点击其中一个孩子后,取决于某些因素,我想(或不想)展示另一个孩子。有什么建议吗?知道要替换的子部件的索引(通过调用getWidgetIndex(…)也许可以将此小部件替换为新的小部件,如下所示: StackPanel sp = new StackPanel(); // ... you are setting up your StackPanel etc // whe

我正在使用StackPanel,我想知道是否有一种聪明的方法可以将StackPanel子部件中的一个替换为另一个,而不是修改标题。点击其中一个孩子后,取决于某些因素,我想(或不想)展示另一个孩子。有什么建议吗?

知道要替换的子部件的索引(通过调用
getWidgetIndex(…)
也许可以将此小部件替换为新的小部件,如下所示:

StackPanel sp = new StackPanel();
// ... you are setting up your StackPanel etc

// when you want to replace a widget
int index = sp.getWidgetIndex(widgetYouWantToReplace);
if (index != -1) {
  sp.insert(newWidget, index);
}
sp.remove(widgetYouWantToReplace);

这不是很令人满意的解决方案,它有一个恼人的缺点。删除小部件后,页面始终移动到顶部。现在我做了一件奇怪的事情,我保留了一个小部件列表,而不是替换它们,我只是“告诉”它们改变它们的外观:)