2015-10-07 29 views
5

ViewTreeObserver'un, görüntüleme ağacındaki global değişikliklerden haberdar edilebilecek dinleyicileri kaydetmek için kullanıldığını biliyoruz. Bu sınıfta tanımlanan iki yöntem vardır: addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener dinleyici) ve addOnPreDrawListener(ViewTreeObserver.OnPreDrawListener listener). Ancak, bu yöntemlerin amacı, geliştirici sitesinde açıklanan, benim için açık bir şekilde anlaşılabilir değildir. Bunu anlamaya çalıştım ve ayrıca Google'da arama yaptım, ancak bu konuyla ilgili net bir resim bulamadı. Herhangi bir yardım benim için büyük bir avuç.arasındaki fark

cevap

4
OnPreDrawListener 

OnDraw() yöntemi çağrılmadan hemen önce çağrılır. Bu noktada, ağacın tüm görünümleri ölçülmüş ve bir çerçeve verilmiştir. Bu nedenle düzgün

OnGlobalLayoutListener 

Bu dinleyici çağrılan bu geri aramasında görünümünüzü değiştirebilirsiniz: - zaman görünürlük durum değişiklikleri. Örneğin, görünüm çizildiğinde görünür hale gelir ve bu çağrılır. - addView görünüm ağacı değişiklikleri için