答案 0 :(得分:1)
不可能(正常意义上)。如果您有多个视图,则在一个视图上调用invalidate()
将重绘所有这些视图。在视图上调用invalidate()
时,它会重绘dirty region
中的所有内容。这由dispathDraw()
中的ViewGroup
方法处理。 dispatchDraw()
调用drawChild()
,这就是为什么当我们在一个视图上调用invalidate()
时,其他视图也会被绘制出来。
话虽如此,您可以覆盖自己的自定义dispatchDraw()
中的ViewGroup
方法,并处理事情的行为。
答案 1 :(得分:0)
另外:我刚刚发现,如果您为View提供不透明的背景,则使其无效会使底层视图无效。它不是一个完美的解决方案,但它是一个非常好的解决方案。
现在我需要看看是否可以制作非矩形的视图。