Android: necesita devolver la llamada cuando se muestra la vista

¿Hay un método equivalente a Dialog.setOnShowListener () para la clase View en android?

Lo necesito porque cuando llamo getLocationOnScreen en una vista (diga foo) en la línea inmediatamente después de someViewGroup.addView (foo), obtengo la ubicación = (0,0).

No puedo utilizar ningún método de ciclo de vida de la actividad, porque la adición de foo está en ejecución (presionar un botón). Cualquier ayuda sería muy apreciada. Gracias por adelantado.

Debe utilizar un ViewTreeObserver:

someViewGroup.addView(foo) ViewTreeObserver vto = someViewGroup.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ///getLocationOnScreen here ViewTreeObserver obs = someViewGroup.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); } }); 
  • Zoom centrado en la vista personalizada - calculando las coordenadas de lienzo
  • Android: dibujar ImageView exactamente sobre la vista existente en una capa más profunda
  • Disposición de Android Los parámetros cambian SÓLO el ancho y la altura
  • Android slide down animación
  • Java.lang.InstantiationException: no se puede instanciar class: no hay constructor vacío
  • Ver redibujado en la posición equivocada después de cerrar el teclado - Cordova / PhoneGap - Android
  • Cómo manejar los cambios de visibilidad para una vista / widget personalizado de Android
  • ¿Cuál es el propósito principal de los métodos setTag () getTag () de View?
  • Bitmap de TextView (getDrawingCache) siempre nulo
  • GetLocationOnScreen () devuelve valores inesperados
  • Visibilidad de un botón en el temporizador
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.