一个模板中的GWT UiBinder多字段

时间:2018-07-03 13:14:20

标签: gwt uibinder

我必须创建一个div,该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? 非常感谢

Willy

2 个答案:

答案 0 :(得分:0)

您不能有多个具有相同名称的字段。

我将声明所有变量,但仅使用适当的变量,如下所示:

@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;
}

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

答案 1 :(得分:0)

我发现了:

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

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