1. 程式人生 > >Android LinearLayout中元素按比例分配寬度

Android LinearLayout中元素按比例分配寬度

今天在安卓應用中調整UI,在一行中(LinearLayout)有三個按鈕,都是預設寬度,依次排列,但右邊還有很大的空白,不太美觀:


最好是能將三個按鈕的寬度填滿螢幕,並且三者的寬度平均分配,那怎樣實現呢?答案是用權重(layout_weight):

android:layout_width="0dp"
android:layout_weight="1.0"
把layout_width設為0dp,這個時候Eclipse會提示你”設定為0dp的話就看不見,必須設定權重“這樣的資訊,然後三個按鈕的權重layout_weight都設定為1.0。

屬性設定如下:

<LinearLayout>
        <Button 
		android:layout_width="0dp"
		android:layout_weight="1.0"
		android:layout_height="wrap_content"
	    	android:text="查詢"/>
   	<Button 
		android:layout_width="0dp"
		android:layout_weight="1.0"
		android:layout_height="wrap_content"
	    	android:text="刪除"/>
   	<Button 
		android:layout_width="0dp"
		android:layout_weight="1.0"
		android:layout_height="wrap_content"
	    	android:text="上傳"/>
</LinearLayout>
執行的效果:



確實實現了三個按鈕同樣大小,並且總寬度撐滿螢幕的效果。

那麼這個權重layout_weight到底是什麼意思呢?那就再來做個試驗,把三個按鈕的權重分別設為1.0、2.0和3.0,看看是什麼效果:


效果很明顯,同樣是總寬度撐滿了螢幕,但是三個按鈕的寬度之比是1 : 2 : 3,也就是說,這個權重其實是元素之間的寬度比例,可以根據實際需要進行設定。