layout weight屬性的小結

2022-08-05 08:21:09 字數 1055 閱讀 1940

在android的控制項布局中,有乙個奇葩的 layout_weight 屬性,定義如下:

layout_weight : 用於指定剩餘空閒空間的分割比例。用法:

為什麼說是奇葩呢?

以上面的布局**為例,textview-888 和 textview-999999 是橫向排列的2個控制項,它們的layout_weight="1",說明這2個控制項平分了所在linearlayout的剩餘的空閒空間, 我們很容易的就誤認為這2個控制項平分了水平方向的空間,即:各自佔據了 50% 的寬度。

其實這是錯誤的,而是:textview-999999控制項所佔據的寬度 > textview-888所佔據的寬度。因為999999字元佔據的寬度大於888佔據的寬度,即:w(999999) + 1/2空閒空間 > w(888) + 1/2空閒空間。

這就是它奇葩的地方,很容易就讓我們一直誤認為是整個控制項分割空間。到這裡,大家一定會認為,這樣的話,layout_weight 這個屬性就沒有什麼意義了,原以為它可以分配空間呢,原來只是分割剩餘空閒空間。

其實,呵呵,layout_weight 是可以用來進行整個空間的分割的,如果我們讓控制項的寬度定義為0,這樣比如2個控制項的 layout_weight="1" 就可以各自50%平分整個空間了,因為:0 + 1/2空閒空間 = 0 + 1/2空閒空間

這是乙個小技巧,也是非常實用的乙個實用layout_weight分割方案:定義控制項的 layout_width="0dp" 或 layout_height="0dp" 配上 layout_weight 就可以實現對整個空間的比例分割了。

下面定義了2個控制項的 layout_width="0dp", layout_weight="1",實現了水平方向50%平均分割:

下面定義了2個控制項的 layout_height="0dp", layout_weight="1",實現了豎直方向50%平均分割:

奇葩屬性 layout weight 的解釋及使用

在android的控制項布局中,有乙個奇葩的 layout weight 屬性,定義如下 layout weight 用於指定剩餘 空閒空間的分割比例。用法 orientation horizontal layout width wrap content android layout height ...

奇葩屬性 layout weight 的解釋及使用

摘要 layout weight 的含義及使用 在android的控制項布局中,有乙個奇葩的 layout weight 屬性,定義如下 layout weight 用於指定剩餘空閒空間的分割比例。用法 複製 複製 為什麼說是奇葩呢?以上面的布局 為例,textview 888 和 textview...

layout weight部分常見屬性解析

如上面xml檔案所示則顯示的布局如圖 解釋一下,它是先將wrapcontent所佔的長度分出去然後再將剩餘控制項的長度按照weight的比例1 2 2再次進行分配。若將第乙個textview的layout width設定成0dp,則如下圖顯示 此時可以發現第乙個textview的控制項不在與另外兩個...