Я хотел бы иметь заголовок поверх 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
.
В соответствии с вашими требованиями вам не нужно устанавливать заголовок для вашего списка ListView, поскольку заголовки прокручиваются вместе с другим содержимым списка.
В вашем случае просто добавьте этот вид сверху (вверху) вашего ListView, который должен выступать в качестве его заголовка. К тому времени он останется там, даже если вы прокрутите список.
вам нужно что-то вроде этого:
<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>
Вы должны установить вес заголовка, а затем увидеть результат. :)
TextView
со статическим текстом может служить цели.