2013-07-12 32 views
6

要獲得相對於其父級的視圖,我可以使用getLeft(),getRight(),getTop()getBottom()。但是,如何獲得相對於佈局文件的最頂層父視圖的視圖? 所以說我的前夕佈局是RelativeLayout。然後在內部說,我有一些嵌套的佈局。然後在層次結構的深處,我有一個EditText視圖。如何獲取EditText視圖相對於前夕的位置?在Android中獲取相對於最頂級父視圖的位置

+0

你想用這些信息做什麼?相對於根的位置不會幫助將視圖定位在嵌套的子視圖中,因爲視圖位置總是與其直接父對象有關。 – Bobbake4

回答

8

要找出絕對視圖位置,您可以使用view.getLocationOnScreen()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() 
} 

這些代碼可能會對您有所幫助,因爲我沒有對它進行測試。我希望它能起作用。

相關問題