2013-01-12 77 views
15

在當前設置爲我的活動的XML中,是否有一種動態方式來獲取根佈局(即所有其他佈局的父級佈局)?在活動中查找根佈局

我後是不是給我的根佈局的明確標識,並通過findViewById找到它,我希望能相處的

僞代碼線的東西:

this.findTopLayout(); 

已經叫setContentView(R.layout.foo);

我沒有看到規範中的任何東西會做的伎倆,我只是想念它,還是沒有辦法做到這一點?

+1

這是你在找什麼? http://stackoverflow.com/questions/4486034/get-root-view-from-current-activity – DeeV

+0

它會出現這正是我正在尋找...你應該張貼它作爲一個答案,我會給你一個綠色的選中標記(並且非常感謝) –

回答

48

您嘗試了這種方式來獲取根佈局:。

getWindow()getDecorView()findViewById(android.R.id.content); 。

OR

getWindow()getDecorView()getRootView();

+0

能做到這一點! –

2

注意,除了由Grishu中描述的方法,也可以使用該方法getParent任何視圖(包括按鈕,imageviews,佈局,等等),以獲得該視圖的父(父返回也可能有父母)。因此,另一種方法是在特定視圖上循環getParent,直到getParent返回null。此時,您會發現內容視圖的根視圖。

+0

是的,這在另一個方向很有用,但我希望(和評論似乎給出了確切的答案),以避免專門瞭解佈局的任何事情,並從頂部走下來。 –

+0

即使調用getParent,您也不需要知道有關佈局或視圖的任何信息。 –

+0

不,但我需要先知道孩子的身份,以便首先了解IT,對吧?或者我錯過了什麼? –