android


GridLayout spitting out “inconsistent constraint” debug-level logs


I've been using GridLayout for a few weeks now and I've noticed that when I call
gridLayout.requestLayout()
it spits out the following debug-level message in LogCat:
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.
I've looked through the source of GridLayout to try and find out the possible reason as to why the "contraints are inconsistent", but I haven't been able to figure it out.
The fact that these messages are appearing - is this something that I should be concerned about? I don't see any issues with the way things are being laid out. I have a GridLayout in Fragments that are loaded as the pages in a ViewPager so I as the user scrolls between the pages I see the above output in LogCat multiple times.
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.

Related Links

Play 360° video in Cordova app on Android and iOS
Different view design for different user in android
Android Google Maps V2 - is there a way to bring one Cluster in front of the other
Usage of Chris Banes' PhotoView on ViewGroup
Error: Source path does not exist: resources\android\icon\drawable-hdpi-icon.png
Realm no configuration change after removing PrimaryKey
TYPE_LINEAR_ACCELERATION Sensor values changes according to smartphone brand - model
Admob Ads within Textview
Android studio automatically detect wherer network or gps is needed
Action bar only shows one item next to search view
Android: Cannot Open Sqlite databse
Android debugging return to same place
Could not resolve symbol 'R' [duplicate]
dont work “input tap x y” with external app
layouts designed in sketch software doesnt match when implemented in android
BroadCast receiver not receiving incoming sms message

Categories

HOME
batch-file
go
gridview
facebook-oauth
fuelux
c++11
depth
sh
access
xbee
cublas
soa
gembox-spreadsheet
regular-language
android-json
angularfire2
boto3
nfs
mel
appcelerator-studio
datastage
ipmitool
eip
mongodb-csharp
intershop
sar
visual-studio-extensions
highstock
mount
android-sharedpreferences
quantlib
uitapgesturerecognizer
magento-1.8
boost-asio
eviews
anki
dst
record
android-sugarorm
sendbird
hunspell
sharding
baidu-map
raft
docfx
release
opensmpp
spring-mvc-test
postgresql-8.4
sharp-snmp
plr
congestion-control
tcc
procfile
datamaps
podscms
zenhub
custom-font
check-mk
bbpress
janus
vulcanize
macaulay2
clipboard.js
cda
html-to-pdf
halcon
realsense
blitline
toast
rewrite
jdi
cwrsync
google-refine
node-serialport
exceldatareader
theos
angular-gettext
post-commit-hook
metatrader5
mintty
spring-remoting
spring-3
dtmf
beaker-testing
kogrid
nebula
onload-event
bjyauthorize
booksleeve
intersect
uimanageddocument
workflow-services
lr
drawtobitmap
drupal-fivestar
lxr
glui
dsl-tools
entitykey
wcf-proxy

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App