を構築するときSuggestBox
に、独自のSuggestOracle
、TextBox
およびを提供できますSuggestionDisplay
。DefaultSuggestionDisplay
提案リストを非表示にするために使用できます。でできますWindow.scrollHandler
。
コードは次のとおりです。
MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
oracle.add("one");
oracle.add("two");
oracle.add("three");
TextBox box = new TextBox();
final DefaultSuggestionDisplay display = new DefaultSuggestionDisplay();
SuggestBox suggestBox = new SuggestBox(oracle, box, display);
Window.addWindowScrollHandler(new ScrollHandler() {
@Override
public void onWindowScroll(ScrollEvent event) {
display.hideSuggestions();
}
});
使用する必要があることに注意してください-非推奨の hideSuggestionListメソッドDefaultSuggestionDisplay
に関するドキュメントを参照してください。
この例ですべてが説明されることを願っています。
また、ownSuggestionDisplay
を使用しない場合はDefaultSuggestionDisplay
とにかく使用することも確認しました。そのため、さらに簡単に行うことができます。
((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions();
編集:
ウィンドウ全体がスクロールされるのではなく、一部のパネルのコンテンツのみがスクロールされる場合は、パネルに を追加できますScrollHandler
。
panel.addDomHandler(new ScrollHandler() {
@Override
public void onScroll(ScrollEvent event) {
((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions();
}
}, ScrollEvent.getType());