我有一个用GWT编写的小部件。在EntryPoint
的实现中,我让小部件加载一个控制器和一个绑定到该控制器的视图。我将这个视图添加到RootPanel中,它工作得很好。
public class EntryImpl implements EntryPoint {
SimplePanel simplePanel;
View view;
Controller controller;
public final void onModuleLoad()
{
controller = createController();
view = createViewForController(controller);
simplePanel = new SimplePanel();
simplePanel.add(view);
RootPanel.get().add(simplePanel);
}
}
类似于上面的内容。现在,我想要更改视图和控制器,假设用户单击一个按钮来加载不同的视图。我尝试了添加Anchor和处理ClickEvent的方法,如下所示:
public void onClick(Widget sender) {
simplePanel.remove(view);
controller = createController();
view = createViewForController(controller);
panel.add(view);
}
这是做这件事的正确方法,还是有更好的方法?到目前为止,这对我不起作用--我的新视图没有显示出来。
谢谢
发布于 2010-09-05 20:30:09
您可以使用DeckPanel并使用showWidget(index)
方法切换视图。启用甲板面板的动画可以提高可用性。
发布于 2010-09-06 01:04:48
您的OnClick事件中的面板是什么?如果你只是想查看视图,你可以得到根面板并看到它RootPanel.get().add(视图),在基础HTML页面中添加一个div可能会达到你的目的,如果你有div,你可以通过RootPanel.get(“div”).add( view )在该div中添加你的视图...
发布于 2010-09-15 17:34:41
你可以使用mvp模式来控制视图转换(我还没有用过它)
http://code.google.com/intl/en/webtoolkit/articles/mvp-architecture.html
https://stackoverflow.com/questions/3627446
复制