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

Material 3 Adaptive 1.2.0 стабилен.

2 минуты чтения
Rob Orgiu
Инженер по связям с разработчиками

Мы рады сообщить, что Material 3 Adaptive 1.2.0 теперь стабилен!

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

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

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

Новые категории размеров окон: Большие и Очень большие.

newwindow.png


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

currentWindowAdaptiveInfo(supportLargeAndXLargeWidth = true)

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

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

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

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

материал.jpg

Изменение расположения элементов в панели в зависимости от размера окна.

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


материал2.jpg

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

Стратегии flow и levitate можно объявить внутри конструктора Navigator с помощью параметра adaptStrategies, и обе стратегии могут применяться к scaffolds list-detail и поддерживающим панелям:

val navigator = rememberListDetailPaneScaffoldNavigator<Nothing>(
        adaptStrategies = ListDetailPaneScaffoldDefaults.adaptStrategies(
            detailPaneAdaptStrategy = AdaptStrategy.Reflow(
                reflowUnder = ListDetailPaneScaffoldRole.List
            ),
            extraPaneAdaptStrategy = AdaptStrategy.Levitate(
                alignment = Alignment.Center
            )
        )
    )


Чтобы узнать больше о том, как использовать эти новые адаптивные стратегии, посетите веб-сайт Material и ознакомьтесь с полным примером кода на GitHub.

    Автор:

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