Список и изображение в том же ScrollView - PullRequest
1 голос
/ 05 марта 2012

Я пытаюсь получить изображение и список в одном и том же «свитке» (я не знаю, как еще его поместить).Мой основной (вертикальный) макет:

  • TextView

  • ImageView

  • ListView

Я пытаюсь получить прокрутку, как будто само изображение является элементом списка.Поэтому текстовое представление должно оставаться наверху, а все остальное должно прокручиваться под ним.

На данный момент у меня есть следующий код:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/app_purple"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/about_app_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:padding="15dp"
        android:text="@string/about_app_label"
        android:textColor="@color/background"
        android:textSize="20dp"
        android:textStyle="bold" />

        <ImageView
            android:id="@+id/app_logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/logo" />

</LinearLayout>

<ListView
    android:id="@+id/information_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background"
    android:divider="@drawable/listdivider"
    android:dividerHeight="1dp"
    android:fadingEdge="none" >

    <!-- Preview: listitem=@layout/row -->
</ListView>

Любая помощь будет принята с благодарностью!

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

Настраиваемый макет строки для списка:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/listview"
android:orientation="horizontal"
android:padding="4dip" >

<ImageView
    android:id="@+id/list_icon"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:adjustViewBounds="true"
    android:layout_marginRight="5dp"
    android:contentDescription="@string/icon_content_description" />

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_label"
            android:layout_width="200dp"
            android:layout_height="wrap_content"

            android:maxLines="1"
            android:paddingBottom="5dp"
            android:paddingTop="5dp"
            android:textColor="@color/result_label"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/list_count"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/list_label"
            android:ellipsize="end"
            android:gravity="center_vertical"
            android:maxLines="1"
            android:textColor="@color/text" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_result"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="@color/text"
            android:textColorLink="@color/app_purple" />

        <ProgressBar
            android:id="@+id/list_progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:gravity="center_vertical"
            android:visibility="gone" />
    </RelativeLayout>
</LinearLayout>

Ответы [ 3 ]

2 голосов
/ 05 марта 2012

У вас будет вертикальная LinearLayout, содержащая фиксированные TextView и ListView. Ваш ImageView будет заголовком для ListView, добавленным через addHeaderView(). Заголовки, несмотря на их имя, прокручиваются с содержимым ListView.

1 голос
/ 05 марта 2012

для создания пользовательских представлений списка необходимо создать файл single_list_item.xml, чтобы упорядочить все, что вы хотите прокрутить, например, изображение с текстом описания рядом с ним. Также вам нужно добавить ListView в ваш XML-файл, чтобы программа могла обработать представление. И их, вы можете обрабатывать все в вашем Java-файле с помощью адаптера. и список появится внизу текста.

Вот отличный пример того, как это сделать здесь

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

не ясно, что именно вы пытаетесь сделать. ScrolView может иметь только ОДНОГО ребенка. так что я думаю, вы должны поместить ImageView и Listview в LinearLayout. но в любом случае - это плохая идея, чтобы поместить Listview в ScrollView - как теперь ОС, что вы пытаетесь прокручивать? ListItem или весь список. если вы можете быть более конкретным - я могу попытаться помочь больше ...

...