Макеты Flow, Layer и Motion
Вступление
ConstraintLayout
- одна из мощных библиотек Jetpack, которая позволяет разработчикам быстро создавать сложный и отзывчивый пользовательский интерфейс с помощью интерактивных инструментов, встроенных в Android Studio, для предварительного просмотра вашего XML.
Одним из значительных преимуществ ConstraintLayout
является то, что мы можем создавать сложный пользовательский интерфейс с плоской иерархией представлений (без вложенных групп представлений). В результате отображается меньшее количество слоев, что увеличивает производительность.
Несколько ключевых особенностей ConstraintLayout
- Мы можем расположить взгляды относительно друг друга.
- Мы можем центрировать взгляды, используя предвзятость или другие взгляды.
- Мы можем указать соотношение сторон изображения.
- Мы можем группировать и связывать просмотры.
Несколько вспомогательных объектов
Вспомогательные объекты - это объекты, которые не видны пользователю, но полезны для согласования взглядов разработчиков.
Guideline
Barrier
Placeholder
Чтобы узнать больше о ConstraintLayout
v1.0, прочтите эту статью.
ConstraintLayout 2.0
Хватит уроков истории. Пришло время интегрировать v2.0 из ConstraintLayout
в ваш проект. Для этого добавьте следующую строку под тегом зависимостей в build.gradle
файле.
implementation “androidx.constraintlayout:constraintlayout:2.0.1”
Эта версия добавляет в ConstraintLayout
несколько новых функций; давайте без промедления начнем копаться в них.
Поток
Flow
- это новый виртуальный макет, добавленный в v2, аналогичный группе в v1. Это комбинация Chain
и Group
с особыми полномочиями. Проще говоря, Flow
связывает представления с динамическим размером во время выполнения.
Подобно Group
, Flow
также принимает идентификаторы эталонных представлений и создает поведение Chain
. Одним из жизненно важных преимуществ, которые предлагает Flow
, является wrapMode
(способ настройки представлений при их переполнении). По умолчанию у нас есть три режима на выбор: none
, aligned
и chain
.
wrap none
: Создает цепочку из указанных представленийwrap chain
: Создает несколько цепочек (одну за другой), только если указанные представления не подходятwrap aligned
: аналогичноwrap chain
, но выравнивает представления, создавая строки и столбцы.
Эта функция кажется простой, но мы можем создавать схемы потоков, используя ConstraintLayout
2.0. Нам больше не нужно использовать библиотеки потокового макета.
До ConstraintLayout
2.0 нам приходилось вычислять оставшееся пространство после рендеринга каждого вида, чтобы убедиться, что следующий вид умещается туда, иначе мы должны выровнять его в следующей строке. Но теперь нам нужно использовать Flow
.
Чтобы узнать больше о Flow
, прочтите официальную документацию.
Слой
Layer
- новый помощник в ConstraintLayout
2.0, похожий на Guideline
s и Barrier
s. Мы можем создать виртуальный слой, например группу, с несколькими видами, на которые есть ссылки. После ссылки на представления мы можем применить преобразования к этим представлениям, используя Layer
.
Он похож на помощник Group
, в котором мы можем связать несколько представлений и выполнять базовые действия, такие как видимость (видимая и скрытая). С Layer
мы можем перейти на новый уровень. Мы можем применять анимацию к rotate
, translate
или scale
множественным представлениям вместе.
MotionLayout
MotionLayout
- это подкласс ConstraintLayout
, который включает в себя все его выдающиеся функции и полностью декларативный, с возможностью реализации сложных переходов в XML. Он обратно совместим с API уровня 14, что означает, что он охватывает 99% случаев использования.
Новый редактор MotionLayout
в Android Studio 4.0 упрощает работу с MotionLayout
. Он предоставляет причудливую среду для реализации переходов, MotionScenes
и т. Д.
Чтобы узнать больше о MotionLayout
, прочтите эту статью.
На этом пока все, надеюсь, вы узнали что-то полезное, спасибо за чтение.