2012-05-04 17 views
22

Estoy buscando alguna pista para comprender este método.Android - Comprender View.getLocalVisibleRect (Rect)

No hay información acerca de este producto en official Android's SDK documentation.

¿Qué tipo de rectángulo devuelve?

¿Se rellena con coorinates crudos como en MotionEvent?

¿Qué pasa si esta vista no está visible? ¿Devuelve null? ¿O algún rectángulo con algún tipo de VIEW_INVISIBLE valores adentro?

¿Alguien que tenga experiencia en trabajar con este método me puede ayudar?

+0

I creado un problema para la documentación. Puede realizar un seguimiento aquí https://issuetracker.google.com/issues/73832083 Por cierto, puede crear problemas para la documentación si ve algo que falta o es inapropiado. Hay una sección de 'soporte' en la parte inferior de la página. Y allí puedes elegir 'Informar error de documentación'. –

Respuesta

20

Desde el JavaDoc of getGlobalVisibleRect:

/** 
* If some part of this view is not clipped by any of its parents, then 
* return that area in r in global (root) coordinates. To convert r to local 
* coordinates (without taking possible View rotations into account), offset 
* it by -globalOffset (e.g. r.offset(-globalOffset.x, -globalOffset.y)). 
* If the view is completely clipped or translated out, return false. 
* 
* @param r If true is returned, r holds the global coordinates of the 
* visible portion of this view. 
* @param globalOffset If true is returned, globalOffset holds the dx,dy 
* between this view and its root. globalOffet may be null. 
* @return true if r is non-empty (i.e. part of the view is visible at the 
* root level. 
*/ 

getLocalVisibleRect llama getGlobalVisibleRect industriales, y lo local, como se sugiere:

r.offset(-offset.x, -offset.y); // make r local` 

Así:

  • No devuelve un rectángulo, devuelve un booleano. Pero puede establecer los parámetros de un rectángulo que pase, y debe ser un rectángulo android.graphics.Rect;
  • El rectángulo r se rellenará con coordenadas locales;
  • no estoy seguro, pero creo que es el mismo para visibile y vistas invisibles, mientras que debe devolver false para los puntos de vista con visibility="gone"
+0

Muchas gracias por su respuesta. Tal vez, hay más respuestas sobre este método en el código fuente de Android. – UnknownJoe

+3

Generalmente, leer la fuente en Android es uno de los mejores primeros pasos para tratar de descubrir qué está pasando. –