在自定义View的时候,发现listview.onDraw()中绘制的内容没有显示在最顶层的图层上。一番查找之后,发现问题就出在onDraw方法上。
一般自定义view时,都是选择onDraw方法进行重绘,但是listview本身是继承自viewGroup的,那问题就来了:onDraw()方法是绘制自身,对于有child的viewgroup,是通过dispathDraw()方法来绘制子view的。在listview.onDraw()中绘制,自然不会处于最顶层,会被dispatchDraw()的图层覆盖。
结论:我们在dispatchDraw()中绘制就可以了。
网友评论