View GWTP-在另一个视图中插入小部件
我正在从事一个使用GWTP的项目,我想知道是否可以将一个视图的对象注入到另一个视图中。比如:View GWTP-在另一个视图中插入小部件,view,inject,gwtp,View,Inject,Gwtp,我正在从事一个使用GWTP的项目,我想知道是否可以将一个视图的对象注入到另一个视图中。比如: 公共类BarView扩展ViewWithUiHandlers实现BarPresenter.BarView{ 公共接口绑定器扩展了UiBinder{ } @uifieldsomewidget SomeWidget; @注入 公共播放视图(活页夹){ initWidget(binder.createAndBindUi(this)); } } 公共类FooView扩展ViewWithUiHandlers实现F
公共类BarView扩展ViewWithUiHandlers实现BarPresenter.BarView{
公共接口绑定器扩展了UiBinder{
}
@uifieldsomewidget SomeWidget;
@注入
公共播放视图(活页夹){
initWidget(binder.createAndBindUi(this));
}
}
公共类FooView扩展ViewWithUiHandlers实现FooPresenter.FooView{
公共接口绑定器扩展了UiBinder{
}
SomeWidget SomeWidget;
@注入
公共PlayerView(活页夹、SomeWidget和SomeWidget){
initWidget(binder.createAndBindUi(this));
this.someWidget=someWidget;
}
}
这样行吗?有人知道如何做到这一点吗?是的,这是可以做到的
在Singleton中绑定您的SomeWidget
类:
bind(SomeWidget.class).in(Singleton.class);
因此,两个视图将具有相同的SomeWidget
实例
如果您的SomeWidget
在UiBinder中使用(如BarView
),则必须使用@UiField(提供=true)
注释SomeWidget
字段:
@UiField(提供=true)
SomeWidget SomeWidget;
在调用initWidget
之前,在构造函数中指定字段:
@Inject
公共PlayerView(活页夹、SomeWidget和SomeWidget){
this.someWidget=someWidget;
initWidget(binder.createAndBindUi(this));
}
您还必须在
FooView
中使用这两个技巧,效果非常好!只是跟进: