ListView dentro de LinearLayout no crecerá para mostrar todos los niños

Estoy construyendo un menú deslizante que se abre desde el lado. En el menú, hay un ScrollView con un LinearLayout dentro de él para el diseño general y desplazamiento. Además, para mostrar los elementos del menú, tengo una vista de lista dentro de LinearLayout , lo que significa que la jerarquía de vista es como:

 ScrollView LinearLayout ListView 

Estoy tratando de poblar el ListView con un adaptador personalizado, que obtiene sus datos de una matriz. Pero sorprendentemente, cuando relleno los datos, el ListView no crece para mostrar todos sus hijos, incluso cuando se establece en wrap_content . En su lugar, sólo muestra un elemento, pero soy capaz de desplazarse por ese elemento para ver el resto de los elementos.

Supongo que es porque ya está en un ScrollView , pero no quiero la funcionalidad de desplazamiento de la ListView . Sólo quiero que mostrar todos los elementos del menú, y dejar que el ScrollView cuidar el desplazamiento. Los elementos del menú no crecerán más de 10, así que no estoy preocupado por el uso de memoria en este momento.

¿Hay una manera, posiblemente extendiendo el ListView , para deshabilitar el desplazamiento y hacerlo realmente hacer wrap_content ?

Diseño XML:

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#2e2e2e"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="20dp" android:gravity="center_horizontal" android:orientation="vertical"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/menu_profile_picture" android:layout_width="100dp" android:layout_height="100dp" android:layout_marginTop="10dp" android:src="@drawable/default_profile_picture" app:border_color="#FFF" app:border_width="2dp"/> <com.devspark.robototextview.widget.RobotoTextView android:id="@+id/menu_user_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="John Doe" android:textColor="#FFF" android:textSize="22sp" app:typeface="roboto_thin"/> <com.devspark.robototextview.widget.RobotoTextView android:id="@+id/menu_logged_in" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LOGGED IN" android:textColor="#1e4472" android:textSize="15sp" app:typeface="roboto_light"/> <ListView android:id="@+id/menu_items" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginTop="20dp" /> <ImageView android:id="@+id/menu_logout_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:src="@drawable/ic_logout"/> <com.devspark.robototextview.widget.RobotoTextView android:id="@+id/menu_logout_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="LOG OUT" android:textColor="#e20202" android:textSize="15sp" app:typeface="roboto_light"/> </LinearLayout> </ScrollView> 

Una regla de oro no es poner una vista con capacidad de desplazamiento en otra.

Si no desea la funcionalidad de desplazamiento de ListView entonces sería mejor utilizar algo como un TableLayout lugar de ListView y añadir dinámicamente TableRows .

  • Cambiar en el adaptador para un ListView
  • desplazarse a la parte superior mueve el elemento de lista a la segunda posición
  • Imagen local a través de json local en android
  • ¿Cómo mostrar una vista vacía con RecyclerView?
  • SearchView en ActionBar - problemas con el botón * Up *
  • ListView es completamente inferior a RecyclerView?
  • Funcionalidad de búsqueda para ListView
  • ¿Cómo simular un clic de usuario a un elemento de vista de lista en junit testing?
  • Cómo hacer Android Ver la lista de diseño de Android L Vista previa de diseño
  • Cómo agregar varias vistas de encabezado en un ListView
  • Optimización de RecyclerView / ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.