在Android中,当调用invalidate()
方法时,系统会自动调用自定义View的onDraw()
方法进行重绘操作。如果invalidate()
方法没有调用onDraw()
方法,可能有以下几种原因:
CustomView
的代码,确保onDraw()
方法被正确重写,并且没有被其他方法覆盖或者阻塞。CustomView
的构造方法中,调用了setWillNotDraw(false)
方法来允许onDraw()
方法被调用。以下是一个包含代码示例的解决方法:
public class CustomView extends View {
public CustomView(Context context) {
super(context);
setWillNotDraw(false); // 允许onDraw()方法被调用
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 在这里进行绘制操作
}
}
确保在CustomView
的构造方法中调用了setWillNotDraw(false)
方法,以允许onDraw()
方法被调用。如果仍然没有调用onDraw()
方法,请检查其他可能的原因,如是否正确调用了invalidate()
方法。