我有一个视图,我绘制了许多可能在运行时更改的行。这是我的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)。我错过了什么吗?
答案 0 :(得分:2)
尝试在onDraw结束时调用invalidate()。这会强制视图自行更新