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
6
A
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.
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