2014-09-04 55 views
0

據我瞭解Android的視圖渲染過程,根佈局將開始測量,並詢問它的每個孩子的大小。如果其中一個是Viewgroup本身,它會再次詢問孩子,他們或者返回他們的設置大小,或者如果他們設置爲wrap_content,則會計算它。match_parent如何工作?

現在如何與match_parent一起工作?該視圖無法計算它的大小,因爲它必須先知道父級的大小,對嗎?所以父母必須計算它自己的大小,然後發送給孩子,然後可以繼續自己的佈局。 這是否會使match_parent效率低於wrap_content甚至是固定的dp值?

回答

1

其實,match_parent說:「嗨父母,我想那樣大您留下可用空間」。例如,如果一個ViewGroup家長有兩個孩子:在索引0孩子與wrap_content和小孩B索引1與match_parent。 A表示他希望寬度爲100px,那麼B的寬度將爲:Parent的父寬度 - A的邊距 - 100px - B的邊距

+0

但是仍然需要詢問孩子一次,然後做所有其他的計算,然後再次回到孩子身上,不是嗎? – LuLeBe 2014-09-04 08:42:05

+1

如果在索引2處有第三個孩子,則它將永遠不可見,因爲孩子B將填充父母的所有可用空間。 – suitianshi 2014-09-04 08:45:46