在GUI中,需要重绘视图时。我们通常按如下方式执行此操作:
View v = View ();
v.invalidate()
我不知道“invalidate()”操作是这样命名的。在英语中,“无效”意味着使某些内容无效。但GUI编程中的“使视图无效”意味着要重新绘制视图。我不是母语为英语的人。请给我提示。 TKS。
答案 0 :(得分:12)
“使视图无效”意味着可能已经绘制的任何数据不再有效。数据视图无效,因此invalidate()
将其标记为此类。它不是因为它已经无效而使该函数无效,但除了invalidate()
的调用者之外没有人知道它。该函数的目的是告诉代码的其余部分,视图数据现在无效。
答案 1 :(得分:5)
Invalidate在语义上与重绘不同,因为它通常只标记稍后要重绘的内容,而不是在调用时重绘。该想法是当几个可能重叠的区域无效时,可以使稍后重绘的量等于仅非重叠区域的总和。也就是说,我们可能只对一些后续的失效重绘一次。因此,存在重绘和无效之间的区别。