Вес используется для распределения дополнительного пространства ПОСЛЕ учета любых установленных значений высоты / ширины. Для вертикального LinearLayout, если вы хотите обеспечить соотношение 20/80 (игнорируя разделитель), вы должны установить нулевую высоту (неважно, какая единица измерения) для компонентов. В противном случае Android сначала будет учитывать их высоту и распределять оставшееся пространство только в соотношении весов.
В качестве примера рассмотрим наличие контейнера (горизонтальный LinearLayout) шириной 100 пикселей и двух компонентов с весами 1, но с шириной 10 и 30 пикселей соответственно. Чтобы вычислить их размеры, мы сначала вычитаем ширину из размера контейнера: 100 - 10 - 30 = 60. Затем мы делим это на соотношение весов: 60 / (1 + 1) = 30 и распределяем каждую часть соответственно. Первый вид будет иметь ширину 10 + 30 = 40, тогда как второй вид будет иметь ширину 30 + 30 = 60, даже если они имели одинаковый вес.
Попробуйте следующий макет:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical" >
<Gallery
android:id="@+id/gallery"
android:layout_height="0px"
android:layout_weight="1"
android:layout_width="fill_parent"
android:spacing="2dip" />
<View
android:background="@android:color/white"
android:layout_height="1dip"
android:layout_marginTop="6dip"
android:layout_width="fill_parent" />
<WebView
android:id="@+id/webview"
android:layout_height="0px"
android:layout_weight="5"
android:layout_width="fill_parent" />
</LinearLayout>