Проблема с 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
).