android layout_weight講解

本文轉載自http://sinye.iteye.com/blog/1068204
android


在網上看了一些對Layout_weight的講解,有些說的比較片面,只列舉了一種狀況,而後本身經過實驗和一些比較好的文章總結了一下,特此記錄下來,以備之後所用。Layout_weight是線性佈局,也就是LinearLayout裏面用到的,下面經過實驗來看這個Layout_weight的特性。ide

1.當控件的屬性android:layout_width="fill_parent"時,佈局文件以下:佈局


Xml代碼  
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Buttonandroid:layout_width="fill_parent"
android:layout_height="wrap_content"android:layout_weight="1"
android:text="Button1"/>
<Buttonandroid:layout_width="fill_parent"
android:layout_height="wrap_content"android:layout_weight="2"
android:text="Button2"/>
</LinearLayout>

在這裏Button1的Layout_weight=1,Buttong2的Layout_weight=2,運行效果爲:spa


咱們看到,Button1佔了2/3,Button2佔了1/3。若是此時把button2的weight設置成2000,不是說Button2就消失了,而是Button1的寬度幾乎佔滿了屏幕寬度,而屏幕最後一絲細條則是留給Button2的,已近很是小了,沒有顯示出來。截圖以下:設計





得出結論在layout_width設置爲fill_parent的時候,layout_weight表明的是你的控件要優先儘量的大,但儘量大是有限度的,即fill_parent.xml


2.當控件的屬性android:layout_width="wrap_content"時,佈局文件以下:blog


Xml代碼  
utf-8

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:layout_weight="1"
android:text="Button1"/>
<Buttonandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:layout_weight="2"
android:text="Button2"/>
</LinearLayout>

一樣,Button1的weight設置爲1,Button2的weight設置爲2,可是效果與fill_parent的效果截然相反。運行效果以下:ci


這時,和fill_parent正好相反,Button1的寬度佔據了屏幕寬度的1/3,而Button2的寬度佔據了屏幕的2/3,若是此時把Button1的weight設置爲2000,按照以前理解,Button1應該小的幾乎在屏幕上看不到,可是錯了,實驗告訴咱們,當Button1的weight很是小時,也要"wrap_content",也就是要保證Button1至少可以顯示。如下是Button1設置weight爲2000時的運行截圖:get


咱們看到,Button1已經足夠小,可是要保證他能顯示出來,所以得出結論:

在layout_width設置爲wrap_content的時候,layout_weight表明的是你的控件要優先儘量的小,但這個小是有限度的,即wrap_content.

當了解這些後,咱們再設計程序時,爲了可以自適應屏幕,不想給控件一個指定的寬度和高度,就可使用這個weight屬性來讓它按本身比例來劃分屏幕高度或者寬度了。

相關文章
相關標籤/搜索