【问题标题】:How to dynamically change the image specified in UI markup?如何动态更改 UI 标记中指定的图像?
【发布时间】:2023-06-16 02:53:01
【问题描述】:

对于 UI 标记,我使用 UIBinder。在特定区域,我想放置标志,然后动态改变它:

<ui:UiBinder 
    xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui' >
<ui:with 
    field='res' 
    type='com.myproject.client.resources.Resources' />

<g:Image resource='{res.offline}'/>

客户端包:

public interface Resources extends ClientBundle {    
    @Source("offline.png")  
    public ImageResource offline();

    @Source("online.png")  
    public ImageResource online();

    // ... and so on 
}  

当用户开始会话时,他的徽标会发生变化。

如何更改在 UI 标记中声明的图像?

【问题讨论】:

    标签: uibinder gwt2


    【解决方案1】:

    解决方法可能如下。

    在标记中添加UI:field 属性:

    &lt;g:Image url='{res.user1.getURL}' ui:field="imageUser1" /&gt;

    然后,通过这种方式更改属性值:

    @UiField Image imageUser1;
    imageUser1.setVisible(true/ false);
    

    也可以动态改变图片的URL-

    user1.setUrl(offlineImg.getUrl());
    

    另见:

    【讨论】: