recyclerview - grid layout android xml
Soporte de Grid Layout en la API de Android 10 (3)
Desarrollé una aplicación con API objetivo como 15. El diseño incluye un diseño de cuadrícula. Ahora cuando estoy cambiando la API de Target a 10, tengo problemas con el diseño de la cuadrícula y otro elemento ''espacio''. Eclipse me pide que descargue una biblioteca de soporte para 2.3.3, lo cual hice ... Pero aún tengo el problema.
Otra alternativa es la implementación compatible con versiones anteriores de terceros:
Esto es compatible con el nivel 3 de la API, si necesita ir muy atrás, y también incluye el widget Espacio.
Si utiliza Android Studio, una vez que haya descargado la biblioteca de soporte (como se mencionó @MH.), Debe usar File->Import Module...
, luego seleccione la ubicación del soporte de GridLayout, que para mí se encuentra aquí: <sdk_folder>/extras/android/support/v7/gridlayout
.
A continuación, en lugar de usar <Gridlayout>
en su archivo de diseño xml, usa <android.support.v7.widget.GridLayout>
. Aquí hay un ejemplo:
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:useDefaultMargins="true"
app:alignmentMode="alignBounds"
app:columnOrderPreserved="false"
app:columnCount="4"
>
Los elementos en el diseño harán referencia a la app
lugar de a android
para las propiedades de GridLayout como se ve arriba y en los elementos secundarios:
<TextView
android:textSize="32dip"
app:layout_columnSpan="4"
app:layout_gravity="center_horizontal"
/>
Finalmente, la referencia de la biblioteca de soporte GridLayout se debe agregar a la sección de dependencies
de /src/build.gradle
:
dependencies {
compile ''com.android.support:appcompat-v7:+''
compile ''com.android.support:gridlayout-v7:+''
}
GridLayout
ha sido respaldado para ser compatible con API de nivel 7 y superior. Es (algo así como) parte de la biblioteca de soporte. Después de descargar la biblioteca de soporte, encontrará un proyecto de biblioteca Android en su carpeta sdk local ubicada en:
<sdk_folder>/extras/android/compatibility/v7/gridlayout
Configúralo como una dependencia del proyecto en el que estás trabajando. Después de eso, deberá cambiar las referencias a lo largo de su proyecto de la versión de nivel 15 a esta compatibilidad con el fin de admitir dispositivos pre-ICS. En los archivos de diseño, cambie su xml de GridLayout a android.support.v7.widget.GridLayout. El uso debe ser similar, si no idéntico.
Respecto al widget Space
: no he usado este (todavía), pero parece ser algo que podría ser reemplazado ya sea configurando margen / relleno en las vistas existentes o agregando su propia View
genérica que es completamente transparente.