我正在开发一个带有要求的应用程序,我们需要创建一个动态图库,几分钟后刷新。刷新时会发生三件事而不重新加载页面
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
答案 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()
即可刷新用户界面。