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