GridLayout spitting out “inconsistent constraint” debug-level logs

白昼怎懂夜的黑 提交于 2019-11-30 10:55:53
Dandre Allison

From the GridLayout source:

Bellman-Ford variant - modified to reduce typical running time from O(N^2) to O(N)

GridLayout converts its requirements into a system of linear constraints of the form:

x[i] - x[j] < a[k]

Where the x[i] are variables and the a[k] are constants.

For example, if the variables were instead labeled x, y, z we might have:

x - y < 17
y - z < 23
z - x < 42

This is a special case of the Linear Programming problem that is, in turn, equivalent to the single-source shortest paths problem on a digraph, for which the O(n^2) Bellman-Ford algorithm the most commonly used general solution.

It has a solve method that is using linear programming to guarantee the consistency of the constraints it has to satisfy, given its configuration. You can probably improve your layout performance if you figure out which configuration is associated with the constraint x5 - x4 < 221 and remove it. Then the solver won't have to solve that it can't be satisfied and remove it itself.

I had the same issue and I found that I missed to add XML namespace. Corrected it in this way:

<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>

Then changed prefix of attributes used by compatibility GridLayout with XML namespace too:

<ImageButton android:id="@+id/btnSentence"
    grid:layout_row="0"
    grid:layout_column="0"
    ...
/>

and it helped... Hope it helps you too.

I made the issue go away by using wrap_content for the GridLayout's width instead of match_parent, I guess it is one less constraint for it to worry about.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!