Intereting Posts
Как достичь более плавного неопределенного уровня прогресса, используемого в приложении Gmail для Android Редактор макета Android Studio не может отображать пользовательские представления Может ли мой сервер получать подтверждение от GCM, как только сообщение отправлено в приложение Android? Воспроизведение музыки BG через работу в Android Повторяющиеся файлы, включая масляный нож с градиентом Как очистить кеш-память Android Android Notification перезапускает приложение, но хочет возобновить Выровняйте два TextViews, один из них слева направо, в ListView, не растягивая фоны Отменить загрузку в WebView на Android Пользовательская позиция подсказки в поле «Редактировать текст». Свойства Android, которые можно анимировать с помощью ObjectAnimator Получите регистрационный идентификационный номер GCM без отправки сообщения Mac Ошибка Создать проект Android – «Ошибки запускают« Менеджер ресурсов Android »в проекте" Samsung S4 history.back не работает в первый раз Android не получает обновления местоположения, когда экран заблокирован

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

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