2010-11-25 19 views
8

Tengo una vista de lista, donde estoy agregando una vista de encabezado a esa lista. todo bien, pero cuando estoy desplazando mi lista de encabezados también moviéndome con lista, entonces quiero evitar el desplazamiento de la vista de encabezado, quiero decir que tengo que desplazarme solo de la lista cuando entro a la vista superior (barra de título), la vista de encabezado debe permanecer en la parte inferior de la barra de título.Android: ¿Cómo evitar que el encabezado se desplace en listview, Android?

¿Alguien puede darme una solución para esto?

Respuesta

16

En lugar de utilizar una cabecera de la siguiente distribución:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 
    <LinearLayout android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"> 
     --> Your header layout here   
    </LinearLayout> 

    <ListView android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" /> 
</LinearLayout> 

cosas importante tener en cuenta:

  • El ID de ListView debe ser @android:id/list para poder utilizar una ListActivity
  • Use una altura 0 y configure el peso en 1
+1

para un encabezado, es bueno. pero si tuviera, diferir los patrones de lista para la misma lista. He dado una vista de encabezado para cada patrón – Srinivas

+2

Una pregunta es, ¿cómo alinear el encabezado con sus datos subrayados? – eric2323223

+0

Eso funciona. Pero me parece muy extraño que la vista de lista tenga un encabezado y un pie de página que se desplacen. Es difícil pensar en un caso de uso en el que desees que se desplacen. Me gustaría ver un nuevo atributo agregado a ListView que bloquee el encabezado y el pie de página. – Batdude

0

No estoy seguro de entender correctamente lo que pregunta. Así que te digo que tengas algo así como.

<ListView> 
<Header /> 
<Item /> 
<Item /> 
<Item /> 
</ListView> 

¿Por qué no lo hacen

<Header /> 
<ListView> 
<Item /> 
<Item /> 
<Item /> 
</ListView> 

?

+0

por un encabezado, es una buena idea. pero si tuviera, diferir los patrones de lista para la misma lista. He dado una vista de encabezado para cada patrón – Srinivas

0

En lugar de agregar una vista de encabezado, agregue la vista directamente al diseño sobre la vista de lista. que había aplicado el conjunto de mi lista vista como esta todos ellos funcionan TRB ..

0
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" 
       xmlns:android="http://schemas.android.com/apk/res/android"> 


<ImageView android:id="@+id/title_top_refine_search" android:layout_width="fill_parent" 
         android:layout_height="45dip" 
         android:src="@drawable/title_bar_top" 
         android:scaleType="fitXY" 
         android:layout_alignParentTop="true" > 
      </ImageView> 


     <TextView android:id="@+id/TextView01" android:textColor="#FFFFFF" android:layout_marginTop="5dip" 
        android:textStyle="bold" android:gravity="center" android:textSize="23dip" 
        android:text="Refine Search" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView> 

     <ListView android:id="@+id/ListView01" 
       android:layout_below="@+id/title_top_refine_search" 
       android:layout_alignParentBottom="true" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent"> </ListView> 

</RelativeLayout> 

una Muestra presentación que contenga la vista de encabezado y de la vista de lista a continuación

1

Para mí funcionó bien cuando me incluyo una etiqueta llamada <include> antes de mi vista de lista, El código fue algo como esto

<include layout="@layout/stationlist_header"/> 
<ListView 
      android:id="@+id/mylist" 
      android:layout_width="match_parent" 
      android:layout_height="210dp" 
      android:layout_gravity="bottom" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp" 
         > 
</ListView> 
Cuestiones relacionadas