Получение взглядов, чтобы соответствовать - PullRequest
0 голосов
/ 28 февраля 2011

У меня есть main.xml с LinearLayout с тремя элементами внутри, LinearLayout, ListView и LinearLayout. Мне бы хотелось, чтобы ListView был как можно большим, при этом нижняя строка LinearLayout всегда показывалась, а не сжималась и не сбивалась с экрана.

Я попытался сделать заполнение высоты ListView родительским, но затем нижний LinearLayout не отображается, как и в случае с оберткой, так как ListView имеет много контента.

Когда я делаю ListView установленного размера, скажем, 300dp, у меня есть пространство ниже нижнего LinearLayout. Я попытался исправить это, сделав LinearLayout gravity верхнего уровня = fill, но это не помогло.

Кроме того, в зависимости от андроида, на котором я его пробую, нижний LinearLayout будет падать с экрана или уменьшаться. В случае, если это актуально, для верхнего уровня LinearLayout устанавливается fillparent для высоты. Моя цель - сохранить верхний и нижний LinearLayout, чтобы обернуть их содержимое, а средний ListView заполнить то, что осталось ... какие-либо предложения? Заранее спасибо за ваши усилия!

1 Ответ

3 голосов
/ 28 февраля 2011

Я полагаю, что вы можете просто добавить android:layout_weight="1" в ListView с ListView, установленным на высоту fill_parent, и двумя LinearLayouts, установленными на wrap_content.Несмотря на это, я обычно предпочитаю использовать RelativeLayout.Вы можете указать верхний колонтитул для выравнивания по верху экрана, нижний колонтитул для выравнивания по нижнему краю и ListView для заполнения промежутка между ними, например:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        >
        //...insert stuff here
    </LinearLayout>

    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        >
        //...insert stuff here
    </LinearLayout>

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/footer"
        android:layout_below="@id/header"
        />
</RelativeLayout>
...