在Android开发中,动态添加的视图在调用invalidate()方法后不会立即调用onDraw()方法。invalidate()方法用于告知系统视图已经无效,需要重新绘制。但系统并不会立即重新绘制视图,而是将重新绘制的请求放入绘制队列中,在下一个绘制周期中进行处理。
具体来说,当我们调用invalidate()方法后,系统会将该视图添加到绘制队列中,并等待下一个绘制周期开始时进行处理。绘制周期通常在UI线程中进行,按照一定的规则进行调度。而onDraw()方法则是在绘制周期中被调用的,用于实际绘制视图内容。
因此,在调用invalidate()方法后,并不能立即保证视图会立即重新绘制。如果需要确保视图在调用invalidate()后立即重新绘制,可以使用postInvalidate()方法。postInvalidate()方法与invalidate()方法类似,但可以在非UI线程中调用,用于立即将视图的重新绘制请求发送到UI线程中。
对于解决动态添加视图在invalidate()之后不调用onDraw()的问题,可以考虑以下方法:
总结起来,动态添加的视图在invalidate()之后不会立即调用onDraw()方法,需要等待下一个绘制周期开始时才会进行处理。如果需要立即重新绘制视图,可以使用postInvalidate()方法。
没有搜到相关的文章