无效()未导致呼叫onDraw()



当我迅速调用 invalidate()(例如对触摸事件的响应)时,onDraw()停止被调用。这是一些复制问题的简单代码:

public class TestView extends View {
public TestView(Context context) {
    super(context);
}
public TestView(Context context, AttributeSet as) {
    super(context, as);
}

public void onDraw(Canvas c) {
    Log.d("tag", "drawing");
}
public boolean onTouchEvent(MotionEvent event) {
    Log.d("tag", "touchevent");
    invalidate();
    return true;
}
}

单击并拖动时,最初您会在日志中获得" TouchEvent"one_answers"绘图"交替。在屏幕上快速移动一段时间后,"绘图"消失了,并且函数onDraw再也不会被调用。

我在针对Android 4.4.2

的Android仿真器中运行它

似乎这是模拟器的错误,我尝试了与Genymotion模拟器完全相同的代码,并且一切正常。尚未弄清楚如何在常规仿真器中修复它,除非每50毫秒左右一次调用invalidate()一次。

相关内容

  • 没有找到相关文章

最新更新