在我的场景中(欢迎修改)我有一个带有导航和内容面板的主页:
main
|
+--- Navigation (sets contents in ContentPage)
|
\--- ContentPage
现在,Navigation
需要一个引用,ContentPage
以便它可以实际更改内容。这意味着何时main
构建,它需要传递ContentPage
给Navigation
. 这是我目前正在使用的代码:
public class Main extends Composite {
@UiField
Panel contentPanel;
@UiFactory
Navigation makeNavigation() {
return new Navigation(contentPanel);
}
interface MyUiBinder extends UiBinder<Widget, Middle> {
}
private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
public Main() {
initWidget(uiBinder.createAndBindUi(this));
}
}
问题是,在调用 makeNavigation 时, UiField contentPanel
尚未设置(它为空)。我想这是合理的,因为我无法保证initWidget
已被调用。
那么,我接近这个错误吗?有没有办法选择创建顺序?