【问题标题】:How to refresh the form after the form load表单加载后如何刷新表单
【发布时间】:2019-09-25 01:40:17
【问题描述】:

我在当前表单上看到以前表单的图像或空白区域。这是零星的。导航到表单后,我想再次刷新表单。 repaint() 是我可以用来实现这个或任何其他解决方法的唯一方法。请指教。

【问题讨论】:

  • 您尝试过重新验证吗?
  • 是的。我做到了。它没有效果。谢谢
  • 第一次显示表单时,实际上不要重新绘制或重新验证。当两个表单仍然有权在屏幕上绘制时,它可能会与转换发生冲突并触发某些东西。为了解决这个问题,我们需要一个独立的测试用例来重现它。
  • Shai..这仅在 iOS 设备上发生,在 Android 设备上不会遇到。很难隔离这个问题,因为这是零星的。最初这个表单用于在当前表单上显示前一个表单的按钮,当我触摸屏幕时,这些按钮会消失。因此,我在相互导航时为所有表单设置了 setVisible(false)。因此,现在空白空间出现在容器列表的顶部。我可以做些什么来解决这个问题。请指教。
  • 这与我为我的应用程序选择的白色背景有关吗?是不是因为白色的iOS上的Native没有适当的透明度设置。请指教。

标签: codenameone


【解决方案1】:

您是否确保在此块中添加/删除/更改任何 UI 组件?

Display.getInstance().callSerially(() -> {}; 

我通常将 revalidate() 放在这个块的最后。另外,我相信对于包含列表的表单,我在使用 revalidate() 时遇到了一些问题,请改用 animateLayout(250)。

【讨论】:

  • 我正在使用 AppointmentsContainerInfinite 并根据用户操作手动刷新容器我没有在 callSerially 中检查任何内容。用户只需单击侧面菜单或按住并在容器上滑动刷新即可刷新列表。请指教。
  • 你的意思是 InfiniteScrollAdapter 还是 InfiniteContainer?你能显示一些代码吗?就像我说的那样,我相信您应该将 revalidate() 语句放在 callSerially() 块中。
猜你喜欢
  • 2013-09-26
  • 2013-09-21
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多