2010-11-29 27 views
9

Tengo un problema con el ListView en Android. Cuando configuro android:layout_height="wrap_content", ListView solo tiene una o dos filas y no puedo encontrar la forma de "envolverlo".ListView ignorando wrap_content

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" 
      android:gravity="center"> 
      <TextView 
       android:id="@+id/question" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 
      <ListView android:id="@+id/ListView01" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </ScrollView> 
</FrameLayout> 

¿Hay alguna manera de lograr esto? ¡Gracias por adelantado!

+0

¿hay alguna razón particular por la que el uso de tantos "envoltorios" alrededor de su ListView? – Tivie

+0

Bueno, ScrollView solo puede contener un hijo, por lo que LinearLayout puede contener TextView y ListView. FrameLayout puede ser innecesario. Entonces, ¿hay una mejor manera de reproducir el aspecto de ListView? He visto algunas ideas al completar un LinearLayout con elementos de la lista, pero la descripción no era muy "descriptiva". – Czechnology

Respuesta

10

Parece que está tratando de agregar un encabezado a su vista de lista. Listview tiene soporte integrado para encabezados (y pies de página). El método para configurar un encabezado es listview.addHeader(View view). Puede personalizar el encabezado según sea necesario.

+0

esto debería ser totalmente una respuesta aceptada. –

+0

Esto manifiestamente no es la respuesta a la pregunta formulada. La pregunta real quiere saber cómo hacer que ListView se estire en altura para que coincida con la cantidad de elementos que contiene. –