无效()不召回的OnDraw方法(invalidate() doesn't recall O

2019-09-20 10:57发布

invalidate()不记得我OnDraw()方法。 我用invalidate()中的setter方法在相同的类中OnDraw()是英寸

public class PuzzleDraw extends View {

    // defining some variables //

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // codes for painting puzzle //
    }

    public PuzzleDraw(Context context) {
        super(context);
    }

    // Method for giving cursor X/Y from MainActivity OnTouch() method and using it in OnDraw() method in some part of painting code //

    public void setCursor(int i, int j) {
        this.xx = i;
        this.yy = j;
        invalidate();
    } 

当我调试我的代码,一切都很好,除了忆及OnDraw()invalidate()执行......其实, invalidate()做什么我! 怎么了? 我用postInvalidate() this.invalidate() this.postInvalidate()过,但什么都没有改变。

Answer 1:

打电话来invalidate()不会执行onDraw直接,它只设置相应的标志在View类。 你onDraw方法将被框架下一次当视图层次遍历被调用。



Answer 2:

你可能会调用的setCursor(浮动,浮动)方法只有一个时间从活动调用它,但无效的方法,如果您想通过框架本身内部调用的onDraw方法,一次又一次地叫。

希望这会工作



文章来源: invalidate() doesn't recall OnDraw method