3
我使用GWT一個SuggestBox創建一個不錯的建議列表這樣的文本框的位置:GWT設置SuggestBox
public void onModuleLoad() {
MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
oracle.add("Cat");
oracle.add("Dog");
oracle.add("Horse");
oracle.add("Canary");
SuggestBox box = new SuggestBox(oracle);
RootPanel.get().add(box);
}
}
的事情是,我想建議列表出現在文本框的頂部,而不是它的底部。
有沒有辦法做到這一點?
如果沒有,GWT中的SuggestBox有沒有其他選擇? (我成功地設置了jQuery的autocompletion小部件以顯示在文本框的頂部,但將它與GWT集成似乎既不優雅也不高效......)
謝謝!
+1請注意,計算正確位置所需的大部分代碼已經存在:如果SuggestBox靠近窗口的底部,它會自動顯示在頂部。代碼在'PopupPanel.position()'中。由於這個方法是私有的,所以它不能被重寫,但是你可以重載'PopupPanel.showRelativeTo(最終的UIObject目標)',並且只使用一個稍微改變的'position()'版本。還要重寫'DefaultSuggestionDisplay.createPopup()'以使用彈出窗口。 –
謝謝Chris!,你說得對,代碼已經存在,我只需要修改它。不幸的是,我不能重寫'PopupPanel.showRelativeTo(最終的UIObject目標)',因爲它是最後的方法。我找不到其他合適的選擇,有什麼想法? – Mike
@Mike:我完全忽略了最後的修飾語。在這種情況下,最好重寫'DefaultSuggestionDisplay.showSuggestions()',就像David已經寫過的那樣。您仍然可以重新使用PopupPanel.position()的大部分代碼... –