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.
- Color de fondo del elemento del cajón de navegación para el elemento seleccionado
- Actualizar dinámicamente los tipos de vista de ListView
- ¿No puedo hacer clic en el ListView en android?
- El video de TextureView que se reproduce se vuelve negro después de onPause
- Entrada recursiva para ejecutarPendingTransactions
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>
- Duplicación de filas listview en el fragmento de lista en el cambio de orientación
- Casillas de verificación en un ListView - Cuando selecciono el primero, comprueba el último y viceversa
- Vista de lista de Android con sectionHeader e índice ambos
- Implementación de un "más rápido" backToTop - ListView
- ¿Cómo abrir una nueva actividad haciendo clic en un elemento de listview?
- Crear ListView personalizado con sombra
- Cambiar el color de fondo del primer elemento en ListView
- ¿Cómo hacer divisor parte de cada elemento en listview en android?
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
.
- Android Studio no puede conectarse a Github a través de proxy
- No se ha establecido el ID del instalador de aplicaciones