1

我在将 a 添加SuggestBox到我的应用程序时遇到了一些问题。UiBinder模板如下所示:

...
<g:FlowPanel>
   <g:SuggestBox ui:field='actorSuggestBox' styleName='{style.givemespace}' />
   <g:Button ui:field="addActorButton">Add Actor</g:Button>
</g:FlowPanel>

<g:FlexTable ui:field='actorsTable'></g:FlexTable>
....

我正在通过扩展创建自己的建议框MultiWordSuggestOracle。我已经调试了我的代码,并确保SuggestBox在初始化UiBinder.

我的SuggestBox不好用。让我感到困惑的是,如果我将它添加到FlexTable(我必须显示我通过建议框添加的条目)使用setWidget(row, column, widget)这个组件可以正常工作,所以在初始化 UI 时我可能会遗漏一些东西。虽然我有 Dewsbury 关于 GWT 应用程序的书,但它没有涵盖UiBinder. 我检查过的教程和代码示例使用

<g:SuggestBox ui:field="mySuggestBox"/>

没有问题。SuggestBox然而,我不明白在创建和初始化这个组件或导致它不起作用的 UI 时我做错了什么。不知道会不会超过

actorSuggestBox = new SuggestBox(new CustomSuggestOracle());

初始化 sugestbox,或者在链接/初始化此组件时是否缺少任何其他重要概念。

该组件声明为

@UiField 
@Ignore
SuggestBox actorSuggestBox;
4

1 回答 1

1

你必须使用:

@UiField (provided = true)
SuggestBox actorSuggestBox = new SuggestBox(new CustomSuggestOracle());

您需要在调用活页夹 ( createAndBindUi) 之前初始化此小部件。

于 2014-09-12T19:52:53.810 回答