1

実行時に UI の一部を切り替えることができる UI:Binder 生成ページが必要です。次に例を示します。

//...More UI Binder stuff
<g:Widget ui:field="generalWidget" />
//...More UI Binder stuff

ビューの実装で、generalWidget が表示する正確なウィジェット タイプを変更したいと考えています。たとえば、次のようなことができるようになりたいです。

@UiBinder Widget generalWidget;
...
if (<condition>) 
   generalWidget = new TabLayoutPanel(...);
else
   generalWidget = new FlowPanel(...);

しかし、これは私にはうまくいきません。ページにアクセスすると、次のようになります。

java.lang.AssertionError: This UIObject's element is not set; you may be missing a call to either Composite.initWidget() or UIObject.setElement()

開発ログで。私が知る限り、これは g:widget を使用しているためです。パネルを直接使用すると機能するからです。

この問題を解決し、必要な切り替えウィジェットの動作を取得する最善の方法は何ですか?

4

1 に答える 1

2

provided = trueのがありません@UiField:

@UiField(provided = true) Widget generalWidget;

そしてもちろん、呼び出す前にそのフィールドを割り当ててくださいcreateAndBindUi!

于 2012-10-22T14:53:38.700 に答える