2013-04-05 15 views
6

jaka jest różnica między View.getLeft() vs View.getScrollX()? proszę nie kopiować i definicja pasta z dokumentacji, ponieważ mam zamiar zrobić to dla ciebie poniżejAndroid Różnica między View.getLeft() a View.getScrollX()

getScrollX()

Return the scrolled left position of this view. 

getLeft()

Left position of this view relative to its parent 

myślę tych 2 wartości powinny być takie same, ale przykładowy program z kopalni, czy mogę zrobić View.scrollBy (20, 0) widzę, że getScrollX() zwróci 20, a widok jest rzeczywiście przeniósł się na prawo, ale getLeft() pozostaje być zero

jestem zdezorientowany, bo jeśli wizualnie widok jest przewijany w prawo o 20 pikseli, jego lewa pozycja powinna być aktualizowany w miarę dobrze, ale wciąż jest 0

oczywiście nie mogą być takie same, w przeciwnym razie istnieje ma potrzeby, aby mieć 2 różne metody, które zwracają ten sam wynik

pomóż

Odpowiedz

3

getLeft() zwraca położenie ciami w stosunku do jego rodzica. Sposób przewijania nie ma na to żadnego wpływu. Przewijanie wpływa na zawartość widoku, a nie jego położenie.

cytat z android dokumentacji odnośnie getLeft():

For instance, when getLeft() returns 20, that means the view is located 20 pixels to 
the right of the left edge of its direct parent. 

getScrollX(), z drugiej strony, pozwala wiedzieć, w jaki sposób zawartość w widoku została przeniesiona.

View.scrollBy (20,0) wpływa na zawartość w widoku (jak subviews na widoku) i faktycznie nie przesunąć widok w stosunku do rodzica widoku za.