我正在使用ToastBar消息,超时为6秒。如果我在6秒钟内单击另一个按钮,该按钮将显示另一条Toastbar消息,则在某些情况下,第二个按钮将与第一个按钮重叠。如果在发生超时之前单击按钮,如何布置第一条消息并显示第二条消息而不会重叠。请告知。
ToastBar.showErrorMessage(“测试消息”,6000);
谢谢
答案 0 :(得分:0)
请确保您始终从EDT而不是从单独的线程(例如EDT)调用此方法。网络线程。使用模拟器中的edt错误检测工具尝试跟踪此类问题。
答案 1 :(得分:0)
我也有同样的问题。首先,我尝试确保我不会使用相同的对象引用调用每条消息,而且还使用局部变量实例来允许垃圾收集器 (GC) 处理它们,因为在任务完成后实例会被丢弃。
但是,这可能需要一些时间,并且消息仍会出现重叠,甚至更糟的是,它会在没有触发器的情况下自行重复,但现在不太可能(很少),因为 GC 会收集对象。
如果可能,手动调用 GC 可能很诱人,但您需要评估性能影响。
我还没有尝试过我将要建议的方法,但请告诉我您的想法。
这样一来,ToastBar
消息在触发时会出现在另一个顶部。也许 List<ToastBar>
对象或其他类似对象可能有用。这可以描述为 ToastBar
“缓冲区”。
另一种方法是 clear()
消息,但如果消息太长,则用户将没有必要的时间阅读反馈。
我的 TODO 列表中有这个,但会在我取得其他进展时跟进。