我在向应用程序添加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。我调试了我的代码并确保在初始化SuggestBox
之前正确创建并初始化了自定义UiBinder
类。
我的SuggestBox
效果不佳。让我感到困惑的是,如果我使用FlexTable
将其添加到setWidget(row, column, widget)
(我必须通过建议框显示我添加的条目),这个组件可以正常工作,所以在初始化时我可能会遗漏一些东西UI。虽然我有Dewsbury&#39;在GWT应用程序上预订,它不包括UiBinder
。我检查过的教程和代码示例使用
<g:SuggestBox ui:field="mySuggestBox"/>
没问题。但是,在创建和初始化此组件或使SuggestBox
不起作用的UI时,我不明白我做错了什么。我不知道它是否需要超过
actorSuggestBox = new SuggestBox(new CustomSuggestOracle());
初始化sugestbox,或者在链接/初始化此组件时是否存在任何其他重要概念。
组件声明为
@UiField
@Ignore
SuggestBox actorSuggestBox;
答案 0 :(得分:1)
你必须使用:
@UiField (provided = true)
SuggestBox actorSuggestBox = new SuggestBox(new CustomSuggestOracle());
您需要在调用活页夹(createAndBindUi
)之前初始化此小部件。