2011-10-09 10 views
10

Tengo un problema con el diseño de vista de cuadrícula en Android. No puedo encontrar una solución para eliminar el espacio adicional en la vista de cuadrícula. Intenté muchas cosas (numColumns, columnWidth, stretchMode, gravedad) y consejos (de StackOverflow), pero nada funciona correctamente. Pasé casi 8 horas con este problema. Aquí es un código de vista de cuadrícula:GridView y exceso de relleno de espacio

<GridView 
     android:id="@+id/lookbook_gridview" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:listSelector="@null" 
     android:padding="0dip" 
     android:layout_margin="0dip" 
     android:verticalSpacing="0px" 
     android:horizontalSpacing="0px" 

     android:numColumns="auto_fit" 
     android:columnWidth="160px" 
     android:stretchMode="columnWidth" 
     android:gravity="center" 
     android:layout_gravity="center" 

     android:background="#000" 
     android:cacheColorHint="#000" 
     android:descendantFocusability="afterDescendants" 
     android:layout_alignParentTop="true" 
     android:layout_above="@id/buttons"> 
    </GridView> 

También probé para reducir espacio adicional programically:

private void setGridview() 
{ 
    GridView gridview = (GridView) findViewById(R.id.lookbook_gridview); 
    Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 

    int gridSize = display.getWidth(); 
    int count = gridSize/160; // image has 160x160 px 
    int colWidth = (gridSize/count) - PADDING; 

    gridview.setColumnWidth(colWidth); 
    gridview.setNumColumns(count); 
} 

Pero funciona sólo en mi HTC Desire (derecha), pero el emulador (izquierda) con la misma resolución de pantalla y la misma versión de API; no está funcionando.

enter image description here

¿Alguien conoce, cómo configurar imágenes en gridview sin ningún relleno especial o espacio para trabajar con éxito con todas las resoluciones y dispositivos?

+0

Ver mi respuesta en [este] [1] hilo, puede ser de ayuda. [1]: https://stackoverflow.com/questions/6876861/removing-the-extra-padding-in-a-gridview-in-android/27321360#27321360 –

Respuesta

20

para resolver mi problema he usado esta GridView:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/MyGrid" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="0dp" 
    android:verticalSpacing="2dp" 
    android:horizontalSpacing="2dp" 
    android:scrollingCache="true" 
    android:smoothScrollbar="true" 
    android:clipChildren="true" 
    android:alwaysDrawnWithCache="true" 
    android:numColumns="auto_fit" 
    android:columnWidth="100dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center_horizontal" 
    android:background="#000000"> 
</GridView> 

Lo más importante es la propiedad clipChildren.

+4

está fijando clipChildren necesarias sin embargo? Los documentos dicen que su valor predeterminado es verdadero http://developer.android.com/reference/android/view/ViewGroup.html#attr_android:clipChildren – roarster

Cuestiones relacionadas