2011-09-08 64 views
10

在GUI中,當需要一個視圖是重繪。我們通常這樣做如下:爲什麼使用「無效」一詞來請求重繪視圖?

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

我不知道操作「invalidate()」是這樣命名的。在英語中,「無效」意味着使某些東西無效。但是,在GUI編程中「使視圖無效」意味着重新繪製視圖。我不是以英語爲母語的人。請給我提示。韓國社交協會。

+11

問題是,Android API不希望將其稱爲redraw(),因爲這意味着重繪將立即發生(在函數內部)。而通過說invalitade(),你知道一旦Android系統庫得到它,視圖就會重新繪製。調用它無效,而不是重繪是一個更好的命名規則,因爲它是關於什麼功能實際上做更精確。 –

回答

9

到「無效的視圖」是指可能已經被繪製的任何數據不再有效。數據視圖無效,因此invalidate()將其標記爲如此。這是少了那種功能使它無效這麼多,因爲它已經是無效的,但沒有一個人,除了調用者invalidate()知道呢。該功能的目的是告訴代碼的其餘部分視圖數據現在是無效的。

4

的Invalidate是重繪,它通常只標誌着東西稍後重畫,而不是在通話時重繪語義不同。這個想法是,當幾個可能重疊的區域被無效時,在稍後的時間重新繪製的量然後可以由等於非重疊區域僅總和。也就是說,我們可能只爲一些隨後的失效重繪一次。因此存在重繪和失效之間的區別。

相關問題