GridLayout escupiendo "coherencia inconsistente" registros de nivel de depuración
He estado usando GridLayout por unas pocas semanas y he notado que cuando llamo
gridLayout.requestLayout()
Escupe el siguiente mensaje de nivel de depuración en LogCat:
- Compatibilidad con GridLayout - ClassNotFoundException: No encontró la clase "android.support.v7.widget.GridLayout"
- IntelliJ y android.support.v7.widget.GridLayout
- GridView VS GridLayout en Aplicaciones de Android
- Cómo los elementos de GridLayout provienen del adaptador (lista / imagen) en la aplicación para Android
- Android, Horizontal y Vertical Scroll para GridLayout
D/android.widget.GridLayout(14048): horizontal constraints: x5 - x0 > 1115, x5 - x4 < 221, x4 - x3 < 221, x3 - x2 < 221, x2 - x1 < 221, x1 - x0 < 221 are inconsistent; permanently removing: x5 - x4 < 221.
He mirado a través de la fuente de GridLayout para tratar de averiguar la posible razón de por qué los "contraints son inconsistentes", pero no he sido capaz de averiguarlo.
El hecho de que estos mensajes están apareciendo – es algo que me debería preocupar? No veo ningún problema con la forma en que las cosas están siendo establecidas. Tengo un GridLayout en Fragmentos que se cargan como las páginas en un ViewPager así que mientras que el usuario se desplaza entre las páginas veo la salida antedicha en LogCat varias veces.
- Horizontalmente las vistas de centro dentro de Android GridLayout
- GridLayout vs TableLayout
- Eclipse dando un error de android.support.v7.widget.GridLayout falló al instanciar
- Cuadrícula con bordes
- Establecer rowSpan o colSpan de un hijo de un GridLayout por programa?
- Cómo agregar android.support.v7.widget.GridLayout en intelliJidea?
- ¿Cómo hacer Android GridLayout compatible con la versión anterior?
- SetGravity para GridLayout no funciona
De la fuente GridLayout
:
Variante de Bellman-Ford – modificada para reducir el tiempo de funcionamiento típico de O(N^2)
a O(N)
GridLayout convierte sus requerimientos en un sistema de restricciones lineales de la forma:
x[i] - x[j] < a[k]
Donde las x[i]
son variables y las a[k]
son constantes.
Por ejemplo, si las variables fueron etiquetadas x
, y
, z
podríamos tener:
x - y < 17 y - z < 23 z - x < 42
Este es un caso especial del problema de la Programación Lineal que, a su vez, es equivalente al problema de las trayectorias más cortas de una fuente en un digrafo, para el cual el algoritmo de Bellman-Ford O(n^2)
la solución general más comúnmente utilizada.
Posee un método de solve
que utiliza la programación lineal para garantizar la coherencia de las restricciones que tiene que satisfacer, dada su configuración. Probablemente puede mejorar el rendimiento del diseño si descubre qué configuración está asociada con la restricción x5 - x4 < 221
y quítela. Entonces el solucionador no tendrá que resolver que no puede ser satisfecho y eliminarlo por sí mismo.
Tuve el mismo problema y descubrí que no podía agregar espacio de nombres XML. Corregido de esta manera:
<android.support.v7.widget.GridLayout xmlns:grid="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> ... </android.support.v7.widget.GridLayout>
A continuación, cambió el prefijo de los atributos utilizados por la compatibilidad GridLayout con el espacio de nombres XML también:
<ImageButton android:id="@+id/btnSentence" grid:layout_row="0" grid:layout_column="0" ... />
Y ayudó … Espero que te ayude también.