2010-08-19 38 views
28

Wird onSizeChanged() aufgerufen, sobald der Benutzer einen Teil des Bildschirms berührt?Wann wird onSizeChanged() aufgerufen?

Ich bin verwirrt über die Reihenfolge, in der onDraw(), onMeasure() und onSizeChanged() aufgerufen werden.

Antwort

43

Android kennt die tatsächliche Größe beim Start nicht, es muss es berechnen. Sobald es fertig ist, benachrichtigt onSizeChanged() Sie mit der tatsächlichen Größe.

onSizeChanged() wird aufgerufen, sobald die Größe berechnet worden ist. Ereignisse müssen nicht immer von Benutzern kommen. In diesem Beispiel, wenn Android die Größe ändert, wird onSizeChanged() aufgerufen. Selbe Sache mit onDraw(), wenn die Ansicht gezeichnet werden soll onDraw() heißt.

onMeasure() wird automatisch direkt nach dem Aufruf measure()

+1

Vielen Dank für Ihre Antwort genannt. Könnten Sie mir ein Beispiel für eine Instanz geben, wenn sich die Größe ändert? – iman453

+2

Ich aktualisierte die Lösung. Der Hauptaufruf von onSizeChanged() erfolgt nach der Konstruktion Ihrer Ansicht, aber vor der Zeichnung. Zu diesem Zeitpunkt berechnet das System die Größe Ihrer Ansicht und benachrichtigt Sie durch Aufruf von 'onSizeChanged() ' –

+0

Dies ist viel besser als die Alternative ViewTreeObserver. – Dmacpro

Verwandte Themen