Android: странная инверсия веса в LinearLayout

Это макет xml, над которым я работаю:

<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> 

Поскольку я установил ScrollView с layout_weight="2" и LinearLayout (child) с layout_weight="1" я ожидал, что ScrollView будет использовать вдвое больше свободного пространства, чем LinearLayout. Но я получаю противоположный результат. ScrollView меньше LinearLayout. Если я установил для ScrollView layout_weight="1" и LinearLayout с layout_weight="2" , ScrollView больше LinearLayou.

Как это возможно??

Вес становится обратным, потому что вы используете match_parent как layout_height . Вес используется для распределения оставшегося пустого пространства или удаления пространства, когда общая сумма больше, чем LinearLayout . Установите свои высоты на 0dip, это сработает.

Т.е. установите layout_height = "0dip" как для ScrollView и для внутреннего LinearLayout .

Справка :

Использование layout_weight с макетами Android

Intereting Posts