Intereting Posts
Как бы вы улучшили Dalvik? Виртуальная машина Android Android strings.xml Лучшие практики? Фильтрация Logcat Журналы в командной строке Размер значка ShareAction на ActionBar с ShareActionProvider-v7 Отправить SMS с помощью сервиса adb shell call isms Android 4.1.2 Возможно ли создать ссылку «share on Facebook», которая откроет собственное приложение Facebook на Android / iOS / mobile вместо диалога веб-ресурса? Ничья постоянно вызывается в моем наложении карты на андроид Загрузка значения измерения из res / values ​​/ dimension.xml из исходного кода Android: центральная сетка горизонтально Интеграция моего приложения с контактом Как работают платежи NFC? Как быстро проверить, доступен ли сервер URL-адресов Преобразование массива байтов NV21 в растровый читаемый формат Сохранение пользовательского интерфейса при изменении ориентации – onSaveInstanceState не работает, как ожидалось, если сохранить фрагмент Как обернуть сайт в телефонном приложении?

GridLayout выплескивает журналы «отладочного уровня» с несогласованными ограничениями

Я использую GridLayout в течение нескольких недель, и я заметил, что когда я звоню

gridLayout.requestLayout() 

Он выплескивает следующее сообщение уровня отладки в 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. 

Я просмотрел источник GridLayout, чтобы попытаться выяснить возможную причину того, почему «противоречия противоречивы», но я не смог понять это.

Тот факт, что эти сообщения появляются, – это то, о чем я должен беспокоиться? Я не вижу никаких проблем с тем, как все складывается. У меня есть GridLayout во Фрагментах, которые загружаются как страницы в ViewPager, поэтому я, когда пользователь прокручивает страницы, которые я вижу выше в LogCat, несколько раз.

Solutions Collecting From Web of "GridLayout выплескивает журналы «отладочного уровня» с несогласованными ограничениями"

Из источника GridLayout :

Вариант Bellman-Ford – модифицирован для уменьшения типичного времени работы от O(N^2) до O(N)

GridLayout преобразует свои требования в систему линейных ограничений вида:

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

Где x[i] – переменные, а a[k] – постоянные.

Например, если вместо переменных были помечены x , y , z мы могли бы иметь:

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

Это частный случай проблемы линейного программирования, который, в свою очередь, эквивалентен задаче кратчайших путей с одним источником на орграфе, для которого алгоритм O(n^2) Беллмана-Форда является наиболее часто используемым общим решением.

Он имеет метод solve который использует линейное программирование, чтобы гарантировать согласованность ограничений, которые он должен удовлетворить, учитывая его конфигурацию. Вероятно, вы можете улучшить производительность макета, если выясните, какая конфигурация связана с ограничением x5 - x4 < 221 и удалите его. Тогда решателю не придется решать, что он не может быть удовлетворен и удалить его сам.

У меня была такая же проблема, и я обнаружил, что я пропустил добавление пространства имен XML. Исправлено так:

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

Затем был изменен префикс атрибутов, используемых совместимостью GridLayout с пространством имен XML:

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

И это помогло … Надеюсь, это вам тоже поможет.