Codenameone刷新图像列表而不重新加载页面

时间:2016-11-23 21:29:54

标签: codenameone

我正在开发一个带有要求的应用程序,我们需要创建一个动态图库,几分钟后刷新。刷新时会发生三件事而不重新加载页面

1)应删除过时的图像 2)应添加新图像 3)非过时的图像应该保留(不重新加载) 4)图像应该彼此相邻堆叠,因为它主要用于平板电脑

我正在查看Boxlayout或FlowLayout,我可以添加图像,但我不确定如何动态删除它。我能够为图像组件设置UUID但是无法获取基于UUID的组件来删除它。如何根据添加到表单中的UUID获取组件?  这是正确的方法吗?或者已经有内置的组件。

我看到了这个     How to add dynamic data in the renderer created using UI builder?

But I also read using List is discouraged 

https://www.codenameone.com/javadoc/com/codename1/ui/list/package-summary.html

1 个答案:

答案 0 :(得分:1)

使用BoxLayout.Y_AXIS Container实际上非常简单。当您创建要添加到框布局的图像组件时,请执行以下操作:

myImageComponent.putClientProperty("imageId", imageId);

然后当你有回调刷新列表时,只需执行以下操作:

for(Component cmp : parentContainer) {
    String id = (String)myImageComponent.getClientProperty("imageId");
    if(!existsInNewList(id)) {
       cmp.remove();
    }
}

完成更新容器后,只需致电animateLayout(200)revalidate()即可刷新用户界面。