2011-05-11 47 views
0

我有一个扩展View的类(我们现在称之为MyWidget),我在onDraw()中做了一些自定义绘图。在大多数情况下,MyWidget都能正常工作,除非在TabView中将MyWidget添加到ListView或ScrollView。在这些配置之一中,我始终认为滚动会偶尔用MyWidget实例之一的内容的部分图像覆盖View的标题区域。使用ListView时活动出现奇怪的标题腐败

我知道这是问题的一个非常混乱的描述所以这里的腐败的截图:

screen corruption

任何想法?

增加:裁剪,我用逻辑:

try { 
     canvas.save(Canvas.ALL_SAVE_FLAG); 
     // do some clipping here 
    } finally { 
     canvas.restore(); 
} 

回答

2

它看起来像你查看的自定义绘制代码是干什么用夹子RECT技巧和你没有正确保存/恢复画布状态。

+0

嗯,我很难找到任何剪辑错误。我添加了基本的裁剪逻辑,可以在我的代码中使用任何位置。有任何想法吗? – Nick 2011-05-15 04:10:27

+0

看起来问题可能是由使用Region.Op.REPLACE导致的 - 我的猜测是ListView使用公共剪辑遮蔽了上部区域,并将其更换为clobbers。无论如何,我能够切换到INTERSECT,事情似乎没有问题。在我确认问题确实消失之后,我会接受您的解决方案。谢谢! – Nick 2011-05-15 16:03:32

+0

就是这样,如果您使用REPLACE,则必须确保您正确地将剪辑放回到执行REPLACE之前的状态。 – 2011-05-15 19:07:12