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

alw*_*e68 13 user-interface android

在GUI中,需要重绘视图时.我们通常这样做如下:

View v = View (); 
v.invalidate() 
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ley 12

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


dra*_*oot 5

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