为什么要使用“invalidate”这个词来请求重绘视图?

时间:2011-09-08 02:57:20

标签: android user-interface

在GUI中,需要重绘视图时。我们通常按如下方式执行此操作:

View v = View (); 
v.invalidate() 

我不知道“invalidate()”操作是这样命名的。在英语中,“无效”意味着使某些内容无效。但GUI编程中的“使视图无效”意味着要重新绘制视图。我不是母语为英语的人。请给我提示。 TKS。

2 个答案:

答案 0 :(得分:12)

“使视图无效”意味着可能已经绘制的任何数据不再有效。数据视图无效,因此invalidate()将其标记为此类。它不是因为它已经无效而使该函数无效,但除了invalidate()的调用者之外没有人知道它。该函数的目的是告诉代码的其余部分,视图数据现在无效。

答案 1 :(得分:5)

Invalidate在语义上与重绘不同,因为它通常只标记稍后要重绘的内容,而不是在调用时重绘。该想法是当几个可能重叠的区域无效时,可以使稍后重绘的量等于仅非重叠区域的总和。也就是说,我们可能只对一些后续的失效重绘一次。因此,存在重绘和无效之间的区别。