Как я могу заставить ListView и TextView прокручиваться как одно целое, когда содержимое выше высоты экрана? - PullRequest
1 голос
/ 12 октября 2010

У меня есть экран главного меню с простым ListView, который содержит «ссылки» на другие экраны в моем приложении (Обзор, Закладки, Настройки, О программе и т. Д.). Под ListView есть TextView (точнее, TextSwitcher, который вращает TextViews), который меняется каждые 10 секунд, чтобы отобразить новый «совет». alt text

В портретном режиме это работает нормально. В ListView есть мои пять элементов списка и подпись к подсказке внизу. Однако, когда я переключаюсь в альбомный режим, ListView выше, чем экран. ListView прокручивается нормально, но я не могу прокрутить до конца ListView, чтобы увидеть TextView внизу.

Я перепробовал все возможные комбинации параметров Layouts, wrappers, ScrollViews и layout_height, и просто не могу заставить его вести себя.

Вот самый простой код, который я могу использовать, чтобы получить результат, изображенный выше:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:orientation="vertical"
    android:layout_height="fill_parent">
    <LinearLayout android:id="@+id/ListLayout"
        android:layout_width="fill_parent" android:layout_height="wrap_content">
        <ListView android:id="@id/android:list" android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:layout_weight="1">
        </ListView>
    </LinearLayout>
    <LinearLayout android:id="@+id/TipLayout"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_below="@+id/ListLayout">
        <TextSwitcher android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:id="@+id/TipSwitcher">
            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content" android:textSize="7pt"
                android:id="@+id/Tip1TextView" android:text="Tip: Hello, Android!"></TextView>
            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tip: This is the second TextView in the TipSwitcher!"
                android:id="@+id/Tip2TextView" android:textSize="7pt"></TextView>
        </TextSwitcher>
    </LinearLayout>
</RelativeLayout>

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

Спасибо.

РЕДАКТИРОВАТЬ: Что-то я забыл упомянуть, это может иметь или не иметь отношение. Моя MainMenuActivity расширяет ListActivity. Согласно документам, «ListActivity имеет макет по умолчанию, который состоит из одного полноэкранного списка в центре экрана». Но, «Если вы хотите, вы можете настроить макет экрана, установив свой собственный макет представления с помощью setContentView () в onCreate ()». Так что я не думаю, что ListActivity мешает.

1 Ответ

2 голосов
/ 12 октября 2010

Поместите TextSwitcher в ListView. Вы можете использовать addFooterView() для этого.

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