2011-09-08 12 views
10

GUI'de, bir görünümün yeniden çizilmesi gerektiğinde. Genellikle şöyle yaparız:Görünümün yeniden çizilmesini istemek için neden "geçersiz" kelimesini kullanıyorsunuz?

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

Ben operasyon adlı şekildedir "() geçersiz hale getirmektedir" hiçbir fikrim yok. İngilizce'de, "geçersiz kılma", geçerli olmayan bir şey yapmak anlamına gelir. Ancak GUI programlamasında "bir görünümü geçersiz kıl" görünümü, görünümün yeniden çizilmesini sağlamak içindir. Ben ana dili İngilizce konuşanı değilim. Lütfen bana ipuçları ver. Tks. "Bir görünüm geçersiz" Kime

+11

nokta, (işlevin kendisi içinde) yeniden çizme hemen olacağını ima çünkü Android API() o yeniden çizme aramak istediğiniz olmamasıdır. Invalitade() diyerek, Android sistem kütüphaneleri buralara yaklaştıkça görünümün yeniden çizileceğini biliyorsunuzdur. Yeniden çizme yerine onu geçersiz kılma çağrısı, daha iyi bir adlandırma kuralıdır çünkü işlevin gerçekte ne yaptığıyla ilgili olarak daha hassastır. –

cevap

9

zaten çizilmiş olabilecek verileri artık geçerli olduğu anlamına gelir. Verilerin görünümü geçersiz olduğundan, bu şekilde işaretlemek için invalidate(). İşlev geçersiz olduğundan çok daha az geçersizdir, ancak arayan kişi invalidate() henüz bilmiyor. İşlevin amacı, kodun geri kalanını görüntü verilerinin geçersiz olduğunu belirtmektir.

4

Invalidate'yi genellikle sadece bir şey işaretler çağrı anda yeniden çizilmesi aksine, daha sonra yeniden çizilmesi için ki yeniden çizilmesi gelen anlam farklıdır. Buradaki fikir, muhtemelen birbiriyle çakışan birkaç alanın geçersiz kalması durumunda, daha sonra yeniden çizilme miktarının, sadece örtüşmeyen alanların toplamına eşit hale getirilebilmesidir. Yani, birkaç müteakip geçersiz kılma için sadece bir kez yeniden çizebiliriz. Bu nedenle, yeniden çizme ve geçersizleştirme arasındaki fark vardır.

İlgili konular