2013-04-18 16 views
7

Jest to układ xml pracuję nad:Android: dziwne odwrócenie wagę 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> 

Odkąd Setted Scrollview z layout_weight="2" i LinearLayout (dziecko) z layout_weight="1" Spodziewałem się, że będzie Scrollview zużyj dwa razy wolną przestrzeń niż LinearLayout. Ale uzyskuję przeciwny wynik. ScrollView jest mniejszy niż LinearLayout. Natomiast jeśli ustawię dla ScrollView layout_weight="1" i LinearLayout z layout_weight="2", ScrollView jest większy niż LinearLayou.

Jak to jest możliwe?

Odpowiedz

15

Masa jest odwrotna, ponieważ używasz match_parent jako layout_height. Waga jest używana do dystrybucji pozostałej pustej przestrzeni lub miejsca na wynos, gdy całkowita suma jest większa niż LinearLayout. Ustaw swoją wysokość na 0dip to zadziała.

tj. zestaw layout_height = "0dip" zarówno dla ScrollView, jak i wewnętrznego LinearLayout.

referencyjny:

The use of layout_weight with Android layouts

Powiązane problemy