2012-05-04 13 views
22

Szukam jakiejkolwiek wskazówki, aby zrozumieć tę metodę.Android - Zrozumieć View.getLocalVisibleRect (Rect)

Brak informacji na ten temat w official Android's SDK documentation.

Jaki rodzaj prostokąta powraca?

Czy wypełniona jest surową koordynami, podobnie jak w MotionEvent?

Co, jeśli ten widok nie jest widoczny? Czy zwraca zero? Lub jakiś prostokąt z jakimś rodzajem wartości VIEW_INVISIBLE w środku?

Czy każdy, kto ma doświadczenie w pracy z tą metodą, podał mi pomocną dłoń?

+0

I stworzył problem dla dokumentacji. Możesz śledzić to tutaj: https://issuetracker.google.com/issues/73832083 BTW możesz utworzyć wydanie do dokumentacji, jeśli zauważysz, że czegoś brakuje lub jest ono niewłaściwe. Na samej dole strony znajduje się sekcja 'support'. I tam możesz wybrać "Zgłoś błąd dokumentacji". –

Odpowiedz

20

Z 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 wzywa getGlobalVisibleRect a następnie sprawia, że ​​lokalny jak sugeruje:

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

sposób:

  • nie zwraca prostokąta, zwraca wartość boolowską. Ale może ustawić parametry prostokąta, który miniesz, i który musi być prostokątem android.graphics.Rect;
  • Prostokąt r zostanie wypełniony lokalnymi współrzędnymi;
  • Nie jestem pewien, ale myślę, że jest taki sam dla visibile i niewidzialnych poglądów, podczas gdy powinno return false dla widoków z visibility="gone"
+0

Dziękuję bardzo za odpowiedź. Być może jest więcej odpowiedzi na temat tej metody w kodzie źródłowym Androida. – UnknownJoe

+3

Ogólnie czytanie źródła w systemie Android jest jednym z najlepszych pierwszych kroków, aby spróbować dowiedzieć się, co się dzieje. –