vacia samsung moto memoria lleno llena liberar interno interna insuficiente esta espacio como celular almacenamiento android gridview selector margins

android - samsung - mi celular dice memoria llena y esta vacia



Imperfección GridView de Android, cómo eliminar espacio en blanco adicional a la derecha (5)

Tengo un calendario basado en GridView. Tengo el siguiente diseño XML con el selector establecido en nulo, así android:listSelector="@null" de acuerdo con los consejos que he recibido de este sitio. Ahora estoy obteniendo unos pocos píxeles de ancho a la derecha de GridView. ¿Por qué? He intentado todo lo que puedo pero aprovechar. Aquí está mi diseño XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/calendar" android:layout_width="fill_parent" android:layout_height="match_parent" android:horizontalSpacing="-1px" android:numColumns="7" android:stretchMode="columnWidth" android:gravity="center" android:verticalSpacing="-1px" android:listSelector="@null" > </GridView> </LinearLayout>

Lo que obtengo es esta imagen:


Intenta usar

android:layout_margin="0dp" android:padding="0dp"

También es posible que tenga ese espacio asignado para la barra de desplazamiento.
¿Y por qué tienes tu espacio vertical y horizontal con valores negativos?


Tuve el mismo problema, aunque en mi caso no tenía control sobre la instancia de GridView , así que no pude leer el ancho de la columna. Sin embargo, podría subclasificar su contenedor.
Esto no es muy ortodoxo, pero puede anular el método onMeasure y agregar algunos píxeles.
Algo como esto:

@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { final int RIGHT_MARGIN_OVERSIZE_DIP = 6; super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = this.getMeasuredWidth() int overSize = (int)((getResources().getDisplayMetrics().density*RIGHT_MARGIN_OVERSIZE_DIP) + 0.5f); widthMeasureSpec = MeasureSpec.makeMeasureSpec(width + overSize, MeasureSpec.getMode(widthMeasureSpec)); super.onMeasure(widthMeasureSpec, heightMeasureSpec); }


en mi caso tuve espaciado horizontal como 1dp

android:horizontalSpacing="1dp"

entonces, para resolver esto, puse el relleno correcto como -1dp

android:paddingRight="-1dp"

a pesar de que esperaba obtener un espacio en el lado izquierdo debido a esto, pero funcionó correctamente


grid.setColumnWidth(grid.getColumnWidth()+1);

Esto obtendrá el ColumnWidth actual y le agregará 1 píxel. Recuerde usar esto después de onCreateView, ya que la grilla necesita ser inicializada antes de eso.

Además, su vista de cuadrícula debe usar match_parent (alto y ancho). La imagen / diseño en la columna también debe ser match_parent.


Este espacio se debe a un cálculo imperfecto para cada fila de su grilla. Por ejemplo, el ancho de su dispositivo es de 320 px y tiene 7 filas, pruebe cualquier cálculo que cumpla con 320 px. Si el ancho de cada celda es 45.71428571428571 px, solo entonces se puede reducir.

Otra opción

aplicar la propiedad android: gravity = "center" en tu cuadrícula para que los espacios se dividan por igual de izquierda a derecha