Codenameone 在不重新加载页面的情况下刷新图像列表
Codenameone refresh list of images without reloading the page
我正在开发一个应用程序,我们需要创建一个动态图片库,在几次 minutes.When 刷新后刷新应该发生三件事而不重新加载页面
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
使用 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()
即可刷新 UI。
我正在开发一个应用程序,我们需要创建一个动态图片库,在几次 minutes.When 刷新后刷新应该发生三件事而不重新加载页面
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
使用 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()
即可刷新 UI。