查看未更新屏幕

时间:2012-03-25 23:29:39

标签: android view android-canvas

我有一个视图,我绘制了许多可能在运行时更改的行。这是我的onDraw函数:

@Override
protected void onDraw(Canvas canvas) {

    mainShape.draw(canvas);
    //canvas.drawLine(0,0, 100, 100, mStrokePaint);
    for (Rect dr : mLines) {
        canvas.drawLine(dr.left, dr.top, dr.right, dr.bottom, mStrokePaint);
    }
}

然而,当我更改行数时,它不会反映在屏幕上。通过调试我检查它确实改变了mLines中的Rect元素的数量,并且它实际上在for循环中进行了正确的迭代次数。

但不知何故,屏幕显示了初始行数(3)。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

尝试在onDraw结束时调用invalidate()。这会强制视图自行更新