Pregunta

Tengo un GridView básica que he configurado de la siguiente manera:

<?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/MainMenuGridview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:columnWidth="90dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
    />

Todo funciona bien hasta que añadir un fondo ninepatch. Una vez que agrego la imagen de fondo como esto:

 <?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/MainMenuGridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:background="@drawable/mainbackground"
/>

Me rompe el gridview. En lugar de mostrar las columnas 3-4 (dependiendo de la resolución de la pantalla y orientación) todos los iconos en la pantalla gridview en una sola columna en la esquina superior izquierda. Además, sólo dos a la vez se muestran y que tenga que desplazarse hacia abajo para ver el resto. Sospecho que el gridview se está obligado por las dimensiones del logotipo del centro de la ninpatch, pero no estoy seguro.

Mi ninepatch tiene un área pequeña en el centro con un logotipo que quiero que se mostrará sin ningún sesgo. El resto del fondo es una pequeña pendiente que ocupa el resto de la pantalla. ¿Alguna idea sobre lo que está causando esto?

¿Fue útil?

Solución

Parece que tienes el acolchado definidas (las líneas en la parte inferior y derecha de la ninepatch)? Trate de deshacerse de ellos, por lo que sólo tiene área de contenido definido (las líneas en la parte superior ya la izquierda)

Otros consejos

He tenido un problema similar. Por desgracia, me quieren para utilizar el relleno en mi caso. Lo que encontré es que el orden de las llamadas de método en GridLayout parece hacer una diferencia. Mientras que llamé setPadding () después de setBackgroundResource (), todo está bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top