SuggestBox
を構築する場合、あなたがSuggestOracle
、TextBox
とSuggestionDisplay
自分自身を提供することができますを呼び出しません。 DefaultSuggestionDisplay
は、提案リストを非表示にするために使用できます。あなたはWindow.scrollHandler
でそれを行うことができます。 非推奨hideSuggestionList法上のドキュメントを参照してください - あなたはDefaultSuggestionDisplay
を使用する必要があること、
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();
}
});
注:ここでは
はコードです。
この例ですべて説明していただければ幸いです。
私は、あなた自身がSuggestionDisplay
を使用していないと、とにかくDefaultSuggestionDisplay
を使用していることを確認しました。だからあなたはそれをもっと簡単にすることができます。
((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions();
EDIT:ウィンドウ全体がスクロールが、いくつかのパネルのコンテンツのみされていない場合は
、あなたがパネルにScrollHandler
を追加することができます。
panel.addDomHandler(new ScrollHandler() {
@Override
public void onScroll(ScrollEvent event) {
((DefaultSuggestionDisplay) suggestBox.getSuggestionDisplay()).hideSuggestions();
}
}, ScrollEvent.getType());
で追加を参照してください –
@DmitriyAltsyvanovich - コンテナに 'ScrollHandler'を追加しようとしました。私の編集を見てください。 – Adam
はい、ありがとうございます。私はスクロールで正しいdivを見つけてハンドラを追加しました - それはすべての私のトラブルを修正します) –