2010-08-19 19 views
28

¿Se llama al onSizeChanged() una vez que el usuario toca una parte de la pantalla?cuando se llama a onSizeChanged()?

Estoy confundido sobre el orden en que se llaman onDraw(), onMeasure() y onSizeChanged().

Respuesta

43

Android no conoce el tamaño real al inicio, necesita calcularlo. Una vez hecho, onSizeChanged() le notificará con el tamaño real.

onSizeChanged() se llama una vez que el tamaño ha sido calculado. Los eventos no tienen que venir de los usuarios todo el tiempo. En este ejemplo, cuando Android cambia el tamaño, se llama a onSizeChanged(). Lo mismo con onDraw(), cuando se debe dibujar la vista se llama onDraw().

onMeasure() se llama automáticamente justo después de llamar a measure()

+1

Gracias por su respuesta. ¿Podría darme un ejemplo de una instancia cuando el tamaño cambia? – iman453

+2

He actualizado la solución. La llamada principal a onSizeChanged() se realiza después de la construcción de su vista, pero antes del dibujo. En este momento el sistema calculará el tamaño de su vista y le notificará al llamar a 'onSizeChanged() ' –

+0

Esto es mucho mejor que la alternativa de ViewTreeObserver. – Dmacpro

Cuestiones relacionadas