2015-10-07 6 views
5

Wiemy, że ViewTreeObserver służy do rejestracji słuchaczy, którzy mogą otrzymywać powiadomienia o zmianach globalnych w drzewie widoku. Istnieją dwie metody zdefiniowane w tej klasie: addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener słuchacza) i addOnPreDrawListener(ViewTreeObserver.OnPreDrawListener listener). Ale cel tych metod nie jest dla mnie zrozumiały, co opisałem na stronie programisty. Próbowałem to zrozumieć, a także wyszukiwać w Google, ale nie udało mi się znaleźć jasnego obrazu na ten temat. Każda pomoc jest dla mnie bardzo garstka.Różnica między addonGlobalLayoutListener i addOnPreDrawListener

Odpowiedz

4
OnPreDrawListener 

Zostaje wywołana metoda wywoływana tuż przed wywołaniem metody onDraw(). W tym momencie wszystkie widoki w drzewie zostały zmierzone i otrzymały ramkę. Można zatem pogląd prawidłowo manipulować w ten zwrotnego

OnGlobalLayoutListener 

Ten słuchacz dostaje nazwie: - Podczas zmiany stanu widoczności. W przykładzie, gdy widok został narysowany, staje się widoczny i zostaje wywołany. - po dodaniu widoku zmiany drzewa widoku