Новости о продуктах

Стабильная версия Material 3 Adaptive 1.2.0

Время на чтение: 1 минута
Посмотреть профиль Роба Оргиу
Rob Orgiu Developer Relations Engineer

Рады сообщить, что вышла стабильная версия Material 3 Adaptive 1.2.0.

В этой версии мы продолжили развивать основы предыдущих версий, расширив поддержку большего количества контрольных точек для классов размеров окон и новых стратегий автоматического размещения панелей отображения.

Что нового в Material 3 Adaptive 1.2.0

Этот стабильный выпуск основан на WindowManager 1.5.0 с поддержкой больших и очень больших контрольных точек. В нем представлены новые стратегии перекомпоновки и левитации для ListDetailPaneScaffold и SupportingPaneScaffold. 

Новые классы размеров окон: большой и очень большой

newwindow.png


В WindowManager 1.5.0 появились две новые контрольные точки для класса размера окна по ширине, чтобы поддерживать окна, которые больше, чем в классе размера развернутого окна. Чтобы включить контрольные точки Large (L) и Extra-large (XL), добавьте в вызов currentWindowAdaptiveInfo() в базе кода следующий параметр:

currentWindowAdaptiveInfo(supportLargeAndXLargeWidth = true)

Этот флаг позволяет библиотеке также возвращать контрольные точки L и XL, когда они необходимы.

Новые адаптивные стратегии: перекомпоновка и левитация

Расположение контента и панелей в окне – сложная задача, при решении которой нужно учитывать множество факторов, начиная с размера окна. В новой библиотеке Material 3 Adaptive есть две технологии, которые помогут вам без труда создать адаптивный макет.

При перекомпоновке панели переставляются, когда меняется размер окна или соотношение сторон. Вторая панель размещается сбоку от первой, если окно достаточно широкое, или под первой, если окно достаточно высокое. Этот метод также применяется, когда окно становится меньше: контент переносится вниз.

material.jpg

Перекомпоновка панели в зависимости от размера окна

Хотя перекомпоновка – отличный вариант во многих случаях, иногда контент нужно закрепить сбоку окна или разместить поверх него. Стратегия levitate не только закрепляет контент, но и позволяет настраивать такие функции, как перетаскивание, изменение размера и даже фоновый экран.


 

material2.jpg

Перемещение панели сбоку в центр в зависимости от соотношения сторон

Обе стратегии 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.

Автор:
Продолжить чтение