Android佈局基礎常識:wrap_content,match_parent,layout_weight

wrap_content:是layout_width和layout_height的屬性值之一,表示和自身內容一樣的長度。

match_parent:是layout_width和layout_height的屬性值之一,表示和父組件一樣的長度。

layout_weight:是佈局文件的一個屬性,它的值表示線性分割原本應有長度的權重,要和wrap_content和match_parent配合使用,不同情況列舉如下:
和wrap_content配合:先按照內容的多少去設定空間大小,然後按照權重的比例分配剩餘控件。即當控件沒有內容或內容未超出按照權重比例分配的空間時,就按照layout_weight設定的權重比例分配空間,當內容大小超過這樣分配的空間時,控件就會擴張,其實就是按照wrap_content來佔用空間了,剩下的空間仍然按照本段定理來分配。

和match_parent配合:空間計算公式:空間大小=父容器大小+權重比例剩餘空間大小,比如兩個同級控件A,B都是match_parent,A的layout_weight爲1,B的layout_weight爲2(總空間爲1match_parent,所需空間爲2match_parent,剩餘空間爲兩者之差),空間A=1match_parent+1/(1+2)(1match_parent-2match_parent)=2/3match_parent,同理,空間B=1/3match_parent。這個現象和正常情況有些相反,但是可以有效保證空間分配到的比例固定,不會被內容撐大。

和0dp配合:將layout_weight或者layout_height設爲0dp,將直接按照layout_weight權重的比例分配空間,且不會被內容撐大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章