Sobes.tech
Junior — Middle

Κατά την κλήση της μεθόδου requestLayout(), είναι υποχρεωτικό να καλείται η μέθοδος onDraw();

sobes.tech AI

Απάντηση από AI

Η κλήση της μεθόδου requestLayout() δεν εγγυάται μια άμεση κλήση της onDraw().

Η requestLayout() ξεκινά τον επαναυπολογισμό της θέσης και των διαστάσεων της View, που οδηγεί σε κλήσεις στις onMeasure() και onLayout(). Μετά την επιτυχή ολοκλήρωση αυτών των σταδίων, το σύστημα αποφασίζει αν χρειάζεται να ξαναζωγραφίσει η View, και αν ναι, καλεί την onDraw().

Επομένως, η onDraw() δεν καλείται απαραίτητα αμέσως μετά την requestLayout(), αλλά μόνο αν οι αλλαγές απαιτούν ξαναζωγράφισμα.

Αν θέλετε να αναγκάσετε ξαναζωγράφισμα χωρίς να αλλάξετε το μέγεθος ή τη θέση, χρησιμοποιήστε την invalidate(), που οδηγεί άμεσα σε κλήση της onDraw().