1

为了减少一些重复的代码/类,我尝试只为 1 个所有者类使用多个 XML 模板。官方 GWT 指南已经指出了如何做到这一点。

   public class FooPickerDisplay extends Composite{
     @UiTemplate("RedFooPicker.ui.xml")
     interface RedBinder extends UiBinder<Widget, FooPickerDisplay> {}
     private static RedBinder redBinder = GWT.create(RedBinder.class);

     @UiTemplate("BlueFooPicker.ui.xml")
     interface BlueBinder extends UiBinder<Widget, FooPickerDisplay> {}
     private static BlueBinder blueBinder = GWT.create(BlueBinder.class);

     @UiField Button button1;
   }

'@UiField' 会导致编译错误,它说“字段 button1 在模板文件 BlueFooPicker.ui.xml 中没有对应的字段”

我的 RedFooPicker.ui.xml 和 BlueFooPicker.ui.xml 的内容完全不同,所以 RedFooPicker.ui.xml 中有 UiField="button1" 但 BlueFooPicker.ui.xml 中没有 button1。

所以我的问题是,如果有什么方法可以为同一个所有者类使用具有完全不同内容的多个 XML 模板而不会导致这种错误?

4

1 回答 1

3

不,每个人都UiBinder必须对不同的所有者类别采取行动。但是,您可以轻松地为其中一个创建内部类UiBinder。文档中的示例是关于使用其中一种,而不是同时使用两种。

顺便说一句,为了减少重复,您最好尝试将事物抽象为可重用的小部件。

于 2012-10-03T22:58:45.410 回答