Compose Material 3 Адаптивный

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

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

Чтобы добавить зависимость от Compose, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

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

классный

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

Котлин

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

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

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

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

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

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

Compose Material3 Adaptive Version 1.2

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

16 июля 2025 г.

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

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

2 июля 2025 г.

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

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

18 июня 2025 г.

Выпущена версия androidx.compose.material3.adaptive:adaptive-*:1.2.0-alpha07 . Версия 1.2.0-alpha07 содержит следующие коммиты .

Изменения API

  • Обеспечить поддержку функцией currentWindowAdaptiveInfo() классов размеров окон большой и очень большой ширины, а также повысить стабильность функций calculatePosture() и currentWindowDpSize() . ( I92e97 )

Версия 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 )

Составьте Material3 Адаптивная версия 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 содержит следующие коммиты .

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

  • Отключить трехпанельный scaffold предиктивный обратный масштаб ( 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 для управления переходом между значениями скаффолда. Существующее 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 )

Compose Material3 Adaptive Version 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 г.