Android: заголовок в ListView

1

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

Я создал RelativeLayout где я включаю LinearLayout с заголовком и под ним, ListView, но все же, когда ListView прокручивается вниз, заголовок исчезает. Я также пробовал с addHeaderView но пока не повезло.

Может ли кто-нибудь пролить свет?

EDIT: мои макеты таковы:

<include
    android:id="@+id/IncludeFiltersZoekAndBoek"
    android:layout_above="@+id/AcommodatiesListView"
    layout="@layout/filters_header_layout" />

<ListView
    android:id="@+id/AcommodatiesListView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/LoadMoreAccommodaties"
    android:layout_alignParentTop="true"
    android:scrollingCache="false" >

</ListView>

<Button
    android:id="@+id/LoadMoreAccommodaties"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="Laad meer resultaten..."
    android:visibility="gone" />

и для заголовка:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Populariteit" />

    <ImageButton
        android:layout_width="15dip"
        android:layout_height="15dip"
        android:src="@drawable/triangle" />

    <ImageButton
        android:layout_width="15dip"
        android:layout_height="15dip"
        android:src="@drawable/triangle" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Prijs" />

    <ImageButton
        android:layout_width="15dip"
        android:layout_height="15dip"
        android:src="@drawable/triangle" />

    <ImageButton
        android:layout_width="15dip"
        android:layout_height="15dip"
        android:src="@drawable/triangle" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Rating" />
</LinearLayout>

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

Теги:
android-listview

3 ответа

5
Лучший ответ

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

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

  • 1
    простой TextView со статическим текстом может служить цели.
  • 1
    да, точный ... или комбинация Views для сложного заголовка :)
0

вам нужно что-то вроде этого:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="THIS IS A HEADER"
        android:textColor="@android:color/black"
        android:textSize="20sp"
        android:typeface="serif" />
</LinearLayout>

<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:scrollingCache="false"
    >
</ListView>

</LinearLayout>
0

Вы должны установить вес заголовка, а затем увидеть результат. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню