Составьте Материал 3 Адаптивный

Используйте адаптивную библиотеку Material 3 для создания адаптивных пользовательских интерфейсов, которые будут автоматически адаптироваться в соответствии с текущими конфигурациями окон, такими как классы размеров окон или положения устройств. Библиотека предоставляет как реализации scaffold по умолчанию, так и необходимые компоновочные блоки для создания собственных пользовательских интерфейсов.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
20 мая 2025 г. 1.1.0 - - 1.2.0-альфа06

Объявление зависимостей

Чтобы добавить зависимость от compose, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.

Добавьте зависимости для необходимых артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06"
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06"
}

Котлин

dependencies {
    implementation("androidx.compose.material3.adaptive:adaptive:1.2.0-alpha06")
    implementation "androidx.compose.material3.adaptive:adaptive-layout:1.2.0-alpha06"
    implementation "androidx.compose.material3.adaptive:adaptive-navigation:1.2.0-alpha06"
}

Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

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

Создать новый выпуск

Более подробную информацию смотрите в документации Issue Tracker .

Составьте Material3 Адаптивная версия 1.2

Версия 1.2.0-альфа06

20 мая 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha06 . Версия 1.2.0-alpha06 содержит эти коммиты .

Новые возможности

  • Функции расчета директивы каркаса панели по умолчанию теперь поддерживают классы размеров ширины окна L и XL.

Изменения API

  • Сделайте так, чтобы Modifier.paneExpansionDraggable предоставлял семантику доступности по умолчанию и повысил стабильность соответствующих API. ( Idb818 )
  • Поддержка перетаскивания для изменения размера с левитирующими панелями ( Idadd3 )
  • Опорные сетки для левитирующих панелей ( I9b091 )

Версия 1.2.0-альфа05

7 мая 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha05 . Версия 1.2.0-alpha05 содержит эти коммиты .

Новые возможности

  • Адаптивные макеты Material3 теперь поддерживают стратегии Levitated Adapt, которые могут превратить панель в плавающее всплывающее окно.

Изменения API

  • Сделать текущие функции размера окна поддерживающими многоплатформенность ( Ie4172 )
  • Ввести движения панелей для левитирующих панелей ( Ic9dc3 )
  • Внедрить стратегию левитации для адаптации ( I1ba7c )

Исправление ошибок

  • Исправлено использование области действия сопрограммы в адаптивных образцах ( 7631016 )

Версия 1.2.0-альфа04

23 апреля 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит эти коммиты .

Новые возможности

  • Стратегии переформатирования теперь доступны с ListDetailPaneScaffold и SupportingPaneScaffold , которые переформатируют связанную панель в рамках однопанельной настройки макета.

Изменения API

  • Добавить сохраняемый держатель состояния в PaneScaffoldScope ( Id9299 )
  • Внедрить стратегию переформатирования для адаптации ( I75c6a )

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой панели не анимировались при первом переходе. ( Ib0415 )
  • Исправлена ​​ошибка, из-за которой не работали предпочтительные высоты. ( I1913b )
  • Исправлена ​​ошибка, из-за которой директива scaffold обновлялась некорректно. ( 0403ab )

Версия 1.2.0-альфа03

9 апреля 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой маркер перетаскивания отображался неправильно на макете с одной панелью. ( 806e443 )

Обновления зависимостей

  • Эта библиотека теперь ориентирована на уровень языка Kotlin 2.0 и требует KGP 2.0.0 или более поздней версии. ( Idb6b5 )

Версия 1.2.0-альфа02

26 марта 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha02 . Версия 1.2.0-alpha02 содержит эти коммиты .

Версия 1.2.0-альфа01

12 марта 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты .

Изменения API

  • Введен модификатор PaneScaffoldScope.preferredHeight для разработчиков, чтобы предоставить предпочтительную высоту панелей, которая будет применяться с новыми стратегиями адаптации, которые мы собираемся представить. ( I957dd , b/220960090 )
  • Переименуйте типы ComponentOverride в Override , а типы ComponentOverrideContext в OverrideScope . ( Id973c )
  • Переименуйте некоторые методы переопределения компонентов. ( I222b3 )

Составьте Материал3 Адаптивная Версия 1.1

Версия 1.1.0

12 марта 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0 . Версия 1.1.0 содержит эти коммиты .

Важные изменения с версии 1.0.0

  • ListDetailPaneScaffold и SupportingPaneScaffold теперь поддерживают функцию расширения панелей — пользователи могут перетаскивать элементы, чтобы изменить разделение панелей по умолчанию в макете с двумя панелями; разработчики также могут изменять разделение панелей во время выполнения, изменяя недавно представленный PaneExpansionState .
  • Поддержка предиктивного бэка по умолчанию теперь доступна с NavigableListDetailPaneScaffold и NavigableSupportingPaneScaffold . Вы также можете использовать ThreePaneScaffoldPredictiveBackHandler для предоставления предиктивной бэка с вашими собственными реализациями трехпанельного скаффолда.
  • Теперь вы можете настраивать движения панелей во время переключения панелей, предоставляя различные EnterTransition и ExitTransition для AnimatedPane .

Версия 1.1.0-rc01

26 февраля 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит эти коммиты .

Исправление ошибок

  • Отключить трехпанельный предиктивный обратный масштаб ( ab6fd0b )

Версия 1.1.0-beta02

12 февраля 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-beta02 . Версия 1.1.0-beta02 содержит эти коммиты .

Изменения API

  • Изменен способ установки isPredictiveBackInProgress в функциях анимации MutableThreePaneScaffoldState для сохранения согласованности состояния. ( Idc97f )

Исправление ошибок

  • Поведение по умолчанию для NavigableListDetailPaneScaffold и NavigableSupportingPaneScaffold было изменено на PopUntilScaffoldValueChange для обеспечения согласованности с остальной частью библиотеки. ( I873f0 )
  • Установите правильный порядок обхода доступности каркасов панелей. ( 67d030 )
  • Исправлена ​​ошибка, из-за которой не сохранялись состояния содержимого панели. ( 88b0ff )
  • Поддержка альтернативных действий по обеспечению доступности вместо перетаскивания. ( 28266d )
  • Объявить текущее разделение панели после его изменения. ( 0c3a80 )

Версия 1.1.0-beta01

29 января 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит эти коммиты .

Изменения API

  • Ввести фабричные функции для создания якорей расширения панели смещенного типа от начала и конца соответственно. ( I2eb21 )
  • Закройте интерфейс PaneMotion и удалите его методы перехода по умолчанию. ( Ifc4c7 )
  • Внедрить API для получения текущего якоря и анимации якоря. ( Icf95d )
  • Ввести API-интерфейсы специальных возможностей для расширения панелей ( Icc669 )
  • Измените тип PaneScaffoldParentData.preferredWidth на DP. ( Id98ee )

Версия 1.1.0-альфа09

15 января 2025 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha09 . Версия 1.1.0-alpha09 содержит эти коммиты .

Изменения API

  • Добавить и использовать новую экспериментальную аннотацию ExperimentalMaterial3AdaptiveComponentOverrideApi . ( Id45aa )
  • Скрыть ThreePaneScaffoldHorizontalOrder.toLtrOrder . ( I6f8d2 )
  • ThreePaneScaffoldPredictiveBackHandler был опубликован. ( I1a995 , b/370543873 )
  • Добавлено свойство isPredictiveBackInProgress в ThreePaneScaffoldState . ( I1a995 , b/370543873 )
  • Создать переопределяющий механизм для AnimatedPane для поддержки реализаций боковой загрузки для различных форм-факторов. ( Id7622 )

Исправление ошибок

  • Исправлена ​​проблема, когда направление осадки не имеет якорей. ( df8257d )

Версия 1.1.0-альфа08

12 декабря 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha08 . Версия 1.1.0-alpha08 содержит эти коммиты .

Изменения API

  • Ввести функцию currentWindowDpSize . ( I99125 , b/296300441 )
  • Откройте PaneScaffoldParentData и ThreePaneScaffoldHorizontalOrder.toLtrOrder() ( I2d6b7 )
  • Удалите PaneScaffoldMotionScope и превратите его в поле под PaneScaffoldTransitionScope . Также переименуйте его в PaneScaffoldMotionDataProvider и удалите доступ к базовой структуре данных PaneMotionData — вместо этого предоставьте методы получения и циклирования для доступа к данным. ( Id8884 )
  • Создать механизм переопределения для ThreePaneScaffold для поддержки реализаций боковой загрузки для различных форм-факторов. ( I5280f )
  • Делает состояние расширения панели нулевым по умолчанию ( Ia65f8 , b/376394520 )

Версия 1.1.0-альфа07

13 ноября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha07 . Версия 1.1.0-alpha07 содержит эти коммиты .

Изменения API

  • Удалить реализацию ручки перетаскивания в адаптивной библиотеке и поощрять людей использовать ее версию M3. И в то же время ввести модификатор, чтобы предоставить возможность перетаскивания расширения панели для предоставленной компонуемой ручки перетаскивания. Также скрыть DraggableState как деталь реализации, чтобы мы могли изменить ее позже, если потребуется. ( Ib50cd )
  • Перемещает точку входа настройки движения панели из функций scaffold в AnimatedPane в соответствии с отзывами UXR. ( I10f72 )
  • Ввести поддержку Fling и пользовательскую спецификацию анимации для расширения панели. ( Ie207d , b/362584341 )

Исправление ошибок

  • Исправление проблем с прогнозируемыми возвратами при отмене. ( 36a3e0a ), ( b/369899645 )

Версия 1.1.0-альфа06

30 октября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha06 . Версия 1.1.0-alpha06 содержит эти коммиты .

Изменения API

  • Добавьте FloatRange в PaneScaffoldTransitionScope.motionProgress . ( Iac0dd )
  • Измените тип параметров навигатора на универсальные типы в навигационных каркасах. ( I1da6e )

Версия 1.1.0-альфа05

16 октября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha05 . Версия 1.1.0-alpha05 содержит эти коммиты .

Изменения API

  • Ввести класс спецификаций анимации для обеспечения более последовательного поведения движения и возможности расширения в будущем. ( I2d3cc )
  • Укажите тип движения и переименуйте currentXXXXX в PaneMotionData в originXXXX. ( I7c61a )

Версия 1.1.0-альфа04

2 октября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит эти коммиты .

Новые возможности

  • Добавлена ​​поддержка прогнозируемого возврата в NavigableListDetailPaneScaffold и NavigableSupportingPaneScaffold . ( I4dc21 , b/359616816 )

Изменения API

  • Добавлен ThreePaneScaffoldState в ThreePaneScaffoldNavigator . Методы навигации были suspend для поддержки навигации с анимацией. Добавлен seekBack для поддержки частичных состояний навигации (например, предиктивный возврат). ( I5a651 , b/359616816 )
  • Добавлен MutableThreePaneScaffoldState для управления переходом между значениями scaffold. Существующий ThreePaneScaffoldState был сделан доступным только для чтения. ( Idb3c6 )
  • Раскрыть реализации движения панелей по умолчанию ( I95a7b )
  • Включить установку начальной привязки состояния расширения панели ( Ie41b3 , b/362350560 )

Исправление ошибок

  • Обеспечить минимальный размер сенсорной области 48x48dp для маркера перетаскивания ( 7ce6635 , b/366018217 )
  • Восстановить закрепленное положение после изменения конфигурации ( 3c9fc6b , b/362353672 )

Версия 1.1.0-альфа03

18 сентября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты .

Версия 1.1.0-альфа02

4 сентября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит эти коммиты .

Новые возможности

  • Настройка движения ( I0bf9c ), ( I80e66 ) поддерживается для производителей, чтобы изменять движения по умолчанию во время изменений состояния адаптивных скаффолдов. Производители могут выбирать из набора переходов входа и выхода по умолчанию или реализовывать чисто пользовательские переходы с информацией, предоставленной через новые области движения.
  • Реализовать анимацию затухания маркеров перетаскивания расширения панели ( 46e3c69 )
  • Сделать запомненное состояние PaneExpansionState сохраняемым ( 61ff76f )

Изменения API

  • Добавить отсутствующие APi расширения панели в каркасы ( Ic5bc0 )
  • ThreePaneScaffoldDestinationItem.content переименован в contentKey . Аргумент типа по умолчанию rememberListDetailPaneScaffoldNavigator и rememberSupportingPaneScaffoldNavigator изменен с Nothing на Any . ( I58749 )
  • Отметить ThreePaneScaffoldState как стабильный ( I64aec )
  • Сделать параметры маркера перетаскивания ограниченными ( Ic0aa2 )

Версия 1.1.0-альфа01

21 августа 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты .

Новые возможности

  • Внедрить поддержку расширения панелей адаптивных каркасов.

Изменения API

  • Представить API расширения панели для общественности ( I301d6 )
  • Введен ThreePaneScaffoldState для управления переходами значений панели. Добавлены перегрузки ListDetailPaneScaffold и SupportingPaneScaffold , которые принимают это состояние. ( I5db3b )
  • Ввести ключ расширения панели и интерфейс поставщика ключей ( Id621f )

Исправление ошибок

  • Исправлен неправильный расчет раздела при наличии исключенного шарнира. ( 9dfd483 )

Составьте Материал3 Адаптивная Версия 1.0

Версия 1.0.0

4 сентября 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0 . Версия 1.0.0 содержит эти коммиты .

Основные особенности 1.0.0

  • Однострочные компонуемые функции currentWindowSize() , collectFoldingFeaturesAsState() и currentWindowAdaptiveInfo() для получения необходимой информации об окне для адаптации приложений, например, размеров окон и функций сворачивания.
  • ListDetailPaneScaffold и SupportingPaneScaffold для предоставления двух канонических макетов Material3, которые будут автоматически адаптироваться в соответствии с различными конфигурациями окон. Эти два каркаса также полностью настраиваемы для удовлетворения различных потребностей производителей.
  • ThreePaneScaffoldNavigator и соответствующие ему функции запоминания rememberListDetailPaneScaffoldNavigator() и rememberSupportingPaneScaffoldNavigator() для предоставления навигационных решений в рамках адаптивного каркаса, который может отображать несколько пунктов назначения навигации одновременно, в отличие от обычной настройки «один пункт назначения за раз» в неадаптивном мире.
  • Стандартные встроенные анимации Material3 при изменении состояний адаптивных каркасов.

Версия 1.0.0-rc01

21 августа 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты .

Исправление ошибок

  • Исправлен неправильный расчет раздела при наличии исключенного шарнира. ( 9dfd483 )

Версия 1.0.0-beta04

26 июня 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta04 . Версия 1.0.0-beta04 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой при обновлении границ петель макет не обновлялся соответствующим образом. ( 71e9cf1 )

Версия 1.0.0-beta03

12 июня 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta03 . Версия 1.0.0-beta03 содержит эти коммиты .

Исправление ошибок

  • Исправлены сбои, вызванные неправильным разрешением зависимостей в beta02.

Версия 1.0.0-beta02

29 мая 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta02 . Версия 1.0.0-beta02 содержит эти коммиты .

Версия 1.0.0-beta01

14 мая 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты .

Версия 1.0.0-альфа12

1 мая 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит эти коммиты .

Изменения API

  • Добавить информацию isFlat в HingeInfo ( Ie0516 , b/333784198 )
  • Сделать адаптивные API неэкспериментальными ( I1d038 )
  • Сделать API адаптивной компоновки неэкспериментальными ( Id23df )
  • Изменено BackNavigationBehavior с перечисления на класс значений ( Id8757 )

Исправление ошибок

  • Измените переходную дробь на лямбда ( I6f5a9 )
  • Исправлена ​​проблема начального состояния SizeTracker ( 18326a9 )
  • Включить список шарниров в проверку равенства Posture ( 6687137 )

Версия 1.0.0-альфа11

17 апреля 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит эти коммиты .

Изменения API

  • Сделайте интерфейсы области видимости герметичными. ( Iefa57 )
  • Представляем AnimatedPaneScope . ( I62d73 , b/332750742 )
  • Сделайте AdaptStrategy герметичным и стабильным. ( Ia28b2 )
  • Представьте метод копирования PaneScaffoldDirective . ( I9291f )
  • Отметить ThreePaneScaffoldScope как экспериментальный. ( I9d527 )
  • Предоставлять простые в использовании API-интерфейсы scaffold, поддерживающие навигацию. ( I263f0 , b/321010778 )

Версия 1.0.0-альфа10

3 апреля 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит эти коммиты .

Изменения API

  • Сделать предпочтительную ширину по умолчанию адаптивной и настраиваемой. ( Ic3abc )
  • Переименуйте функции расчета директивы scaffold. ( I10855 )
  • Удалить прокладки и вставки из API-интерфейсов каркаса. ( I786f8 )
  • Добавить методы запоминания навигатора без универсальных типов. ( I607c3 )

Версия 1.0.0-альфа09

20 марта 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит эти коммиты .

Изменения API

  • Добавить поля перехода состояний в ThreePaneScaffoldScope . ( I3d917 )
  • Изменить порядок параметров скаффолда. ( I4dff5 )
  • Укажите значение по умолчанию для параметра-модификатора AnimatedPane . ( I77dd7 )

Исправление ошибок

  • Включить размер распорки в движение панелей. ( a3174ca )

Версия 1.0.0-альфа08

6 марта 2024 г.

Выпущен androidx.compose.material3.adaptive:adaptive-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит эти коммиты .

Новые возможности

  • Реализовать отложенное скольжение при переключении панелей. ( I1a38e )

Изменения API

  • Удален интерфейс ThreePaneScaffoldState . ( I63f23 )

Версия 1.0.0-альфа07

21 февраля 2024 г.