Intereting Posts
Активность просочилась IntentReceiver, которая была первоначально зарегистрирована здесь. Вам не хватает приглашения на unregisterReceiver ()? Получить текущий видимый текст в текстовом режиме Класс java.util.Map имеет общие параметры типа, вместо этого используйте GenericTypeIndicator Как получить цвет на месте (или пикселе) изображения на сенсорном событии в android Гиперссылка в Android Ресурсы служб Google Play не найдены. Проверьте конфигурацию проекта, чтобы включить ресурсы Отказ коренного кода на libwebviewchromium.so Как читать / писать строки из файла на Android Использование TouchScreens для управления игрой Уточнить соединения Firebase Как выровнять переключатели справа от связанного текста? Webroll scrollTo не работает Можно ли отделить потоки пользовательского интерфейса WebView и HTTP? Qt5 QGeoPositionInfoSource :: createDefaultSource () падает на Android 5.0 Как получить цвет акцента программным путем?

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" ... /> 

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