【问题标题】:GWT UiBinder multiple field in one templateGWT UiBinder 一个模板中的多个字段
【发布时间】:2018-07-03 13:14:20
【问题描述】:

我必须创建一个基于变量值完全改变形式和大小(但不是内容)的 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? 非常感谢,

威利

【问题讨论】:

    标签: gwt uibinder


    【解决方案1】:

    你不能有多个同名的字段。

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

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

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

    【讨论】:

      【解决方案2】:

      我发现了这个:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-09
        • 2015-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多