Как расположить по вертикали динамический размер под текстом - PullRequest
0 голосов
/ 14 марта 2012

Я пытаюсь центрировать ListView вертикально на экране.Непосредственно над ListView я хочу отобразить некоторый текст (список должен быть центрирован, а не текст).

Проблема в том, что ListView имеет динамически изменяемое содержимое (например, количество строк).Когда есть несколько строк и ListView заполняет только часть экрана, я хочу, чтобы ListView был в центре, с текстом выше.Когда ListView заполнен и будет больше экрана, я хочу, чтобы текст отображался в верхней части экрана, а ListView заполнял оставшееся пространство под ним.

Мой текущий макет (ниже) прекрасно работаеткогда ListView небольшой, но текст выталкивается из верхней части экрана, когда ListView становится большим.

Есть ли какие-либо предложения по сохранению текста видимым при увеличении ListView?

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FF000000">

    <TextView
        android:id="@+id/title"
        android:text="Please select level pack..."
        android:textSize="20sp"
        android:textStyle="bold"
        android:padding="5dp"
        android:gravity="center"
        android:layout_above="@id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    <ListView
        android:id="@+id/list"
        android:divider="#000000"
        android:cacheColorHint="#00000000"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"/>
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Одна из проблем, которую я вижу в настоящее время, заключается в строке

android:layout_above="@+id/list"

в идеале должно быть

android:layout_above="@id/list"

Не уверен, что это виновник.

РЕДАКТИРОВАТЬ 1:

 <TextView
    android:id="@+id/title"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:text="Please select level pack..."
    android:textSize="20sp"
    android:textStyle="bold" />

 <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/title"
    android:layout_centerVertical="true"
    android:cacheColorHint="#00000000"
    android:divider="#000000" />

0 голосов
/ 14 марта 2012

Пытались ли вы перейти с android: layout_above = "@ + id / list" в TextView на android: layout_below = "@ + id / title" в вашем ListView? Это должно принести вам желаемый эффект.

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