2013-07-12 13 views
6

Aby uzyskać widok w stosunku do rodzica, mogę użyć getLeft(), getRight(), getTop() i getBottom(). Ale w jaki sposób uzyskać widok względem najwyższego elementu nadrzędnego pliku układu? Powiedzmy, że mój układ wigilijny to RelativeLayout. Powiedzmy, że w przeddzień mam wiele układów zagnieżdżonych. A następnie głęboko w hierarchii mam widok EditText. Jak uzyskać lokalizację widoku EditText względem wieczora?uzyskać pozycję widoku w odniesieniu do najwyższego rodzica w Androidzie

+0

Co próbujesz zrobić z tymi informacjami? Pozycja względem katalogu głównego nie pomoże w ustawieniu widoku w zagnieżdżonych elementach potomnych, ponieważ pozycja widoków jest zawsze powiązana z bezpośrednim obiektem nadrzędnym. – Bobbake4

Odpowiedz

8

Aby uzyskać informacje o absolutnym położeniu widoku, można użyć view.getLocationOnScreen() lub view.getLocationInWindow().

3
View target = findViewById(R.id.target_id); 
View parent = (View)target.getParent(); 
int x = target.getLeft(); 
int y = target.getTop(); 
while(parent != null){ 
    x += parent.getLeft(); 
    y += parent.getTop(); 
    parent = (View)parent.getParent() 
} 

Ten kod może być pomocny, ponieważ go nie przetestowałem. Mam nadzieję, że to zadziała.

Powiązane problemy