layout weight常見解析

2021-07-06 01:23:51 字數 1134 閱讀 8277

布局中若想某幾個控制項在水平方向以某種比例顯示,可做如下操作:

以三個textview為例子,想要寬度是1:2:2:

分別設定:layout_width="0db",layout_weight=1;、

layout_width="0db",layout_weight=2;

layout_width="0db",layout_weight=2;

會遇到的問題:

(1)若第乙個textview因為寬度不夠,分行顯示了,結果發現該textview與另兩個沒有對齊,該如何對齊?

設定linearlayout的layout_aligned=「fasle"

(2)假設將第乙個textview的layout_width=wrap_content,會不會影響layout_weight?

修改後可以看到三個textview沒有按周1:2:2布局,看來的確是影響到了。

這反映了如下問題:

linearlayout的layout_weight屬性,首先按照控制項申明的尺寸進行分配,然後再將剩下的尺寸按照weight分配

(3)將三個textview的寬度都設為match_parent,會如何顯示?

可以看到:textview比例為1的控制項所佔的比例反而更大了,原因是;

linearlayout的layout_weight屬性,首先按照控制項申明的尺寸進行分配,然後再將剩下的尺寸按照weight分配

三個控制項申明寬度一樣,計算過程如下:

假設手機屏寬480dp:

申明的尺寸為480(match_parent),剩下的尺寸為:480-3*480= -2*480;

第乙個textview寬度:480+(-2*480)*1/5=288;

第二,三均為: 480+(-2*480)*2/5=96;

可以看出第乙個textviewwidth值更大

結論:控制項寬度=申明的尺寸+父控制項剩餘尺寸*比例

(4)若一行只有乙個控制項,如何能佔整個寬度的一半?

控制項申明:layout_width="0db",layout_weight=1;

linearlayout申明:weightsum="2";

以上幾點對於高度也適用。

另外:帶有layout_開頭的屬性都是交給父容器,沒有layout_開頭的都是本身的屬性

layout weight部分常見屬性解析

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

常見解析漏洞

iis6.0 檔案解析漏洞 iis6.0 目錄解析漏洞 iis7.0 畸形解析漏洞 apache 0a解析漏洞 apache 未知字尾名解析漏洞 nginx 訪問檔案解析漏洞 nginx 畸形解析漏洞 nginx 截斷解析漏洞 1 目錄解析 example www.com asp jpg iis伺服...

android 中layout weight的作用

layout weight 用於給乙個線性布局中的諸多檢視的重要度賦值。所有的檢視都有乙個layout weight值,預設為零,意思是需要顯示多大的檢視就佔據多大的螢幕空 間。若賦乙個高於零的值,則將父檢視中的可 用空間分割,分割大小具體取決於每乙個檢視layout weight 值以及該值在當前...