重叠的Toastbar消息

时间:2018-09-23 21:40:25

标签: codenameone

我正在使用ToastBar消息,超时为6秒。如果我在6秒钟内单击另一个按钮,该按钮将显示另一条Toastbar消息,则在某些情况下,第二个按钮将与第一个按钮重叠。如果在发生超时之前单击按钮,如何布置第一条消息并显示第二条消息而不会重叠。请告知。

ToastBar.showErrorMessage(“测试消息”,6000);

谢谢

2 个答案:

答案 0 :(得分:0)

请确保您始终从EDT而不是从单独的线程(例如EDT)调用此方法。网络线程。使用模拟器中的edt错误检测工具尝试跟踪此类问题。

答案 1 :(得分:0)

我也有同样的问题。首先,我尝试确保我不会使用相同的对象引用调用每条消息,而且还使用局部变量实例来允许垃圾收集器 (GC) 处理它们,因为在任务完成后实例会被丢弃。

但是,这可能需要一些时间,并且消息仍会出现重叠,甚至更糟的是,它会在没有触发器的情况下自行重复,但现在不太可能(很少),因为 GC 会收集对象。

如果可能,手动调用 GC 可能很诱人,但您需要评估性能影响。

我还没有尝试过我将要建议的方法,但请告诉我您的想法。 这样一来,ToastBar 消息在触发时会出现在另一个顶部。也许 List<ToastBar> 对象或其他类似对象可能有用。这可以描述为 ToastBar“缓冲区”。

另一种方法是 clear() 消息,但如果消息太长,则用户将没有必要的时间阅读反馈。

我的 TODO 列表中有这个,但会在我取得其他进展时跟进。