Android 视图不更新屏幕
我有一个视图,在那里我画了许多可能在运行时改变的线。这是我的onDraw函数:Android 视图不更新屏幕,android,view,android-canvas,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,
@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);
}
}
然而,当我改变行数时,它不会反映在屏幕上。通过调试,我检查了它是否确实改变了MLINE中Rect元素的数量,并且它实际上在for循环中进行了正确的迭代次数
但不知何故,屏幕显示了初始行数(3)。我遗漏了什么吗?尝试在您的onDraw末尾调用invalidate()。这将迫使视图更新自身我意识到这是一个老问题,但是您永远不应该从onDraw()中调用invalidate()。实际上,您得到的是一个无限循环的重画相同的视图。