Как определить расположение в пространстве все 50/50? - PullRequest
1 голос
/ 12 мая 2011

У меня вертикальная линейная компоновка с двумя ListViews. Я хочу, чтобы верхний ListView занимал 50% экрана. Я хочу, чтобы нижний лист занимал 50% экрана. Как я могу сделать это в XML?

Ответы [ 2 ]

11 голосов
/ 12 мая 2011

Следующий макет должен работать

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

    <ListView
        android:id="@+id/list1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

    <ListView
        android:id="@+id/list2"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

</LinearLayout>

Как это работает:

  • Первоначально оба списка не имеют высоты
  • После измерения всего с высотой,Оставшаяся высота (в данном случае все это, поскольку нет других видов с указанной высотой или wrap_content) делится между всеми видами без высоты и layout_weight
  • Высота каждого видабудет (layout_weight of View) / (Sum of layout_weights in parent ViewGroup)
  • В этом случае (Sum of layout_weights in parent ViewGroup) = 2 и (layout_weight of View) = 1 для каждого ListView, поэтому каждый ListView занимает 1/2 доступного пространства
2 голосов
/ 12 мая 2011

Установите для Vertical LinearLayout значение height:fill_parent, а затем установите weight of each ListView to "1" e.g. android:layout_weight="1"

...