2

我正在尝试将 typeahead 小部件连接到 NavSearch。我想要做:

<b:Typeahead ui:field="typeahead">
  <b:NavSearch ui:field="navSearch"></b:NavSearch>
</b:Typeahead>

然后调用typeahead.setWidget(navsearch.getTextBox()),但它会引发错误“Typeahead 应设置为 TextBoxBase childs”。我知道这是在我调用ui_binder.createAndBindUi(this).

我已经能够通过切换导航搜索来解决这个问题,TextBox然后我会适当地设置它,但我希望有一个更优雅的解决方案。

4

1 回答 1

1

Typeahead 的 setWidget 专门检查 TextBoxBase 类型的小部件,所以我想别无选择!悲伤但现实!

    public void setWidget(Widget w) {

    if (!(w instanceof TextBoxBase || w instanceof com.google.gwt.user.client.ui.TextBoxBase)) {
        throw new IllegalArgumentException("Typeahead should be set TextBoxBase childs");
    }

    super.setWidget(w);
}
于 2013-11-02T14:13:37.530 回答