vistas vista studio sirve que propiedades para libreria layouts example clase addview android layout view measure

android - vista - addOnLayoutChangeListener vs addOnGlobalLayoutListener vs post(Runnable r)



viewgroup android example (1)

¿Cuál es el mejor enfoque para saber que se mide la vista?

El mejor enfoque? OnGlobalLayoutListener con View.getMeasuredHeight() o View.getMeasuredWidth()

¿y por qué?

Debido a que tu madre te conoce mejor de lo que te conoces a ti mismo, entonces es mejor consultar ViewGroup sobre su estado, que automáticamente dice mucho sobre los niños.

View.post() enqueues proceso en la cola de la interfaz de usuario. Ui queue = {1,2}, más tarde después de llamar a esa línea = {1,2, ejecutable}. así que definitivamente correrá después de 1,2

PROBLEMA : Supongamos que tenemos un caso simple: tenemos vista y tenemos que mostrar algunos datos en esta vista. Usamos el método estático showData (View view) para hacer esto. Quiero saber el momento exacto en que se mide el diseño de la vista y puedo acceder a getWidth () getHeight () y asegurarme de que este es el ancho y el alto finales de mi vista.

LO QUE SÉ : (no estoy seguro de estar 100% en lo cierto):

Sé 3 enfoques diferentes para hacer esto

  • view.addOnLayoutChangeListener : sabemos que cuando se cambia el diseño, podemos obtener la altura y el ancho
  • view.getViewTreeObserver (). addOnGlobalLayoutListener - para mi caso, casi lo mismo, pero obtenemos información más adelante. Porque layoutChange bubbles de los niños a la raíz, y globalLayout desde la raíz a los niños (¿verdad?).
  • view.post (Runnable r) - está funcionando, pero no sé por qué el ejecutable se publica en el hilo ui se ejecuta después de medir la vista.

PREGUNTA : ¿Cuál es el mejor enfoque para saber que se mide la visión? ¿y por qué?