2009-10-06 17 views
11

Tengo varias ListViews en LinearLayout. Está enumerando cosas por día, así que tengo un TextView que contiene "Sunday:" seguido de una lista de elementos, seguido de un "Monday" TextView, etc. Funciona muy bien, pero no cabe en la pantalla. Así que agregué un ScrollView como padre de LinearLayout. Ahora se desplaza, pero todos los ListView tienen espacio para 2 entradas, ya sea que tengan 0 o 3 entradas. Algo sobre agregar el padre ScrollView hizo que ListViews no se dimensione de forma dinámica. Intenté llamar a requestLayout() en ScrollView después de que los adaptadores de listas llenaran sus vistas, pero eso no hizo nada. ¿Algunas ideas?Problema de diseño de Android ScrollView

Editar: De http://www.anddev.org/viewtopic.php?p=25194 y otros enlaces parece que ListViews dentro de un ScrollView no se manejan correctamente. ¿Alguien tiene una buena sugerencia para implementar una lista de listas?

+0

Podría publicar su diseño xml? ¿Has configurado Android: layout_height = "wrap_content" o similar en tus ListViews? – svens

+0

No tengo acceso al diseño en este momento. Todas las vistas dentro de LinearLayout tienen layout_height = "wrap_content", LinearLayout y ScrollView tienen layout_height = "fill_parent" (intenté wrap_content en LinearLayout). Al comentar el ScrollView, todo se establece correctamente, pero sale de la pantalla. – Aaron

+0

¿Tiene sus ListViews en un ListView? :) Si lo entiendo correctamente, desea hacer una lista de todos los días de la semana en un TextView con un ListView debajo de él. Esto debería ser implementable en un adaptador personalizado. Vea la respuesta a mi pregunta http://stackoverflow.com/questions/1505751/android-binding-data-from-a-database-to-a-checkbox-in-a-listview que describe cómo extender ResourceCursorAdapter. Tal vez esto te ayude a construir un adaptador que llene un ListView con tus ListViews + Caption de lunes a viernes. – svens

Respuesta

14

Me interesa ese tema también, así que investigué un poco. Primero: nunca coloque un ListView en un ScrollView (como descubrió por su cuenta). Desafortunadamente, la búsqueda de este problema en Google no conduce a ninguna solución, por lo que probé mi sugerencia a partir de mi comentario anterior.

Implementé un ListAdapter personalizado y puse ListViews en un ListView padre. Esto no funciona (conduce al mismo problema que con ScrollView). Hablando con los chicos del android-irC# android-dev oficial de freenode, me dijeron que poner ListViews en un ListView es tan malo o incluso peor que ponerlos en ScrollView. Lamentablemente, tampoco pudieron ayudarme con el problema.

Parece que hay una sola manera de lograr lo que quiere hacer; vea la respuesta a esta pregunta similar Scrolling with Multiple ListViews for Android. La idea es fusionar todas las ListViews en una sola mediante un adaptador personalizado e insertar algún tipo de encabezado entre las entradas. Esto es absolutamente factible, pero podría requerir un esfuerzo especial.

+1

¿por qué no debes poner listviews dentro de scrollviews? – MalcomTucker

+16

porque explotan. – stealthcopter

6

Sé que es tarde para responder esto en este momento, pero aún así, puede ser útil para otras personas que llegan aquí en caso de problemas similares.

Le sugiero que use un ListView ampliable para esto. Resolvería todos tus problemas. Puede tener los nombres principales/principales como el de la semana, y cuando lo expanda, tendrá la lista de entradas para ese día/semana en particular/lo que sea. Además, no tiene que preocuparse acerca de la búsqueda, ya que es atendido por Android :)

Si intenta esto, por favor, hágamelo saber si esto funciona para su problema Intenta buscar ejemplos en expansible Vista de la lista.

edición: comprobar ejemplo aquí - http://mylifewithandroid.blogspot.com/2008/05/expandable-lists.html

+0

realmente, las vistas de lista ampliable son el camino a seguir – Axarydax

Cuestiones relacionadas