2013-04-18 72 views
7

奇怪的重量反轉這是XML佈局我工作:安卓:在的LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFF" 
    android:orientation="vertical" > 

    <ScrollView 
     android:layout_weight="2" 
     android:id="@+id/scrollConfirm" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

    </ScrollView> 

    <LinearLayout 
     android:layout_marginTop="20px" 
     android:layout_weight="1" 
     android:id="@+id/imageNumpad" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <ImageView android:src="@drawable/myicon" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:background="#FFFFFF" 
     /> 
    </LinearLayout> 
</LinearLayout> 

既然我已經與layout_weight="1"設置好的了滾動與layout_weight="2"和的LinearLayout(孩子)我預計會滾動型使用LinearLayout的兩倍空閒空間。但是我得到了相反的結果。 ScrollView比LinearLayout小。 而如果我爲ScrollView layout_weight="1"和LinearLayout設置了layout_weight="2",則ScrollView大於LinearLayou。

這怎麼可能?

回答

15

由於您使用match_parent作爲layout_height,因此重量相反。當總和大於LinearLayout時,重量用於分配剩餘的空白空間或佔用空間。設置你的身高0dip它會工作。

即, 集合layout_height = "0dip"對於ScrollView和內部LinearLayout

參考:

The use of layout_weight with Android layouts