GWT で SuggestBox を作成しようとしましたが、これまでのところすべて正常に機能しました。しかし、提案ボックスのポップアップを入力フィールドと同じサイズにしたいのですが、これを行う方法が見つかりませんでした。
ヒントをいただければ幸いです。
挨拶ケビン
GWT で SuggestBox を作成しようとしましたが、これまでのところすべて正常に機能しました。しかし、提案ボックスのポップアップを入力フィールドと同じサイズにしたいのですが、これを行う方法が見つかりませんでした。
ヒントをいただければ幸いです。
挨拶ケビン
カスタム クラスの拡張DefaultSuggestonDisplay
およびオーバーライドshowSuggestions
メソッドを作成する
import java.util.Collection;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.SuggestBox;
import com.google.gwt.user.client.ui.SuggestBox.DefaultSuggestionDisplay;
import com.google.gwt.user.client.ui.SuggestBox.SuggestionCallback;
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
public class CustomSuggestionDisplay extends DefaultSuggestionDisplay
{
@Override
protected void showSuggestions( SuggestBox suggestBox, Collection< ? extends Suggestion> suggestions, boolean isDisplayStringHTML, boolean isAutoSelectEnabled, SuggestionCallback callback )
{
super.showSuggestions( suggestBox, suggestions, isDisplayStringHTML, isAutoSelectEnabled, callback );
getPopupPanel().setWidth( ( suggestBox.getElement().getAbsoluteRight() - suggestBox.getAbsoluteLeft() ) + Unit.PX.getType() );
}
}
次の提案ボックスコンストラクターを使用してください
SuggestBox suggestBox = new SuggestBox( new MultiWordSuggestOracle(), new TextBox(), new CustomSuggestionDisplay() );
SuggestBox の幅が 200px に固定されている場合、次のスタイルを適用できます。
.gwt-SuggestBoxPopup .item{ width: 198px;}