2010-12-13 12 views
7

Así que vamos a tratar de explicar lo que estoy tratando de hacer ...¿Es posible crear un GridView que tenga hijos de diferentes tamaños?

Tengo un diseño que se parece a esto -

[alt text] [1]

Para esto tengo yo creado dos GridViews así:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

    <LinearLayout android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 

     <TextView style="@style/GroupName" 
        android:text="@string/currency_badges"/> 

     <GridView android:id="@+id/currency_grid" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:columnWidth="90dp" 
        android:numColumns="auto_fit" 
        android:verticalSpacing="10dp" 
        android:horizontalSpacing="10dp" 
        android:stretchMode="columnWidth" 
        android:gravity="left"/> 

    </LinearLayout> 

    <LinearLayout android:orientation="vertical" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 

     <TextView style="@style/GroupName" 
        android:text="@string/foursquare_badges"/> 

     <GridView android:id="@+id/foursquare_grid" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:columnWidth="90dp" 
        android:numColumns="auto_fit" 
        android:verticalSpacing="10dp" 
        android:horizontalSpacing="10dp" 
        android:stretchMode="columnWidth" 
        android:gravity="left"/> 

    </LinearLayout> 
</LinearLayout> 

no estoy muy contenta con ella, porque como se puede ver la etiqueta del icono de arriba a la derecha está oculto. Puedo hacer clic y desplazarme, pero eso no es lo que quiero. También el problema más grande es que cada GridView TIENE SU PROPIO SCROLLBAR. Nuevamente no es lo que quiero. Así que creo que me gustaría usar uno GridView para lograr esto. ¿Cómo puedo usar un GridView para tener iconos y luego mostrar el GroupName en el medio de los íconos? Sé que puedo crear un BaseAdapter para devolver diferentes tipos de Vistas, pero necesito tener un elemento que tome horizontalmente todo el espacio. es posible?

Editar:

supongo que una mejor pregunta es ¿cómo creo GridViews agrupados?

Respuesta

0

No estoy seguro de cómo está agregando elementos en este momento, pero podría usar un SimpleAdapter. Le permite suministrar un diseño xml y asignar elementos desde sus objetos de datos a lugares en el diseño xml. Hay una serie de tutoriales para usarlo si haces una búsqueda rápida.

+0

Eso es lo que estoy haciendo en este momento. Excepto que estoy usando un BaseAdapter. Sé que puedo devolver diferentes Vistas. Mi pregunta es cuando establezco el ancho para fill_parent, no funciona. –

+0

Lo siento, creo que no entendí bien su pregunta (aunque es probable que SimpleAdapter sea más fácil de usar que BaseAdapter). Usted dice que quiere un widget que admita múltiples secciones, cada una con un GridView. No creo que exista un widget como este, necesitarías crear el tuyo propio. ¿Cuántos íconos esperas mostrar? Si no le preocupa la reutilización de objetos que le proporciona GridView, probablemente pueda lograr fácilmente lo que desea con LinearLayout o TableLayout en ScrollView. –

+0

Después de una cuidadosa consideración, creo que esto no es posible. Tienes razón y necesito crear mi propio widget que no vale mi tiempo en este momento. –

Cuestiones relacionadas