Рады сообщить, что вышла стабильная версия Material 3 Adaptive 1.2.0.
В этой версии мы продолжили развивать основы предыдущих версий, расширив поддержку большего количества контрольных точек для классов размеров окон и новых стратегий автоматического размещения панелей отображения.
Что нового в Material 3 Adaptive 1.2.0
Этот стабильный выпуск основан на WindowManager 1.5.0 с поддержкой больших и очень больших контрольных точек. В нем представлены новые стратегии перекомпоновки и левитации для ListDetailPaneScaffold и SupportingPaneScaffold.
Новые классы размеров окон: большой и очень большой
В WindowManager 1.5.0 появились две новые контрольные точки для класса размера окна по ширине, чтобы поддерживать окна, которые больше, чем в классе размера развернутого окна. Чтобы включить контрольные точки Large (L) и Extra-large (XL), добавьте в вызов currentWindowAdaptiveInfo() в базе кода следующий параметр:
currentWindowAdaptiveInfo(supportLargeAndXLargeWidth = true)
Этот флаг позволяет библиотеке также возвращать контрольные точки L и XL, когда они необходимы.
Новые адаптивные стратегии: перекомпоновка и левитация
Расположение контента и панелей в окне – сложная задача, при решении которой нужно учитывать множество факторов, начиная с размера окна. В новой библиотеке Material 3 Adaptive есть две технологии, которые помогут вам без труда создать адаптивный макет.
При перекомпоновке панели переставляются, когда меняется размер окна или соотношение сторон. Вторая панель размещается сбоку от первой, если окно достаточно широкое, или под первой, если окно достаточно высокое. Этот метод также применяется, когда окно становится меньше: контент переносится вниз.
Перекомпоновка панели в зависимости от размера окна
Хотя перекомпоновка – отличный вариант во многих случаях, иногда контент нужно закрепить сбоку окна или разместить поверх него. Стратегия levitate не только закрепляет контент, но и позволяет настраивать такие функции, как перетаскивание, изменение размера и даже фоновый экран.
Перемещение панели сбоку в центр в зависимости от соотношения сторон
Обе стратегии flow и levitate можно объявить в конструкторе Navigator с помощью параметра adaptStrategies и применить к списку и подробным сведениям и вспомогательной панели scaffolds:
val navigator = rememberListDetailPaneScaffoldNavigator<Nothing>( adaptStrategies = ListDetailPaneScaffoldDefaults.adaptStrategies( detailPaneAdaptStrategy = AdaptStrategy.Reflow( reflowUnder = ListDetailPaneScaffoldRole.List ), extraPaneAdaptStrategy = AdaptStrategy.Levitate( alignment = Alignment.Center ) ) )
Чтобы узнать больше о том, как использовать эти новые адаптивные стратегии, посетите сайт Material и ознакомьтесь с полным примером кода на GitHub.
-
Новости о продуктахСегодня на Саммите для разработчиков Android мы объявляем о широкой доступности многих инструментов и API, которые помогут вам преодолевать повседневные трудности и дадут больше гибкости при создании отличных приложений для Android.
Matthew McCullough • Время на чтение: 4 минуты -
Новости о продуктахAndroid Studio Rabbit 2 теперь стабильна и готова к использованию в рабочей среде. В этом выпуске представлены ключевые функции, которые помогут вам в разработке, например Bring Your Own Agent, новые функции XR Emulator, обновление LeakCanary, новый инструмент управления навыками агента, код-ревью с помощью ИИ и многое другое.
Matthew Warner • Время на чтение: 3 минуты -
Новости о продуктахПриложения, предназначенные для предстоящего выпуска Android, больше не смогут напрямую записывать данные в контакты с помощью разрешения WRITE_CONTACTS.
Roxanna Aliabadi Walker • Время на чтение: 6 минут
Получайте еженедельную рассылку с последними новостями о разработке для Android.