我对 GWT 的一个常见设计是创建一个包含两个孩子的小部件:A 和 B。
我在与我的主小部件关联的 uibinder 文件中声明了这两个小部件 A 和 B。
我想要做的是根据 if 语句加载或不加载小部件 A。
理想的方法是为小部件 A 设置 provided=true 并在我不想加载此小部件时将小部件 A 设置为 null。但是 GWT 会抛出一个错误。
有没有办法在 uibinder 中声明小部件然后不加载它们?
谢谢
编辑:经过大量讨论,理想的方法是在 optional=true 时声明一个字段“provided=true”和“optional=true”,如果该字段为空,createAndBindUI 不得抛出异常。这是一种干净的方法。
如果您认为 GWT 中必须存在该功能,请对此问题加注星标: http ://code.google.com/p/google-web-toolkit/issues/detail?id=5699
编辑 2:使用 Thomas 描述的 LazyPanel 似乎是处理这个问题的更好方法。