как сделать прокручиваемый ListView, но не заполнить весь экран? - PullRequest
5 голосов
/ 31 августа 2011

Я хочу сделать экран с TextView сверху (заголовок) ListView посередине и кнопки внизу.Как разместить ListView, который заполнит все пространство между верхним TextView и нижними кнопками и сможет прокручивать его содержимое?

Теперь, когда мой список растет, он нажимает нижнюю кнопку за пределами экрана.

У меня есть:

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

    <Button android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_width="wrap_content"
    />
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:layout_alignParentBottom="true"
    />
    <ListView android:id="@+id/lvLocations"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    />
    <TextView android:layout_height="0dip"
        android:layout_width="fill_parent"
        android:layout_weight="1" 
    />
    <Button android:text="LayerDrawable"
        android:id="@+id/button5"
        android:textSize="15dp"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:background="@drawable/layer_drawable"
    />

</LinearLayout>

Последний TextView используется, чтобы сделать пробел и переместиться Button к основанию.

Ответы [ 4 ]

13 голосов
/ 31 августа 2011

Используйте LinearLayout.Установите layout_weight="1" на ListView с помощью layout_height="fill_parent".Снимите вес других элементов.

<ListView android:id="@+id/lvLocations"
  android:layout_width="match_parent"
  android:layout_height="fill_parent"
  android:layout_weight="1"
></ListView>
3 голосов
/ 31 августа 2011
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

  <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal">
    <TextView
        android:id="@+id/title"
        android:text="arg0"
        android:gravity="center"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" android:textStyle="bold"/>
  </LinearLayout>

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

  <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:orientation="horizontal">
    <Button
        android:id="@+id/prevButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="Previous" 
        android:layout_weight="1"/>
    <Button
        android:id="@+id/nextButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="Next" 
        android:layout_weight="1"/>
  </LinearLayout>

</LinearLayout>

Это именно то, как я настроил мою, и она прекрасно работает.

0 голосов
/ 04 января 2016

Вы можете использовать помощь android: layout_below = "" and android: layout_above = "" для достижения желаемого результатаНадеюсь это поможет.

0 голосов
/ 31 августа 2011

Оберните все ваши элементы в макет : LinearLeyout или RelativeLayout .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...