0

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

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

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

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

ответ

3

Я считаю, что вы можете просто добавить 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> 
+0

благодаря обе реакции были прекрасны! и, неплохо узнать новые виды –

 Смежные вопросы

  • Нет связанных вопросов^_^