GWT UiBinder在一个模板中有多个字段



我必须创建一个div,它根据变量的值完全改变形式和大小(但不是内容(。 我想做这样的事情:

<g:FlowPanel styleName="PanelA" ui:field="panelA">
...
<g:HTML styleName="Html1" ui:field="html1"/>
...
<g:HTML styleName="Html2" ui:field="html2"/>
...
</g:Flowpanel>
<g:FlowPanel styleName="PanelA" ui:field="panelB">
...
<g:HTML styleName="Html1" ui:field="html1"/>
...
<g:HTML styleName="Html2" ui:field="html2"/>
...
</g:Flowpanel>

但显然编译器给了我错误:

字段 html1 不能在一个模板中多次出现

有一种方法可以像那样做我想做的事,或者我需要使用 css? 多谢

威利

不能有多个同名的字段。

我会声明所有变量,但只使用正确的变量,如下所示:

@UiField
HTML panelA_html1;
@UiField
HTML panelA_html2;
@UiField
HTML panelB_html1;
@UiField
HTML panelB_html2;
HTML html1;
HTML html2;
...
switch(panelLayout) {
case A:
html1 = panelA_html1;
html2 = panelA_html2;
break;
case B:
html1 = panelB_html1;
html2 = panelB_html2;
break;
}

或者只是将您的布局拆分为一组单独的较小布局,然后使用当时想要的布局。

我找到了这个:

https://makk.es/blog/gwt-uibinder-multiple-templates-one-owner-class/

我认为这就是我一直在寻找的解决方案!

最新更新