微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

onDraw 中的 invalidate() 没有调用 onDraw

如何解决onDraw 中的 invalidate() 没有调用 onDraw

我在 onDraw 中使用 invalidate()获取加载视图,但它没有启动 onDraw 调用

public void onDraw(Component component,Canvas canvas) {
<function body>
invalidate()
}

解决方法

  1. 确保您在实现中调用 addDrawTask 方法
  2. 即使在调用 addDrawTask 方法之后,如果没有在 UI 线程上调用 invalidate(),那么 onDraw() 可能不会在 UI 线程上被调用。 因此,我们可以通过实现以下语句来确保在 UI 线程上调用它:
 context.getUITaskDispatcher().asyncDispatch(this::invalidate);

当我试图连续调用 onDraw() 方法来显示动画时,这对我个人有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。