Проблема с GWT SuggestBox

У меня возникают проблемы с добавлением 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) этот компонент работает правильно, поэтому, возможно, я что-то упускаю при инициализации пользовательского интерфейса. Хотя у меня есть книга Дьюсбери о приложении GWT, она не охватывает UiBinder, Учебники и примеры кода, которые я проверял, используют

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

без проблем. Тем не менее, я не понимаю, что я делаю неправильно, создавая и инициализируя этот компонент или пользовательский интерфейс, который делает SuggestBox не работать. Я не знаю, если это займет больше, чем

actorSuggestBox = new SuggestBox(new CustomSuggestOracle());

инициализировать sugestbox или, если есть какая-либо другая важная концепция, которую я упускаю при связывании / инициализации этого компонента.

Компонент объявлен как

@UiField 
@Ignore
SuggestBox actorSuggestBox;

1 ответ

Решение

Вы должны использовать:

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

Вам нужно инициализировать этот виджет перед вызовом связующего (createAndBindUi).

Другие вопросы по тегам