我的这个组件带有@UiConstrutor
注释:
@UiConstructor
public SearchWidget(Widget filterWidget, Widget resultWidget) {
...
}
在ui.xml中,我必须写一些类似的东西:
<SearchWidget filterWidget="" resultWidget=""/>
问题是我希望能够在ui.xml中构建一个复杂的小部件,并在<SearchWidget>
标签中使用,例如:
<with field="filterWidget">
<Widget>
...
</Widget>
</with>
<With field="resultWidget">
<Widget>
...
</Widget>
</with>
然后使用它:
<SearchWidget filterWidget="{filterWidget}" resultWidget="{resultWidget}"/>
他们现在是否接近语法?
答案 0 :(得分:2)
您可以尝试使用@UiChild
注释(如果可以通过相应的方法替换构造函数依赖项)。请参阅corresponding javadoc示例。
两种新方法:
@UiChild SearchWidget#addFilterWidget(Widget w)
@UiChild SearchWidget#addResultWidget(Widget w)
UiBinder(您需要为自定义小部件声明新的p
命名空间):
<p:SearchWidget>
<p:filterWidget><p:Widget>...</p:Widget></p:filterWidget>
<p:resultWidget><p:Widget>...</p:Widget></p:resultWidget>
</p:SearchWidget>