Составление материала

Создавайте пользовательские интерфейсы Jetpack Compose с готовыми к использованию компонентами Material Design. Это точка входа более высокого уровня в Compose, предназначенная для предоставления компонентов, соответствующих описанным на сайте www.material.io.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
9 апреля 2025 г. 1.7.8 1.8.0-rc03 - -

Структура

Compose — это комбинация 7 идентификаторов групп Maven в androidx . Каждая группа содержит целевой подмножество функций, каждая из которых имеет свой собственный набор примечаний к выпуску.

В этой таблице описаны группы и ссылки на каждый набор примечаний к выпуску.

Группа Описание
сочинить.анимацию Создавайте анимацию в своих приложениях Jetpack Compose, чтобы улучшить взаимодействие с пользователем.
compose.compiler Преобразуйте функции @Composable и включите оптимизацию с помощью плагина компилятора Kotlin.
compose.foundation Создавайте приложения Jetpack Compose с готовыми к использованию стандартными блоками и расширяйте основу для создания собственных элементов системы проектирования.
составить.материал Создавайте пользовательские интерфейсы Jetpack Compose с готовыми к использованию компонентами Material Design. Это точка входа более высокого уровня в Compose, предназначенная для предоставления компонентов, соответствующих описанным на сайте www.material.io.
Compose.material3 Создавайте пользовательские интерфейсы Jetpack Compose с помощью компонентов Material Design 3 — следующего этапа развития Material Design. Material 3 включает в себя обновленные темы и компоненты, а также функции персонализации Material You, такие как динамический цвет, и разработан с учетом нового визуального стиля Android 12 и системного пользовательского интерфейса.
Compose.runtime Фундаментальные строительные блоки модели программирования Compose и управления состоянием, а также основная среда выполнения для целевого подключаемого модуля Compose Compiler.
Compose.ui Фундаментальные компоненты пользовательского интерфейса, необходимые для взаимодействия с устройством, включая макет, рисование и ввод.

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

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

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

классный

dependencies {
    implementation "androidx.compose.material:material:1.7.8"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Котлин

dependencies {
    implementation("androidx.compose.material:material:1.7.8")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

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

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

Создать новую задачу

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

Версия 1.8

Версия 1.8.0-rc03

9 апреля 2025 г.

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

Версия 1.8.0-rc02

26 марта 2025 г.

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

Версия 1.8.0-rc01

12 марта 2025 г.

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

Версия 1.8.0-бета03

26 февраля 2025 г.

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

Версия 1.8.0-бета02

12 февраля 2025 г.

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

Версия 1.8.0-бета01

29 января 2025 г.

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

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

15 января 2025 г.

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

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

  • Добавляет displayCutout в группу вставок, которые компоненты Material учитывают по умолчанию, чтобы избежать перекрытия содержимого с вырезом дисплея.
    • Это изменение поведения, которое повлияет на поведение компонентов, поддерживающих вставки, вокруг выреза дисплея. Сюда входит значение по умолчанию параметра WindowInsets для компонентов Material 3 с поддержкой вставок, а также значения WindowInsets предоставленные в компоненте.
    • Объекты по умолчанию как для Материала 2, так и для Материала 3. Если это изменение вызывает нежелательное поведение, вручную укажите параметр WindowInsets для каждого компонента. ( I43ee9 , б/362508045 )
  • Действие, которое используется в качестве хоста для тестируемого компонуемого объекта при использовании ComposeContentTestRule.setContent , теперь использует тему Theme.Material.Light.NoActionBar , чтобы избежать перекрытия ActionBar с тестовым содержимым при настройке SDK 35. Чтобы отказаться от этого поведения, вы можете удалить зависимость от ui-test-manifest и добавить запись активности в AndroidManifest.xml вашего тестового приложения для ComponentActivity с темой по вашему выбору. ( I7ae1b , б/383368165 )

Внешний вклад

  • Откройте sheetGesturesEnabled в ModalBottomSheetLayout . ( I3f032 , б/329543529 )

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

11 декабря 2024 г.

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

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

  • Исправлены модификаторы размера текстового поля, которые иногда не соблюдались. ( I90d4c , б/356905963 )

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

13 ноября 2024 г.

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

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

30 октября 2024 г.

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

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

  • Оптимизируйте поведение Scaffold contentPadding , чтобы избежать повторной компоновки содержимого тела при изменении contentPadding . ( I8c8e2 , б/373904168 )
  • Заставьте ползунок материала менять свое значение при нажатии клавиш управления. ( I1c442 )

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

16 октября 2024 г.

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

Изменения API

  • Удалите readOnly из TextFields ', чтобы закрепить его за стабильной базовой версией. ( I3aaba )

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

  • Добавляет поддержку пульсаций при расширении компонентов на Android S+, таких как карточка, которая расширяется при нажатии. Раньше пульсация не заполняла новый размер, но теперь она расширится до новых границ. ( Если509а , б/183019123 )

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

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

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

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

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

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

Изменения API

  • Добавлен новый построитель NavGraphBuilder.bottomSheet для создания нижнего листа с безопасными аргументами (( I28589 , I777db , b/351858980 ))
  • Добавлены новые перегрузки TextField и OutlinedTextField , которые принимают TextFieldState ( I3b74c ).

Версия 1.7

Версия 1.7.8

12 февраля 2025 г.

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

Версия 1.7.7

29 января 2025 г.

Выпущен androidx.compose.material:material-*:1.7.7 . Никаких изменений с 1.7.6.

Версия 1.7.6

11 декабря 2024 г.

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

Версия 1.7.5

30 октября 2024 г.

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

Версия 1.7.4

16 октября 2024 г.

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

Версия 1.7.2

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

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

Версия 1.7.1

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

  • Никаких изменений в артефактах Android. Артефакты -desktop были удалены и добавлены артефакты -jvmStubs и -linuxx64Stubs . Ни одна из этих целей не предназначена для использования, они являются заполнителями, помогающими Jetbrains Compose.

Версия 1.7.0

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

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

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

  • Компоненты материалов были перенесены для использования новых API-интерфейсов Ripple и больше не запрашивают RippleTheme .
  • Компоненты материала, которые ранее принимали MutableInteractionSource и по умолчанию remember { MutableInteractionSource() } теперь принимают MutableInteractionSource допускающий значение NULL, и вместо этого по умолчанию принимают значение NULL. Если вы не поднимаете и не используете MutableInteractionSource , вам следует передать значение null. Это позволяет некоторым компонентам лениво создавать экземпляры только при необходимости, что повышает производительность. Также рекомендуется внести аналогичные изменения в ваши собственные компоненты.
  • BottomDrawer , ModalBottomSheet , BackdropScaffold и стандартный Bottomsheet переведены в стабильный API.

Версия 1.7.0-rc01

21 августа 2024 г.

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

Версия 1.7.0-beta07

7 августа 2024 г.

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

Версия 1.7.0-beta06

24 июля 2024 г.

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

Версия 1.7.0-бета05

10 июля 2024 г.

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

Версия 1.7.0-beta04

26 июня 2024 г.

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

Версия 1.7.0-бета03

12 июня 2024 г.

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

Версия 1.7.0-бета02

29 мая 2024 г.

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

Изменения API

  • Обновите API для стилизации ссылок: TextLinkStyles перемещены в TextStyle и удалены TextDefaults из материала ( I5477b ).

Версия 1.7.0-бета01

14 мая 2024 г.

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

Изменения API

  • Обновлен API для получения тематических ссылок Material в тексте. В частности, из TextDefaults удалены методы для создания тематических LinkAnnotations и анализа HTML с тематическими ссылками. Вместо этого добавлен класс TextLinkStyles , который позволяет стилизовать ссылки в качестве параметра составного текста. ( I31b93 )

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

1 мая 2024 г.

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

Изменения API

  • Исправлена ​​ошибка, из-за которой backgroundColor не применялся к TextFieldDecorationBox и OutlinedTextFieldDecorationBox . Декоративные коробки теперь принимают параметр shape . ( I371c2 , б/307694651 )
  • RippleConfiguration#isEnabled был удален, а LocalRippleConfiguration стал нулевым. Чтобы отключить пульсацию, вместо предоставления RippleConfiguration с isEnabled = false укажите значение null для LocalRippleConfiguration . ( I22725 )
  • Текстовые ссылки имеют опцию стилизации нажатого состояния в дополнение к обычному стилю, наведению и фокусировке. Каждый из методов TextDefaults имеет аргумент pressedStyle для поддержки этого. ( Ic473f , б/139312671 )

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

  • Верхнее отступ OutlinedTextField для метки теперь учитывает размер системного шрифта. ( Idc781 )

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

17 апреля 2024 г.

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

Изменения API

  • Текстовые ссылки получили опцию стилизации нажатого состояния в дополнение к обычному стилю, наведению курсора и фокусу. ( I5f864 , б / 139312671 )
  • Добавлен объект TextDefaults , содержащий методы для создания LinkAnnotation и анализа строки с HTML-тегом, которая применяет MaterialTheme к ссылкам. ( I98532 , б / 139312671 )

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

3 апреля 2024 г.

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

Объявление

  • androidx.compose.material больше не требует использования одной и той же версии каждого артефакта в этой группе maven. Пользователи могут смешивать и сопоставлять версии базовых библиотек Compose ( Ie5fba ).

Изменения API

  • Больше значений по умолчанию ModalDrawer и BottomDrawer перемещено в объект DrawerDefaults . ( Ib5b2e )

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

20 марта 2024 г.

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

Изменения API

  • Флаг ScaffoldSubcomposeInMeasureFix был удален. ( I67363 )

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

6 марта 2024 г.

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

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

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

21 февраля 2024 г.

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

Изменения API

  • BottomDrawer переведен из экспериментального уровня в стабильный. BottomDrawerState теперь отображает прогресс как функцию, позволяющую запрашивать прогресс между конкретными целями. BottomDrawerState теперь позволяет настраивать спецификацию анимации, а confirmStateChange больше не является завершающей лямбдой. ( I9c029 , б / 261423850 )
  • BackdropScaffold стал стабильным из экспериментального уровня. Спецификация анимации теперь является спецификацией tween в соответствии с рекомендациями. Параметр snackbarHost BackdropScaffold больше не является последним параметром, чтобы избежать путаницы с конечными лямбда-выражениями. BackdropScaffoldState предоставляет API progress(from, to) для запроса прогресса между привязками. ( I73f48 , б/261423218 )
  • Стандартные нижние листы были повышены из экспериментальных до стабильных. Устаревшие конструкторы были удалены. Спецификация анимации теперь является спецификацией анимации в соответствии с рекомендациями. ( I3c1a8 , б/278692145 , б/261409034 )
  • Модальные нижние листы переведены из экспериментального уровня в стабильный. Устаревшие конструкторы были удалены. Спецификация анимации теперь является спецификацией tween в соответствии с рекомендациями. ( Ic53f4 , б/278692145 , б/266780235 , б/261409034 )

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

  • Исправлена ​​проблема, из-за которой BackdropScaffold мог аварийно завершить работу в определенных сценариях в сочетании с LookaheadScope . ( I51396 )
  • Удалена подкомпозиция внутри BottomSheetScaffold для повышения производительности. Исправлена ​​проблема, из-за которой BottomSheetScaffold аварийно завершал работу в определенных сценариях в сочетании с LookaheadScope . ( I2f90c )
  • Удалена подкомпозиция внутри ModalBottomSheetLayout , что повышает производительность. ( I7a025 )

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

7 февраля 2024 г.

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

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

24 января 2024 г.

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

Изменения поведения

  • Компоненты материалов были перенесены для использования новых API-интерфейсов Ripple и больше не запрашивают RippleTheme .

Изменения API

  • rememberRipple и RippleTheme устарели из Material-Ripple, а в библиотеки материалов и других систем проектирования добавлены новые API-интерфейсы Ripple и RippleConfiguration .

  • Компоненты материала, которые ранее принимали MutableInteractionSource и по умолчанию запоминали { MutableInteractionSource() } теперь принимают MutableInteractionSource допускающий значение NULL, и вместо этого по умолчанию принимают значение NULL. Если вы не поднимаете и не используете MutableInteractionSource , вам следует передать значение null. Это позволяет некоторым компонентам лениво создавать экземпляры только при необходимости, что повышает производительность. Также рекомендуется внести аналогичные изменения в ваши собственные компоненты.

Версия 1.6

Версия 1.6.8

12 июня 2024 г.

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

Версия 1.6.7

1 мая 2024 г.

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

Версия 1.6.6

17 апреля 2024 г.

Выпущен androidx.compose.material:material-*:1.6.6 . Никаких изменений с момента последнего релиза.

Версия 1.6.5

3 апреля 2024 г.

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

Версия 1.6.4

20 марта 2024 г.

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

Версия 1.6.3

6 марта 2024 г.

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

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

  • Исправьте регрессию в ExposedDropdownMenu , чтобы снова сделать его фокусируемым. ( c0e0ed , б/323694447 )

Версия 1.6.2

21 февраля 2024 г.

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

Версия 1.6.1

7 февраля 2024 г.

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

Версия 1.6.0

24 января 2024 г.

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

Версия 1.6.0-rc01

10 января 2024 г.

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

Версия 1.6.0-бета03

13 декабря 2023 г.

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

Версия 1.6.0-бета02

29 ноября 2023 г.

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

Версия 1.6.0-бета01

15 ноября 2023 г.

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

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

18 октября 2023 г.

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

Изменения API

  • Устареть функции materialIcon в пользу ее перегрузки, которая принимает параметр autoMirror . ( Ia338d )

Исправления ошибок — автоматическое увеличение высоты элемента навигации для большого контента. ( 0c4ecc , б/272336962 )

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

4 октября 2023 г.

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

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

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

20 сентября 2023 г.

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

Изменение поведения

  • Удалена функциональность, связанная с ящиками, из BottomSheetScaffold . Оберните BottomSheetScaffold в сборный ящик, чтобы добиться прежней функциональности. Пример см. в BottomSheetScaffoldWithDrawerSample . ( I1dcc8 )

Изменения API

  • Введен временный флаг, позволяющий контролировать, должен ли Scaffold измерять дочерние элементы во время измерения или во время размещения. По умолчанию это будет измерение. Если у вас возникли проблемы с новым поведением, сообщите о проблеме. ( If6e3b )

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

6 сентября 2023 г.

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

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

  • Добавлена ​​поддержка автоматического зеркального отображения значков при отображении справа налево. Значки в модулях Material-icons-core и Material-icons-extended теперь предоставляют дополнительные наборы значков для поддержки автоматического зеркалирования, если значок это позволяет. Новые наборы имеют префикс Icons.AutoMirrored.Filled... и т. д. и содержат значки, которые автоматически отражаются в макетах с письмом справа налево. См. список значков материалов, чтобы узнать список значков, которые могут (и должны) автоматически отражаться.

Изменения API

  • Добавлена ​​поддержка автоматического зеркального отображения значков при отображении справа налево. Значки в модулях Material-icons-core и Material-icons-extended теперь предоставляют дополнительные наборы значков для поддержки автоматического зеркалирования, если значок это позволяет. Новые наборы имеют префикс Icons.AutoMirrored.Filled... и т. д. и содержат значки, которые автоматически отражаются в макетах с письмом справа налево. См. список значков материалов, чтобы узнать список значков, которые могут (и должны) автоматически отражаться. Ранее предоставленные свойства значков для этих значков теперь помечены как устаревшие, и для облегчения миграции предлагается вариант замены блока. Если у вас нет специальной обработки зеркального отображения значков в RTL, мы рекомендуем перейти на новый набор значков. Например, Icons.Filled.ArrowBack следует преобразовать в Icons.AutoMirrored.Filled.ArrowBack . ( I4b511 )

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

23 августа 2023 г.

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

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

  • Исправлена ​​проблема, из-за которой некоторые компоненты, использующие Subcomposition (например, BottomSheetScaffold ) внутри Scaffold внутри LookaheadScope , пытались прочитать свой размер слишком рано. ( Если2c5d )
  • Исправлен расчет offset DropdownMenu , поэтому смещения по оси x зависят исключительно от направления локального макета, а смещения по оси y больше не будут инвертироваться, когда меню находится в нижней части экрана. ( Iccc74 , б/294103942 )
  • Оптимизированы внутренние компоненты макета BottomSheetScaffold и исправлена ​​потенциальная проблема с BottomSheetScaffold внутри LookaheadLayout . ( Ic0afa )

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

9 августа 2023 г.

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

Изменения API

  • Компоненты Material2 теперь имеют отдельный API для передачи windowInsets для поддержки сквозной функциональности в Android. В отличие от компонентов Material3, компоненты Material2 не поддерживают вставки по умолчанию, и значение следует передавать вручную. Обратитесь к соответствующим образцам для получения инструкций. ( I655e8 )

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

26 июля 2023 г.

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

Изменения API

  • Мы переносим зависимость плотности на уровень компонентов. Это относится к следующим компонентам: SwipeToDismiss и компонентам на основе Sheet. Пожалуйста, используйте новую перегрузку, если плотность является параметром. ( I1846e )
  • Дополнительные аннотации для указания разрешенных входных данных для компонуемых объектов ( I51109 )
  • Обновлены файлы API для подавления аннотаций совместимости ( I8e87a , b/287516207 ).
  • Добавлено новое выравнивание начала для FabPosition ( Ib7aea , b/170592777 ).
  • TextFieldColorsWithIcons в Материале 2 устарел в пользу TextFieldColors . При переопределении leadingIconColor или trailingIconColor также переопределите перегрузку с помощью interactionSource . ( Id57ed , р/199377790 )

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

21 июня 2023 г.

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

Изменения поведения

  • includeFontPadding теперь по умолчанию имеет false в типографике Material 2. Стиль высоты строки по умолчанию также был изменен на Trim.None и Alignment.Center , а к TextStyle из Typography добавлен явный lineHeight (в sp). Если вы хотите настроить эти значения, обратитесь к документации API, а также прочтите сообщение в блоге , где содержится подробное объяснение этих изменений. ( Icabc3 , I3f801 , I04c03 )

Изменения API

  • API-интерфейсы Swipeable Material устарели. Пожалуйста, обратитесь к API-интерфейсам AnchoredDraggable от Foundation, которые оптимизированы как для простых, так и для сложных случаев использования. ( I732e0 )

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

  • BottomSheetState , ModalBottomSheetState и BottomDrawerState теперь предоставляют свойство прогресса, указывающее прогресс между текущей (установленной) привязкой и ближайшей привязкой в ​​направлении пролистывания. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )

Версия 1.5

Версия 1.5.4

18 октября 2023 г.

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

Версия 1.5.3

4 октября 2023 г.

Выпущен androidx.compose.material:material-*:1.5.3 . В этой версии нет изменений

Версия 1.5.2

27 сентября 2023 г.

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

Версия 1.5.1

6 сентября 2023 г.

androidx.compose.material:material-*:1.5.1 выпущен без изменений. Версия 1.5.1 содержит эти коммиты.

Версия 1.5.0

9 августа 2023 г.

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

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

Изменения API

  • Внесены изменения в API Swipeable1 в BottomSheetScaffold . Параметр confirmStateChange BottomSheetState был переименован в confirmValueChange . progress теперь отображается как значение с плавающей запятой. animateTo и snapTo являются внутренними. Вместо этого используйтеexpand expand() collapse() . direction и overflow были удалены. offset заменен на requireOffset() . I323b4
  • Отметьте функцию snapTo в Drawer как неэкспериментальный API. ( Ib9c18 , б/261425368 )
  • Добавлен параметр цвета дорожки для круговых индикаторов прогресса и параметр ограничения хода как для круговых, так и для линейных индикаторов прогресса. ( Ie668c , б/216325962 , б/222964817 )
  • Переименован ModalBottomSheetState , ModalBottomSheetState.Saver и rememberModalBottomSheetState confirmStateChange ModalBottomSheetState на confirmValueChange . ( Ib48d1 )
  • Добавьте Modifier.minimumInteractiveComponentSize . Его можно использовать для резервирования размера не менее 48.dp, чтобы устранить неоднозначность сенсорного взаимодействия, если размер элемента будет меньше. ( I33f58 , б/258495559 )
  • Внесены изменения в API-интерфейсы Swipeable в ModalBottomSheetLayout . AnimateTo ModalBottomSheetState больше не принимает параметр animationSpec , а выставленное смещение теперь имеет значение NULL. Используйте requireOffset , чтобы потребовать смещение. ( Ia2e79 )
  • Добавление аннотации @JvmDefaultWithCompatibility ( I8f206 )
  • Внесены изменения в API Swipeable в ModalDrawer. DrawerState animateTo ModalDrawer. DrawerState был заменен методами open и close, а смещение теперь имеет значение NULL. Используйте requireOffset , чтобы потребовать смещение. ( I3de9e )
  • Обновлены ящики и листы для правильной задержки нажатия на случай, если жесты могут стать событиями прокрутки.
  • Добавлен параметр minLines в Material и Material3 Text, TextField и OutlinedTextField , который позволяет установить минимальную высоту компонента с точки зрения количества строк ( I4af1d ).

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

  • Устранена проблема, из-за которой pullRefresh не потреблял скорость, из-за чего отображалась избыточная прокрутка. Также изменена подпись API лямбды onRelease в Modifier.pullRefresh , чтобы возвращать Float для потребляемой скорости ( I7db65 , b/266874741 ).
  • BottomSheetState , ModalBottomSheetState и BottomDrawerState теперь предоставляют свойство прогресса, указывающее прогресс между текущей (установленной) привязкой и ближайшей привязкой в ​​направлении пролистывания. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )
  • Исправлено действие закрытия AlertDialog , которое отображалось под действием подтверждения, когда действия накладывались друг на друга, чтобы соответствовать ширине диалогового окна. Это исправление приводит реализацию в соответствие со спецификацией Material Design. ( I029de , б/235454277 )
  • BottomSheetScaffold больше не будет участвовать во вложенной прокрутке, если gesturesEnabled установлено значение false. ( I634f3 , б/215403277 )
  • Исправлена ​​ошибка, из-за которой BottomSheetScaffold аварийно завершал работу при предоставлении пустого содержимого для слотов. ( Ib24a5 , b/235588730 )
  • Исправляет PullRefreshIndicator , перехватывающий события кликов/указателя. ( 2494256 , б/271777421 )
  • Исправлена ​​проблема, из-за которой ModalBottomSheetLayout аварийно завершал работу в крайнем случае при изменении ориентации. Анимация макета (например, Modifier.animateContentSize ) внутри/на содержимом листа теперь работает плавно. ( I2f981 , б / 266780234 )

Версия 1.5.0-rc01

26 июля 2023 г.

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

Версия 1.5.0-бета03

28 июня 2023 г.

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

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

  • BottomSheetState , ModalBottomSheetState и BottomDrawerState теперь предоставляют свойство прогресса, указывающее прогресс между текущей (установленной) привязкой и ближайшей привязкой в ​​направлении пролистывания. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )

Версия 1.5.0-бета02

7 июня 2023 г.

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

Версия 1.5.0-бета01

24 мая 2023 г.

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

Изменения API

  • Смещение DrawerState и BottomDrawerState больше не обнуляется. Вместо этого они возвращают Float.NaN , чтобы указать на отсутствие смещения. ( Ie9855 )
  • Добавлена ​​возможность передать ScrollState при создании DropdownMenu или ExposedDropdownMenu для управления состоянием вертикальной прокрутки отображаемых пунктов меню. ( Idb009 , б/185304441 )
  • Добавьте поддержку включения/отключения жеста ModalBottomSheetLayout , чтобы пользователь мог настроить его для более функционального нижнего листа ( I40af0 ).
  • В BasicText добавлен параметр цвета, позволяющий эффективно анимировать или устанавливать цвет текста. ( Ifffd88 , б / 246961787 )
  • Переименование свойства семантики isContainer в isTraversalGroup ( I121f6 ).

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

  • Исправлено действие закрытия AlertDialog , которое отображалось под действием подтверждения, когда действия накладывались друг на друга, чтобы соответствовать ширине диалогового окна. Это исправление приводит реализацию в соответствие со спецификацией Material Design. ( I029de , б/235454277 )

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

10 мая 2023 г.

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

Изменения API

  • Мы переносим зависимость плотности на уровень компонентов. Это относится к следующим компонентам: BottomDrawer , ModalBottomSheetLayout , BottomSheetScaffold , Switch , ModalDrawer . Пожалуйста, используйте новую перегрузку, если плотность является параметром. ( I8fbd8 )

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

19 апреля 2023 г.

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

Изменения API

  • Обновите внутренние компоненты BottomDrawer , чтобы использовать новые API SwipeableV2 . Из-за этого BottomDrawerState теперь будет иметь APIS, определенный только на уровне класса, он не будет наследовать методы/свойства от SwipeableState . Мы используем композицию с внутренним SwipeableV2State . Offset теперь является свойством с плавающей запятой, допускающим значение NULL, а доступ к текущему значению и целевому значению пролистывания по-прежнему можно получить через свойства currentValue и targetValue. Предыдущие методы уровня класса, такие как open/expand/close, и такие свойства, как isOpen/isClosed продолжают поддерживаться. ( Iad40c , б / 178529942 , б / 220676296 )

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

  • Обновлены внутренние компоненты компонента Switch. Переключатель теперь будет просматривать ближайшее (целевое состояние) при перетаскивании. ( Ид90d4 )
  • Анимированное содержимое листа (например, Modifier.animateContentSize в содержимом листа) в BottomSheetScaffold было оптимизировано и теперь работает без сбоев. ( Ia913c , б/270518202 , б/254446195 )
  • BottomSheetScaffold больше не будет участвовать во вложенной прокрутке, если gesturesEnabled установлено значение false . ( I634f3 , б/215403277 )

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

5 апреля 2023 г.

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

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

  • Исправлена ​​ошибка, из-за которой BottomSheetScaffold аварийно завершал работу при предоставлении пустого содержимого для слотов. ( Ib24a5 , b/235588730 )
  • Исправлены события перехвата кликов/указателя PullRefreshIndicator ( 2494256 , b/271777421 ).

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

22 марта 2023 г.

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

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

  • Добавьте образец перекомпоновки группы микросхем. Обновите горизонтальное заполнение между дочерними чипами в примере однострочной группы чипов, чтобы оно соответствовало спецификации. ( I3b155 )
  • Исправлена ​​проблема, из-за которой ModalBottomSheetLayout аварийно завершал работу в крайнем случае при изменении ориентации. Анимация макета (например, Modifier.animateContentSize ) внутри/на содержимом листа теперь работает плавно. ( I2f981 , б / 266780234 )

Версия 1.4

Версия 1.4.3

3 мая 2023 г.

androidx.compose.material:material-*:1.4.3 выпущен без изменений (только обновление версии).

Версия 1.4.2

19 апреля 2023 г.

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

Версия 1.4.1

5 апреля 2023 г.

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

Версия 1.4.0

22 марта 2023 г.

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

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

Изменения API

  • Добавьте Modifier.minimumInteractiveComponentSize . Его можно использовать для резервирования размера не менее 48.dp, чтобы устранить неоднозначность сенсорного взаимодействия, если размер элемента будет меньше. ( I33f58 , б/258495559 )
  • Внесены изменения в API-интерфейсы Swipeable в ModalDrawer . animateTo DrawerState был заменен методами open и close, а смещение теперь имеет значение NULL. Используйте requireOffset , чтобы потребовать смещение. ( I3de9e )
  • Добавлен параметр minLines в Material и Material3 Text, TextField и OutlinedTextField , который позволяет установить минимальную высоту компонента с точки зрения количества строк ( I4af1d ).
  • Добавлен параметр minLines в BasicText и BasicTextField . Это позволяет установить минимальную высоту этих составных элементов с точки зрения количества строк ( I24294 , b/122476634 ).

Версия 1.4.0-rc01

8 марта 2023 г.

androidx.compose.material:material-*:1.4.0-rc01 выпущен без изменений. Версия 1.4.0-rc01 содержит эти коммиты.

Версия 1.4.0-бета02

22 февраля 2023 г.

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

Изменения API

  • Внесены изменения в API-интерфейсы Swipeable в BottomSheetScaffold . Параметр confirmStateChange BottomSheetState был переименован в confirmValueChange . progress теперь отображается как значение с плавающей запятой. animateTo и snapTo являются внутренними. Вместо этого используйтеexpand expand() collapse() . direction и overflow были удалены. offset заменен на requireOffset() . ( I323b4 )

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

  • Удалены семантические роли из кликабельных и выбираемых поверхностей, обновлены компоненты, которые использовали их для задания ролей с помощью modifier.semantics ( Ibb4ba ).
  • Небольшое обновление расширенных значков материалов, которое настраивает заполненные значки desktop_mac , directions и kitchen . ( I65f5e )

Версия 1.4.0-бета01

8 февраля 2023 г.

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

Изменения API

  • Устранена проблема, из-за которой pullRefresh не потреблял скорость, из-за чего отображалась избыточная прокрутка. Также изменена подпись API лямбды onRelease в Modifier.pullRefresh , чтобы возвращать Float для потребляемой скорости ( I7db65 , b/266874741 ).
  • Восстановлен метод получения свойства LocalMinimuTouchTargetEnforcement , помечен как устаревший и перенаправлен на LocalMinimumInteractiveComponentEnforcement . ( I60dd5 )

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

25 января 2023 г.

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

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

  • Исправлена ​​проблема, из-за которой состояние ModalBottomSheetLayout's HalfExpanded рассчитывалось неправильно, и лист казался плавающим. ( I8c615 , б / 265610459 )
  • Исправлена ​​ошибка в ModalBottomSheetLayout , из-за которой лист в некоторых случаях аварийно завершал работу при переходе из скрытого состояния в видимое. ( Я9265 , б/265444789 )

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

11 января 2023 г.

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

Изменения API

  • Добавлено свойство семантики IsContainer на Surfaces. Это свойство будет использоваться в последующих изменениях, определяющих порядок обхода на основе семантического значения таких элементов, как поверхности. ( I63379 )
  • Отметьте функцию snapTo в Drawer как неэкспериментальный API. ( Ib9c18 , б/261425368 )
  • Добавлен параметр цвета дорожки для круговых индикаторов прогресса и параметр ограничения хода как для круговых, так и для линейных индикаторов прогресса. ( Ie668c , б/216325962 , б/222964817 )
  • Переименован ModalBottomSheetState , ModalBottomSheetState.Saver и rememberModalBottomSheetState confirmStateChange ModalBottomSheetState на confirmValueChange . ( Ib48d1 )
  • Больше обнуляемых типов возвращаемых устаревших скрытых функций ( Ibf7b0 )
  • Добавьте Modifier.minimumInteractiveComponentSize . Его можно использовать для резервирования размера не менее 48.dp, чтобы устранить неоднозначность сенсорного взаимодействия, если размер элемента будет меньше. ( I33f58 , б/258495559 )
  • Внесены изменения в API-интерфейсы Swipeable в ModalBottomSheetLayout . animateTo ModalBottomSheetState больше не принимает параметр animationSpec , а выставленное offset теперь имеет значение NULL. Используйте requireOffset , чтобы потребовать offset . ( Ia2e79 )

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

  • Лист ModalBottomSheetLayout теперь имеет максимальную ширину 640 dp. ( I71a4f , б / 234927577 )
  • Устранена проблема, из-за которой rememberPullRefreshState не обновляла refreshThreshold и refreshingOffset с течением времени. ( Ифед10 , б/263159832 )
  • Прогресс индикаторов прогресса теперь правильно ограничен ожидаемым диапазоном. ( I8a7eb , б/262262727 )
  • Если ModalBottomSheetState еще не получил никаких привязок, он обновит currentValue без анимации при вызове snapTo или animateTo вместо выдачи исключения. ( I2c91b )
  • Исправлено включенное состояние в реализации FilterChip Материала 2. ( Id326a , б/261329817 )
  • Исправлена ​​ошибка, из-за которой ModalBottomSheetLayout аварийно завершал работу, если он был HalfExpanded при повороте из книжной ориентации в альбомную. Убедитесь, что вы передаете правильное initialValue , например, проверив конфигурацию. ( Ie8df7 , б/182882364 )
  • Исправлена ​​проблема, из-за которой ModalBottomSheetLayout аварийно завершал работу, если содержимое листа было пустым. ModalBottomSheetLayout теперь допускает пустое содержимое листа. Если содержимое листа пусто, оно будет иметь только скрытое состояние. ( Ic2288 , б/200980998 , б/216693030 )

Известная проблема

  • При обновлении с androidx.compose.foundation:1.4.0-alpha03 до androidx.compose.foundation:1.4.0-alpha04 может возникнуть ошибка java.lang.NoSuchFieldError . Здесь изначально сообщалось о проблеме. Исправление отправлено и будет доступно в следующем обновлении Compose. В качестве обходного пути обновите библиотеки androidx.compose.material и androidx.compose.material3 до последней версии (1.1.0-alpha04) или понизьте версию androidx.compose.foundation до 1.4.0-alpha03.

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

7 декабря 2022 г.

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

Изменения API

  • Добавление аннотации @JvmDefaultWithCompatibility ( I8f206 )
  • Внесены изменения в API-интерфейсы Swipeable в ModalDrawer . animateTo DrawerState был заменен методами open и close , а смещение теперь имеет значение NULL. Используйте requireOffset , чтобы потребовать смещение. ( I3de9e )
  • Добавлен API-модификатор для запроса информации о прокрутке предков. ( I2ba9d , б/203141462 )
  • Используется в Clickable для правильной задержки взаимодействия с нажатием, когда жесты могут стать событиями прокрутки.
  • Исправлены Clickables , которые неправильно задерживали пульсацию при использовании внутри Scrollable ViewGroup .
  • Обновлены ящики и листы для правильной задержки нажатия на случай, если жесты могут стать событиями прокрутки.

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

  • Исправлена ​​проблема, из-за которой PullRefreshIndicator мог зависнуть после вызова onRefresh , если состояние обновления не было изменено на true. ( Ие2416 , б/248274004 )

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

  • Интерфейс Compose и Compose Material теперь зависят от жизненного цикла 2.5.1. ( I05ab0 , б/258038814 )

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

9 ноября 2022 г.

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

Изменения API

  • awaitFirstDown и waitForUpOrCancellation теперь принимают PointerEventPass для большей гибкости. ( I7579a , б / 212091796 )
  • Добавлен параметр minLines в Material и Material3 Text, TextField и OutlinedTextField , который позволяет установить минимальную высоту компонента с точки зрения количества строк ( I4af1d ).
  • Добавлен параметр minLines в BasicTex и BasicTextField . Это позволяет установить минимальную высоту этих составных элементов с точки зрения количества строк ( I24294 , b/122476634 ).

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

24 октября 2022 г.

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

Изменения API

  • Был добавлен новый метод awaitEachGesture() для детекторов жестов. Он работает аналогично forEachGesture() , но цикл по жестам полностью работает внутри AwaitPointerEventScope , поэтому события не могут быть потеряны между итерациями.
  • forEachGesture() устарел в пользу awaitEachGesture() поскольку он позволяет терять события между жестами. ( Iffc3f , b/251260206 )

Версия 1.3

Версия 1.3.1

9 ноября 2022 г.

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

Версия 1.3.0

24 октября 2022 г.

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

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

Изменение поведения

  • Максимально поддерживаемое возвышение в диалогах и всплывающих окнах уменьшено до 8dp.

Изменения API

  • Добавьте в Compose компонент Pull-To-Refresh ( I29168 ).
  • Измените имя параметра со значений на значение в RangeSlider ( I3b79a ).

Версия 1.3.0-rc01

5 октября 2022 г.

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

Версия 1.3.0-beta03

21 сентября 2022 г.

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

Изменения API

  • Добавьте компонент Pull-To-Refresh в Compose ( I29168 ).

Версия 1.3.0-beta02

7 сентября 2022 г.

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

Никаких изменений с версии 1.3.0-beta01

Версия 1.3.0-бета01

24 августа 2022 г.

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

Изменение поведения

Максимально поддерживаемое возвышение в диалогах и всплывающих окнах уменьшено до 8dp.

Максимальное поддерживаемое возвышение для диалоговых окон и всплывающих окон «Создание» было уменьшено с 30dp до 8dp. Это изменение затрагивает как материалы, так и пользовательские диалоги и всплывающие окна пользовательского интерфейса. Это изменение сделано для устранения ошибки специальных возможностей в версиях Android ниже S и для обеспечения того, чтобы службы специальных возможностей в этих окнах могли взаимодействовать с содержимым внутри диалогового окна или всплывающего окна.

Это изменение повлияет на вас только в том случае, если вы создаете настраиваемое диалоговое окно или всплывающее окно с уровнем прав, установленным на уровни выше 8dp. Рассмотрите возможность снижения высоты вашего диалогового или всплывающего окна. Если вам нужно отказаться от этого нового поведения, рассмотрите возможность создания собственного диалогового или всплывающего окна с желаемым набором прав доступа. Это не рекомендуется, так как это может отрицательно сказаться на доступности, и разработчик должен обеспечить возможность взаимодействия и чтения нижней части диалогового окна или всплывающего окна службами специальных возможностей.

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

10 августа 2022 г.

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

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

27 июля 2022 г.

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

Внешний вклад

  • Исправлена ​​проблема AnimatedVisibility с FloatingActionButton в Scaffold ( I3a0ae , b/224005027 ).

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

29 июня 2022 г.

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

Изменения API

  • Измените имя параметра со значений на значение в RangeSlider ( I3b79a )

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

  • Обновите образец значка, чтобы обеспечить более информативное описание контента. ( I10b9d )

Версия 1.2

Версия 1.2.1

10 августа 2022 г.

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

Версия 1.2.0

27 июля 2022 г.

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

Версия 1.2.0-rc03

29 июня 2022 г.

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

  • Никаких изменений с версии 1.2.0-rc02.

Версия 1.2.0-rc02

22 июня 2022 г.

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

Версия 1.2.0-rc01

15 июня 2022 г.

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

Изменения API

  • Интерфейсы в библиотеках компоновки теперь создаются с использованием методов интерфейса jdk8 по умолчанию ( I5bcf1 ).

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

  • Обновляет значок с ведущей вкладкой значка, чтобы прикрепить значок к метке, а не к значку. ( I90993 )

Версия 1.2.0-бета03

1 июня 2022 г.

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

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

  • Исправлена ​​ошибка, из-за которой BottomSheetScaffold рисовался поверх тени верхней панели приложения. BottomSheetScaffold теперь также учитывает состояние листа при размещении Snackbars: в ​​свернутом состоянии Snackbars размещаются над листом и FAB; в развернутом состоянии Snackbars привязаны к нижней части листа. ( Ia80b5 , б/187771422 )

Версия 1.2.0-бета02

18 мая 2022 г.

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

Версия 1.2.0-бета01

11 мая 2022 г.

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

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

  • Это первая бета-версия 1.2!

Изменения API

  • Составной объект TextFieldDefaults.BorderStroke , рисующий обводку границы в OutlinedTextField переименован в TextFieldDefaults.BorderBox . ( I5f295 )

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

20 апреля 2022 г.

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

Изменения API

  • Частичное потребление (позиция вниз ИЛИ) устарело в PointerInputChange . Вы можете использовать consume() чтобы полностью использовать изменения. Вы можете использовать isConsumed , чтобы определить, использовал ли это изменение кто-то другой ранее.
  • PointerInputChange::copy() теперь всегда создает неглубокую копию. Это означает, что копии PointerInputChange будут использованы после использования одной из копий. Если вы хотите создать несвязанный PointerInputChange , вместо этого используйте конструктор. ( IE6BE4 , B/225669674 )

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

6 апреля 2022 г.

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

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

23 марта 2022 г.

androidx.compose.material:material-*:1.2.0-alpha06 выпускается. Версия 1.2.0-alpha06 содержит эти коммиты.

Изменения API

  • Обновления API Clicable Card, чтобы следовать изменениям на поверхности API ( i56bcb )
  • Обновления для Material 2 Surface API, который добавляет дополнительные перегруженные функции для выбираемых и перегруженных поверхностей. ( Ifcca5 )

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

9 марта 2022 г.

androidx.compose.material:material-*:1.2.0-alpha05 выпускается. Версия 1.2.0-alpha05 содержит эти коммиты.

Изменения API

  • LazyVerticalGrid и LazyHorizontalGrid теперь стабильны. ( I307c0 )
  • LazyVerticalGrid/LazyHorizontalGrid и все связанные API были перемещены в. Грид. Пожалуйста, обновите свой импорт с Androidx.compose.foundation.lazy до androidx.compose.foundation.lazy.grid. ( I2d446 , b/219942574 )
  • Обратное предыдущее изменение полагаться исключительно на вид для WindowInsetsControllerCompat и снова требуется окно, которое требуется для управления некоторыми окнами. Устаревший ViewCompat.getWindowInsetsController в пользу WindowCompat.getInsetsController , чтобы убедиться, что используется правильное окно (например, если представление находится в диалоге). ( I660ae , b/219572936 )
  • Текст: includeFontPadding теперь отключается по умолчанию. Проблемы с отсечением в результате includeFontPadding=false обрабатывается, и для высоких сценариев не должно происходить обрезка. ( I31C84 , B/171394808 )
  • Добавлен новый API LazyVerticalGrid для определения размеров поперечной оси ( I17723 )

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

23 февраля 2022 г.

androidx.compose.material:material-*:1.2.0-alpha04 выпускается. Версия 1.2.0-alpha04 содержит эти коммиты.

Изменения API

  • Add support for filter chips ( i39a6e , b/192585545 )
  • Добавлен TextFieldDecorationBox и OutlinedTextFieldDecorationBox . Использование их вместе с BasicTextField поможет вам создать пользовательское текстовое поле на основе текстовых полей дизайна материала, но с большими параметрами для настройки.
  • Предоставил способ отрегулировать горизонтальные и вертикальные прокладки в текстовых полках. ( I8c9f1 , b/203764564 , b/191543915 , b/189971673 , b/183136600 , b/179882597 , b/168003617 )
  • Добавлен ComposableTarget , ComposableTargetMarker и ComposableOpenTarget , которые позволяют отчетность по времени компиляции, когда композиционная функция называется нацеленным на приложение, которое он не предназначен для использования.

    В большинстве случаев аннотации могут быть выведены с помощью плагина компилятора Compose, поэтому использование этих аннотаций непосредственно должно быть редким. Случаи, которые нельзя вывести, включают в себя создание и использование пользовательских прикладных, абстрактных композиционных функций (таких как методы интерфейса), поля или глобальные переменные, которые являются композиционными лямбдами (локальные переменные и параметры определяются), или при использовании ComposeNode или связанных композиционных функций.

    Для пользовательских приложений композиционные функции, которые вызывает ComposeNode или ReusableComposeNode необходимо добавить аннотацию CompoableTarget для функции и любые типы параметров композиции Lambda. Однако рекомендуется создать аннотацию, которая аннотирована с помощью ComposableTargetMarker , а затем отмеченная аннотация вместо ComposableTarget напрямую. Компонируемая аннотация, помеченная ComposableTargetMarker , эквивалентна ComposbleTarget с полностью квалифицированным именем класса атрибутов в качестве параметра приложения. Для примера использования ComposableTargetMarker см. anroidx.compose.ui.UiComposable . ( I38f11 )

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

9 февраля 2022 г.

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

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

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

26 января 2022 г.

androidx.compose.material:material-*:1.2.0-alpha02 выпускается. Версия 1.2.0-alpha02 содержит эти коммиты.

Изменения API

  • Добавлено NonRestartableComposable к методам, которые являются перегрузкой существующих методов без сложной логики. Это уменьшает сгенерированные компиляторы проверок (равных) для всех параметров, которые повторяются во внутренней функции, которая называется. ( I90490 )
  • Добавьте поддержку чипа действия ( I07100 , B/1925855545 )

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

12 января 2022 г.

androidx.compose.material:material-*:1.2.0-alpha01 выпускается. Версия 1.2.0-alpha01 содержит эти коммиты.

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

  • Теперь зависит от Kotlin 1.6.10 .

Внешний вклад

  • ModalBottomSheetState теперь имеет флаг isSkipHalfExpanded . Он может быть либо установлен через конструктор, либо позже, установив свойство ModalBottomSheetState для isSkipHalfExpanded для true . Обновление значения isSkipHalfExpanded вызывает переоборудование листа. ( I18B86 , B/186669820 )

Версия 1.1

Версия 1.1.1

23 февраля 2022 г.

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

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

  • Исправьте исключение NullPointerException в androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList ( aosp/1947059 , b/206677462 ).
  • Исправлен сбой, вызванный содержимым буфера обмена при чтении из буфера обмена на Android. ( I06020 , б/197769306 )
  • Исправлено RTL в LazyVerticalGrid ( aosp/1931080 , b/207510535 )

Версия 1.1.0

9 февраля 2022 г.

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

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

  • Стабильная поддержка эффекта прокрутки Android 12.
  • Улучшения в сенсорном изменении целевого размера.
  • Обратите внимание, что в Compose 1.0 компоненты Material будут расширять свое пространство макета, чтобы соответствовать рекомендациям по доступности Material для сенсорного размера цели . Например, цель касания кнопки расширится до минимального размера 48x48dp, даже если вы установите меньший размер кнопки. Это приводит Compose Material в соответствие с тем же поведением компонентов Material Design, обеспечивая единообразное поведение при смешивании представлений и Compose. Это изменение также гарантирует, что при создании пользовательского интерфейса с использованием компонентов Compose Material будут соблюдены минимальные требования к доступности сенсорной цели.
  • Стабильная поддержка навигационной железной дороги
  • Стабильный уровень ряда ранее экспериментальных API.
  • Поддержка новых версий Kotlin

Версия 1.1.0-rc03

26 января 2022 г.

androidx.compose.material:material-*:1.1.0-rc03 выпускается. Версия 1.1.0-rc03 содержит эти коммиты.

Поведение изменяется

Обратите внимание, что в отношении сочинения 1.0 компоненты материала будут расширять место для макета в соответствии с руководящими принципами доступа к материалам , касающимся целевого размера. Например, цель касания кнопки расширится до минимального размера 48x48dp, даже если вы установите меньший размер кнопки. Это приводит Compose Material в соответствие с тем же поведением компонентов Material Design, обеспечивая единообразное поведение при смешивании представлений и Compose. Это изменение также гарантирует, что при создании пользовательского интерфейса с использованием компонентов Compose Material будут соблюдены минимальные требования к доступности сенсорной цели.

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

  • Добавлено некоторую лучшую информацию отладки для инспектора макета при осмотре минимальных модификаторов Touch Target. ( AOSP/1955036 )

Версия 1.1.0-rc01

15 декабря 2021 г.

androidx.compose.material:material-*:1.1.0-rc01 выпускается. Версия 1.1.0-rc01 содержит эти коммиты.

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

  • Исправьте радиус углового, который применяется для Checkbox ES ( I38B03 , B/175198975 , B/2023094440 )

Версия 1.1.0-beta04

1 декабря 2021 г.

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

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

  • Обновлен для совместимости с Kotlin 1.6.0

Версия 1.1.0-beta03

17 ноября 2021 г.

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

Версия 1.1.0-beta02

3 ноября 2021 г.

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

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

  • Рибплы и другие показания теперь будут отложены только в том случае, если они находятся в контейнере модификатора. ( Ibefe0 , b/203141462 )

Версия 1.1.0-бета01

27 октября 2021 г.

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

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

  • Рибплы теперь поддерживают состояния зависания и фокусировки, поэтому зависание / фокусировка компонента, такого как кнопка, теперь покажет правильное наложение состояния.

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

13 октября 2021 г.

androidx.compose.material:material-*:1.1.0-alpha06 выпускается. Версия 1.1.0-alpha06 содержит эти коммиты.

Изменения API

  • Была добавлена ​​перегрузка без ребенка для макета, с повышенной эффективностью ( IB0D9A )
  • Внедрение ExposedDropdownMenu на основе ExposedDropdownMenuBox с TextField и DropdownMenu внутри ( IF60B2 )
  • dismissOnOutsideClick был добавлен в PopupProperties , заменив dismissOnClickOutside которая была устарела. Новое свойство получает позицию Click и границы якоря, обеспечивая более тонкий контроль над тем, следует ли вызывать OndismissRequest или нет. Например, это может быть полезно, чтобы предотвратить увольнение якоря для прикосновений на якоре.
    • updateAndroidWindowManagerFlags был добавлен в PopupProperties , предлагая низкоуровневый контроль над флагами, передаваемыми всплывающим окном для Android Windowmanager. Параметр Lambda будут флаги, рассчитанные по значениям PopuppRoperties, которые приводят к флагам Windowmanager: например, фокусируются. Результатом Lambda станут финальные флаги, которые будут переданы Android Windowmanager. По умолчанию UpdateAndroidewindowmanagerflags оставит флаги, рассчитанные по параметрам без изменений. Этот API следует использовать с осторожностью, только в тех случаях, когда всплывающее окно имеет очень конкретные требования к поведению. ( I6e9f9 )

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

29 сентября 2021 г.

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

Изменения API

  • Добавляет минимальный сенсорный размер целевого размера для компонентов материала, которые не имеют доступной цели. Поскольку это добавляет дополнительное расстояние вокруг компонентов, чтобы убедиться, что они имеют достаточно большую сенсорную цель, это может изменить существующие пользовательские интерфейсы, которые предполагают, что размер этих компонентов является их визуальным размером и не учитывает размер прикосновения. Вы можете использовать экспериментальный локальный состав LocalMinimumTouchTargetEnforcement Local, чтобы отключить это поведение по всей иерархии, но это предназначено только для того, чтобы быть временным выбором побега при обновлении существующих пользовательских интерфейсов для учета нового минимального размера. ( I9B966 , B/149691127 , B/171509422 )
  • Добавлен экспериментальный интерфейс TextfieldColorsWithicons, расширяя TextFieldColors, чтобы обеспечить взаимодействие для ведущей и TrailingColor. Это позволяет изменять внешний вид Textfield в соответствии с состоянием фокуса. ( I66923 , B/198402662 )

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

15 сентября 2021 г.

androidx.compose.material:material-*:1.1.0-alpha04 . Версия 1.1.0-alpha04 содержит эти коммиты.

Изменения API

  • Устаревшие performGesture и GestureScope , которые были заменены на performTouchInput и TouchInjectionScope . ( IA5F3F , B/190493367 )
  • Добавлено touchBoundsInRoot в SemanticsNode , который включает в себя минимальный целевой размер сенсорной цели, чтобы разработчики могли убедиться, что целевые показатели соприкосновения соответствуют минимумам доступности. ( I2e14b , b/197751214 )

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

  • Позвольте CLIP расширить границы с сенсорными целями за пределы области зажима для минимальных целей Touch Target. ( I43e10 , b/171509422 )
  • Обновленные Divider , композируемый для уважения Dp.Hairline для параметра толщины для поддержки рисования одно пиксельные разделители независимо от плотности отображения. ( I16ffb , B/196840810 )

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

1 сентября 2021 г.

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

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

  • Обновлен Compose 1.1.0-alpha03 для зависимости от Kotlin 1.5.30 . ( I74545 )

Изменения API

  • Добавлен метод испытаний, чтобы получить обрезанные границы. ( I6b28e )
  • Добавлен минимальный сенсорный целевой размер для ViewConfiguration для использования в семантике и вводах указателя для обеспечения доступности. ( IE861C )

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

18 августа 2021 г.

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

Внешний вклад

  • Исправьте поведение SwipeBlestate в случае, когда смещение промахи находится в пределах ошибки закругления якоря. ( I03D39 , B/191993377 )

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

4 августа 2021 г.

androidx.compose.material:material-*:1.1.0-alpha01 выпускается. Версия 1.1.0-alpha01 содержит эти коммиты.

Изменения API

  • Обновленный метод DrawScope#drawImage , который потребляет исходные и назначенные прямы для употребления дополнительного параметра фильтры. Это полезно для пиксельного искусства, которое предназначено для пикселя при масштабировании для пиксельного искусства. Обновлено Bitmappainter + Image Composable, чтобы также употреблять дополнительный параметр фильтры ( IE4FB0 , B/180311607 )
  • Переименовано в Badgebox на Badgedbox, изменили параметры, чтобы принять состав значков. Добавлен компонент значка, который является типичным содержанием значка для бад -бокса. ( I639c6 )
  • Добавлен компонент NavigationRail, см. Документы и образцы для информации об использовании ( i8de77 )

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

  • Добавлены выровненная нижняя образец навигации и демонстрацию приложения каталога. ( I3cffc )
  • Диалоги теперь следуют поведению размеров платформы. Установите использование Pplatformdefaultwidth на false, чтобы переопределить это поведение. ( Iffaed , B/192682388 )
  • Добавлена ​​демонстрация навигационного приложения в приложение каталога. ( I04960 )
  • Добавлен Демо -значок в приложение каталога. ( If285d )

Версия 1.0

Версия 1.0.5

3 ноября 2021 г.

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

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

  • Исправлен сбой при отслеживании экземпляров производныхStateOf. ( аосп/1792247 )

Версия 1.0.4

13 октября 2021 г.

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

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

  • Обновлено в зависимости от Kotlin 1.5.31

Версия 1.0.3

29 сентября 2021 г.

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

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

  • Обновлено в зависимости от Kotlin 1.5.30

Версия 1.0.2

1 сентября 2021 г.

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

Обновлено для поддержки версии Compose 1.0.2 . Compose 1.0.2 по-прежнему совместим с Kotlin 1.5.21 .

Версия 1.0.1

4 августа 2021 г.

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

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

  • Обновлено в зависимости от Kotlin 1.5.21 .

Версия 1.0.0

28 июля 2021 г.

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

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

Это первая стабильная версия Compose. Более подробную информацию можно найти в официальном блоге Compose Release !

Известные проблемы

  • Если вы используете Android Studio Bumblebee Canary 4 или AGP 7.1.0-alpha04 / 7.1.0-alpha05 , вы можете столкнуться со следующим сбоем:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Чтобы исправить это, временно увеличьте minSdkVersion до 24+ в файле build.gradle . Эта проблема будет исправлена ​​в следующей версии Android Studio Bumblebee и AGP 7.1 . ( р/194289155 )

Версия 1.0.0-rc02

14 июля 2021 г.

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

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

  • Диалоги теперь следуют поведению размеров платформы. Установите usePlatformDefaultWidth на false, чтобы переопределить это поведение. ( Iffaed , B/192682388 )

Версия 1.0.0-rc01

1 июля 2021 г.

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

Изменения API

  • Добавлен компонент BadgeBox , см. Документы и образцы для информации об использовании ( I5E284 )
  • useDefaultMaxWidth в PopupProperties был переименован в usePlatformDefaultWidth . ( I05710 )
  • Диалоги теперь могут использовать всю ширину экрана. ( 183929 , б/190810877 )
  • Добавлена ​​внедрение экспериментального диапазона слайдера ( I2F4B3 )

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

  • Чтобы соответствовать спецификациям конструкции материала, изложенные текстовые телефона с недопустимым входом, остановился, используя цвет ошибки для метки, когда метка используется в качестве заполнителя. Последнее верно, когда в текстовом поле нет входного текста, а текстовое поле не в фокусе. С этим изменением значение error:Boolean параметр в функции TextFieldColors.labelColor() также изменился: теперь он вернет false даже если вход недействителен, если этикетка используется в качестве заполнителя. ( I45f78 )

Версия 1.0.0-beta09

16 июня 2021 г.

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

Изменения API

  • Добавлен параметр формы в OutlideTextField, чтобы иметь возможность настроить форму границы ( I8F39E , B/181322957 )
  • TextOverflow изменяется на встроенный класс. ( I433af )

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

  • Scrim in BottomDrawer, FackRopScaffald и ModalbottomSheetlayout исчезнет , ​​затем цвет .

Добавлены правила профиля

В этом выпуске правила профиля добавлены в следующие модули составления ( I14ed6 ):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Что такое правила профиля?

  • Правила профиля для библиотеки указаны в текстовом файле baseline-prof.txt расположенном в каталоге src/main или его эквиваленте. Файл указывает правило на строку, где правило в этом случае является шаблоном для сопоставления методов или классов в библиотеке. Синтаксис этих правил представляет собой расширенный набор удобочитаемого формата профиля ART, который используется при использовании adb shell profman --dump-classes-and-methods ... . Эти правила принимают одну из двух форм и ориентированы либо на методы, либо на классы.

  • Правило метода будет иметь следующий шаблон:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • И правило класса будет иметь следующий шаблон:

    <CLASS_DESCRIPTOR>
    
  • Здесь <FLAGS> — это один или несколько символов H , S и P указывающие, следует ли пометить этот метод как «Горячий», «Запуск» или «После запуска».

  • <CLASS_DESCRIPTOR> — это дескриптор класса, которому принадлежит целевой метод. Например, класс androidx.compose.runtime.SlotTable будет иметь дескриптор Landroidx/compose/runtime/SlotTable; .

  • <METHOD_SIGNATURE> является сигнатурой метода и включает имя, типы параметров и типы возвращаемых значений метода. Например, метод fun isPlaced(): Boolean в LayoutNode имеет подпись isPlaced()Z .

  • Эти шаблоны могут содержать подстановочные знаки ( ** , * и ? ), чтобы одно правило охватывало несколько методов или классов.

Что делают правила?

  • Метод, который имеет флаг H указывает, что этот метод является «горячим» методом и должен быть скомпилирован заранее.

  • Метод с флагом S указывает, что этот метод вызывается при запуске и его следует скомпилировать заранее, чтобы избежать затрат на компиляцию и интерпретацию метода во время запуска.

  • Метод с флагом P указывает, что это метод, который вызывается после запуска.

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

Как это работает?

  • Библиотеки могут определять эти правила, которые будут упакованы в артефакты AAR. Когда затем построен APK, который включает в себя эти артефакты, эти правила объединяются вместе, и объединенные правила используются для создания компактного профиля бинарного искусства, характерного для APK. Затем искусство может использовать этот профиль, когда APK установлен на устройствах, чтобы заранее собрать конкретное подмножество приложения для повышения производительности приложения, особенно первого запуска. Обратите внимание, что это не повлияет на отлаживаемые приложения.

Версия 1.0.0-beta08

2 июня 2021 г.

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

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

Изменение API поведения

  • Behriate Breaking: Card теперь потребляет клики, делая клики, добавленные через Card(Modifier.clickable) , чтобы быть не-операционным. Пожалуйста, используйте новую экспериментальную перегрузку карты, которая принимает OnClick. ( IA8744 , B/183775620 )
    • Добавлена ​​новая перегрузка карты, которая обрабатывает клики, а также другие функциональные возможности: Индикация, взаимодействие, включено/отключено. Невозможно использовать обычную неплюсируемую карту с Modifier.clickable , потому что карта не будет обрезать индикацию волны в этих случаях.
  • Разрушение поведения: Surface теперь потребляет клики, делая клики, добавляемые через Surface(Modifier.clickable) , чтобы быть не-операционным. Пожалуйста, используйте новую экспериментальную перегрузку поверхности, которая принимает OnClick. ( I73e6c , b/183775620 )
    • Добавлена ​​новая перегрузка поверхности, которая обрабатывает клики, а также другие функциональные возможности: Индикация, взаимодействие, включено/отключено. Невозможно использовать обычную неплюсируемую поверхность с Modifier.clickable . Подберите, потому что в этих случаях поверхность не будет обрезать индикацию пульсации.

Изменения API

  • FabPosition была преобразована в встроенный класс из Enum, чтобы поддержать потенциальное расширение в будущем ( I030FB )
  • Рефакторированные использование перечисления в входные классы, чтобы избежать проблем с исчерпывающими, когда добавляются новые значения перечисления. ( I2b5eb )
  • Добавляет тайм -аут нажатия в Clickable / Toggleable, чтобы предотвратить отображение пульсации во время прокрутки / перетаскивания ( IA2704 , B / 168524931 )
  • Свойства ContentDescription и Text Semantics больше не являются отдельными значениями, а списками. Это позволяет объединять их, как и в случае сознания. Также предоставили API лучшего тестирования для использования этих изменений ( ICA6BF , B/184825850 )
  • Modifier.focusModifier() устарел и заменяется Modifier.focusTarget() ( I6C860 )
  • Заменил Enum FocusState Enum с интерфейсом FocusState ( ICCC1A , B/187055290 )
  • Удален LocalRippleNativeRendering теперь, когда реализация Ripple, поддерживаемая видом, стабильна ( i7fab3 , b/188569367 )

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

  • Modifier.onGloballyPositioned() был изменен, чтобы сообщать координаты этого модификатора в цепочке модификаторов, а не координаты макета после применения всех модификаторов. Это означает, что теперь порядок модификаторов влияет на то, какие координаты будут сообщаться. ( Ieb67d , р/177926591 )
  • Добавлены Readme для существующего каталога материалов Compose. ( If9191 )

Версия 1.0.0-beta07

18 мая 2021 г.

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

Изменения API

  • Вам больше не нужно использовать методы расширения для поддержки маршрута в навигационном комплексе. ( I22beb , b/172823546 )

Версия 1.0.0-beta06

5 мая 2021 г.

androidx.compose.material:material-*:1.0.0-beta06 выпускается. Версия 1.0.0-beta06 содержит эти коммиты.

Изменения API

  • Ripple был мигрирован, чтобы использовать RippleDrawable внутри Android -устройства. Это означает, что анимация Ripple произойдет на renderThread, и поэтому будет гладко, даже если поток пользовательского интерфейса находится под нагрузкой, например, когда навигация между экранами. Это не изменяет поверхность API Ripple, но в результате этого изменения могут быть введены изменения поведения. Чтобы помочь миграции, было добавлено LocalRippleNativeRendering то, что было добавлено false значение для этого композиции, чтобы вернуться к предыдущей реализации Ripple внутри CompositionLocalProvider. Этот API будет временным и будет удален в будущем, поэтому, если вы столкнетесь с проблемами, которые заставляют вас использовать этот API, пожалуйста, подайте ошибку . ( I902f8 , b/168777351 , b/183019123 )
  • Добавлены API -интерфейсы CollectionInfo и CollectionIteminfo, которые позволяют отмечать коллекцию и его элементы для служб доступности ( ID54EF , B/180479017 )
  • Добавлена error API доступности, которая позволяет отметить узел, который содержит недопустимый вход ( I12997 , B/180584804 , B/182142737 )

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

  • Обновленная композитная внедрение каталога материалов внедрение из: https://github.com/google/accompanist/pull/365. ( I25dc3 )
  • Дети по ряду и столбцам с весом (Fill = false) больше не заставляют родителя заполнять все доступное пространство основной оси. ( IED94D , B/186012444 , B/184355105 )

Версия 1.0.0-бета05

21 апреля 2021 г.

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

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

  • Добавлены компонентные изображения плитки, сборщик темы и более конкретные URL -адреса меню для существующего каталога материалов Compose. ( I9b58e )

Версия 1.0.0-beta04

7 апреля 2021 г.

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

Изменения API

  • Изменение API: состояние DrawerState больше не распространяется на экспериментальный Swipeablestate.
    • Изменение API: BottomDrawerState теперь помечен как экспериментальный, чтобы соответствовать уже экспериментальному компоненту BottomDrawer ( I81114 , B/181656094 )
  • RENAME hideSoftwareKeyboard и showSoftwareKeyboard на SoftwareKeyboardController чтобы hide() и show() соответственно.
    • Предоставьте полный композиционный интерфейс для LocalSoftwarekeyBoardController, позволяя его установить (особенно полезно в тестах) ( i579a6 )
  • Доступен API доступности Liveregion. Если узел помечен как живой регион, службы доступности автоматически уведомит пользователя о его изменениях ( idcf6f , b/172590946 )

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

  • Добавлена ​​внедрение каталога материалов для существующего модуля. В настоящее время отсутствует: компонентные плитки изображения, выбор темы (для добавления в последующих изменениях). ( IE7A94 )

Версия 1.0.0-бета03

24 марта 2021 г.

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

Изменения API

  • DefaultMonotonicFrameClock устарел. Призыв withFrameNanos или Recomposer.runRecomposeAndApplyChanges без MonotonicFrameClock теперь будет выбросить IllegalStateException . ( I4eb0d )
  • Добавлен новый API LeadingIconTab , чтобы поддержать отображение значка и встроенного текста на вкладке. ( I23267 )

Внешний вклад

  • [Jossi Wolf] BottomDrawer теперь завершает содержание слота ящика. BottomDrawer не бросает IllegalStateException , когда родитель имеет бесконечную высоту. Нижний ящик теперь откроется для расширенного состояния, если он меньше 50% своего родителя. Документы вокруг BottomDrawerState и ModalBottomSheetLayoutState были обновлены. BottomDrawerState#isOpen возвращает True сейчас, если он находится в открытом или расширенном состоянии. ( I87241 )

Версия 1.0.0-beta02

10 марта 2021 г.

androidx.compose.material:material-*:1.0.0-beta02 выпускается. Версия 1.0.0-beta02 содержит эти коммиты.

Изменения API

  • Добавлен новый локальный API LocalSoftwareKeyboardController , чтобы заменить предыдущий интерфейс SoftwareKeyboardController на TextField. ( I5951E , B/168778053 )

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

  • Ввести ограничения на публичное использование экспериментальных API ( I6aa29 , b/174531520 ).
  • Изменил горизонтальный выравнивание по умолчанию для начала Topappbar и BottonAppbar, в соответствии с ROW ( IB2DC7 )
  • Добавлен новый модуль и пользовательский интерфейс заполнителя для каталога материалов, в настоящее время вложенных в существующие демонстрации интеграции. ( IDFCB3 )
  • androidx.compose.ui:ui больше не зависит от AppCompat или фрагмента. Если вы используете ComposeView в своем приложении и используете фрагмент и / или AppCompat, убедитесь, что вы используете AppCompat 1.3+ / Fragment 1.3+ - эти версии необходимы для правильного установки жизненного цикла и сохраненных владельцев состояний, необходимых для ComposeView. ( I1d6fa , b/161814404 )

Версия 1.0.0-бета01

24 февраля 2021 г.

androidx.compose.material:material-*:1.0.0-beta01 выпускается. Версия 1.0.0-beta01 содержит эти коммиты.

Это первый выпуск бета-версии Compose 1.0.0.

Изменения API

  • Модификаторы размера были переименованы. Modifier.width/height/size были переименованы в requireWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize были переименованы в ширину/высоту/размер. ( I5b414 )
  • ImagerSource и VectorResource теперь являются расширением функций на ImageBitmap и Companions ImageVector соответственно. Загрузка {изображение, вектор, шрифт} Функции ресурсов были удалены. ( 189130 )
  • Модификаторы для размеров в внутреннюю часть больше не экспериментальны. ( I15744 )
  • Удаленные утверждения DP ( I798D2 )
  • Удал SoftwareKeyKearkController обратный вызов из всех текстовых полей, которые будут заменены новым API в ближайшее время. ( IAE869 , B/168778053 )
  • Переключатель, флажок и радиобаттонский действие теперь недоступны. Флакторы в кликабельных образцах обновляются для использования этой функции. ( If601b , b/171819073 )
  • InteractionState заменено на [Mutable]InteractionSource
    • Интерфейсы отвечают за отправку/сбор событий взаимодействия.
    • Вместо передачи interactionState = remember { InteractionState() } таким компонентам, как Button и Modifier.clickable() , используйте interactionSource = remember { MutableInteractionSource() } .
    • Вместо: Interaction.Pressed in interactionState вам следует использовать функции расширения InteractionSource, такие как InteractionSource.collectIsPressedAsState().
    • В сложных случаях использования вы можете использовать InteractionSource.interactions для наблюдения за потоком взаимодействий. Дополнительные сведения см. в документации и примерах InteractionSource.
    • ( I85965 , б/152525426 , б/171913923 , б/171710801 , б/174852378 )
  • Добавить интерфейс Accessibility Mananger и LocalAccessibility Mananger в композиции ( i53520 )
  • Удаленные устаревшие методы LayoutCoordinates, используйте функцию вместо свойства для позиционирования и Boundsinparent ( i580ed , b/169874631 , b/175142755 )
  • Слайдер теперь поддерживает включенное/отключенное состояние ( i6d56b , b/179793072 )
  • Создал новый текстовый результат для входных сеансов из текстовых компонентов низкого уровня, таких как Coretextfield. ( I8817f , B/177662148 )
  • AnimationEndReason.Interrupted удален. CancellationException будет выброшено, если анимация прервется. ( I2cbbc , б/179695417 )
  • Удален @ExperimentalRippleApi и изменил RippleAlpha на класс со свойствами вместо интерфейса. ( I6df7c )
  • Добавлен интерфейс TextFieldColors для представления разных цветов, используемых в Textfield и OutlidenceField в разных состояниях. Для реализации Defaut см. TextfieldDefaults.TextFieldColors и TextFieldDefaults.outlinedTextFieldColors.
    • Переименовано в параметр iserrorvalue внутри Textfield и OpintextExtfield в ISERROR. ( I831F9 , B/171305338 , B/168004067 )
  • Добавьте модификатор SelectionGroup, который позволяет отмечать сбор вкладок или радиобулков для целей доступности ( IE5C29 )
  • Добавить lazyliststate.animatescrolltoitem

    Этот метод плавно прокручивает конкретный элемент в списке. ( I4bfd7 )

  • ScrollableState.smoothScrollBy() был переименован в animateScrollBy() LazyListState.snapToItemIndex() был переименован в scrollToItem() ScrollState.smoothScrollTo() был переименован в animateScrollTo() ( i35de ).

  • Любые композиции, помеченные @ReadOnlyComposable теперь подтверждены временем компиляции, чтобы убедиться, что они выполняют только другие @ReadOnlyComposables ( i58961 )

  • API TargetAnimation был удален. ( If47d1 , б/177457083 )

  • Положение прокрутки в Modifier.VerticalScroll ()/horizontalsCroll () представлен с INT теперь ( I81298 )

  • Пакеты методов SmoothScrollBy и ScrollBy изменены на androidx.compose.foundation.gestures.* ( I3f7c1 , b/175294473 )

  • FlingConfig был переименован в Flingbebehavior, теперь позволяет настраивать анимацию приостановки, а не предопределенные распады. ( I02B86 , B/1752944473 )

  • Модификаторы размера были переименованы. Modifier.width/height/size были переименованы в requireWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize были переименованы в ширину/высоту/размер. ( I5b414 )

  • DefaultMinsizeConstraints был переименован в Default Minsize. ( I4eaae )

  • Ориентация перенесена в пакет фундамента. VelocirtTracker перешёл с ui.gesture на ui.input.pointer. ( Iff4a8 , б/175294473 )

  • ThatelState.open () и CtlectState.Close () теперь приостановлены функции. Используйте momplycoroutinescope (), чтобы получить объем композиции, чтобы вызвать их ( i16f60 , b/1752944473 )

  • Поставщики были переименованы в CompositionLocalProvider

    • Конструктор композиции больше не принимает ключевой параметр и устарел.
    • CurrentCompositeKyhash был превращен в композиционное свойство верхнего уровня вместо композиционной функции верхнего уровня.
    • CompositionData и CompositionGroup были перемещены на Androidx.compose.runtime.tooling Пространство имен
    • ComposableLambda был сделан интерфейсом вместо бетонного класса, и больше не имеет параметров типа.
    • ComposableLambdan был сделан интерфейсом вместо бетонного класса, и больше не имеет параметров типа.
    • Функция снимка была перемещена на Androidx.compose.Runtime Пространство имен
    • Метод слияния SnapshotMutation ProLicy больше не экспериментальный
    • Функция @TestOnly Top Level ClearRoots была удалена. Это больше не нужно.
    • KeySourceInFoof и ResetSourceInfo функции были удалены. Они больше не нужны.
    • Composer.collectkeySourceInformation была удалена. Это больше не нужно.
    • Isjoinedkey, JoinedKeyLeft и методы kinedKeyright были удалены. Они больше не нужны.
    • Различные API верхнего уровня были перемещены и реорганизованы в разные файлы. Из -за семантики класса файлов Kotlin, это сломает бинарную совместимость, но не совместимость с источником, поэтому не должно быть проблемой для большинства пользователей.
    • ( I99B7D , B/177245490 )
  • MODIFIER.CROLLABLE был переработан. Теперь он использует прокручиваемый интерфейс вместо класса ScollableController ( I4F5A5 , B/174485541 , B/175294473 )

  • Modifier.draggable теперь принимает DraggableState вместо простой лямбды. вы можете создать состояние с помощью rememberDraggableState { delta -> } чтобы получить то же поведение, что и раньше ( Ica70f , b/175294473 )

  • ZoomableController.smoothScaleby и ZoomableController.stopanimation теперь приостановлены функции. ( I7f970 , b/177457083 )

  • Удалили некоторые ранее устаревшие API ( ICE5DA , B/178633932 )

  • Внесли следующие изменения API материала:

    • Добавлен параметр ContentPadding в верхний/нижний апбар, чтобы разрешить настройку накладки по умолчанию.
    • Переупорядоченные параметры в фоне
    • Перенесенный параметр icon в BottomNavigationItem, чтобы быть selected и onClick .
    • Переименовано в параметр alwaysShowLabels alwaysShowLabel в нижней части.
    • Переименованные параметры bodyContent в нескольких компонентах, чтобы просто content .
    • Переупорядоченные параметры в ButtonDefaults.buttonColors() . Обратите внимание, что, поскольку тип параметров не изменился, это не приведет к ошибке в вашем коде - пожалуйста, убедитесь, что вы либо используете названные параметры, либо обновляете заказ вручную, в противном случае ваш код не будет работать так же, как и ранее.
    • Добавлен secondaryVariant параметр в darkColors() . Этот цвет, как правило, такой же, как и secondary в темной теме, но добавление для последовательности и дальнейшей настройки.
    • Удаленные возвышения и оживления () с общественной поверхности API, поскольку они не использовались / полезны.
    • Переименовано в onValueChangeEnd в Slider , чтобы onValueChangeFinished и сделать его нулевым.
    • Переименованный параметр text в Snackbar к content для последовательности.
    • Добавлен параметр contentPadding в DropdownMenuItem , чтобы позволить настройку настройки по умолчанию, а content - расширение на RowScope .
    • Переименован ModalDrawerLayout в ModalDrawer .
    • Переименован в BottomDrawerLayout до BottomDrawer .
    • ( I1CC66 )
  • BasicTextField теперь принимает кисть вместо цвета для лучшей настройки ( i83a36 )

  • ImagerSource и VectorResource теперь являются расширением функций на ImageBitmap и Companions ImageVector соответственно. Загрузка {изображение, вектор, шрифт} Функции ресурсов были удалены. ( 189130 )

  • Изменено индикация#createIndication () на указание#unmentupdatedIndication (interactionState) и удаляет параметр InteractionState из IndicationInstance#DrawIndication (). Индикация должна быть ответственна только за привлечение визуальных эффектов и не запуска анимации / состояния письма в ответ на изменения в взаимодействии. Эти анимации и государственные записи должны происходить в рамках rememberUpdatedIndication() . Параметр indication в Modifier.indication также была изменена как необходимый параметр. ( IC1764 , B/152525426 )

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

  • Добавлен новый локальный API COMPOSOWREAKEKEYBOARDCONTROLLER, чтобы заменить предыдущий интерфейс программного обеспечения kogleController на TextField. ( I658b6 , b/168778053 )

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

10 февраля 2021 г.

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

Изменения API

  • Modifier.pointerInput теперь требует ключей запоминания, чтобы указать, когда сопрограмма обнаружения ввода указателя должна перезапуститься для новых зависимостей. ( I849cd )
  • BottomDrawerlayout и ListItem были помечены как @ExperimentalMaterialapi ( ID766E )
  • Paddingvalues.absolute был добавлен и может использоваться в API, принимающих паддинг -атмосферы. ( IA5F30 )
  • OnimeactionPerformed устарел. Вместо этого используйте клавишники ( IF0BBD , B/179071523 )
  • Чтобы лучше соответствовать соглашениям об именах с ImageBitmap и ImageVector, ImagePainter был переименован в Bitmappainter для параллельного векторпейтера. ( IBA381 , B/174565889 )
  • Animatable.snapTo и Animatable.stop теперь являются функциями приостановки ( If4288 ).
  • ComponentActivity.SetContent перенесла на Androidx.Activity.compose.SetContent в модуле AndroidX.Activity: Compose-Compose. ( ICF416 )
  • Методы деструктуризации и копирования() были удалены из нескольких классов, где они использовались редко. ( I26702 , б/178659281 )
  • Make Balfexpand () и Expand () в ModalbottomSheetState Internal ( IC914E )
  • Изменено индикация#createInstance, чтобы быть @composable, и изменило локальное обозначение, чтобы содержать индикацию, а не () -> Индикацию. ( I5eeea , b/157150564 )
  • Переносили Alertdialog и Dropdownmenu, чтобы быть Android только на данный момент. Добавлен параметр PopuppRoperties в раскрывающееся мощность для дальнейшей конфигурации базового всплывающего окна. ( I9c443 )
  • LoadFonTresource устарел. Вместо этого используйте Fontresource. ImagerSource, LoadImagerSource, VectorResource и LoadVectorResource устаревают. Вместо этого используйте Painterresource. ( I6b809 )
  • Удаленный параметр toggle и toggleModifier , переименованного в выпадающем dropdownModifier , dropdownOffset и dropdownContent контенте на modifier , offset и content соответственно. Расположенный меню теперь ведет себя последовательно со Popup , где родительский макет используется для положения меню. В большинстве случаев вы можете перемещать toggle , чтобы стать родным братом, DropdownMenu и обернуть оба в Box . См. Обновленный пример в документации для получения дополнительной информации об использовании этого API. ( I884fb )
  • tointpx () был переименован в Roundtopx (). ( I9b7e4 , b/173502290 )
  • Intbounds был переименован в интеграцию, и API был улучшен. ( I1f6ff )
  • Добавлены действия по расширению и обрушению семантики. Добавлены Expand и Halfexpand в ModalbottomSheetState ( IB5064 )
  • MODIFIER.Draggesturefilter был устарел. Используйте Modifier.pointerInput { detectDragGestures (...)} вместо этого. В качестве альтернативы, используйте модификатор.daggeable для одной оси сопротивления ( i0ba93 , b/175294473 )
  • Переименованные в окружающую среду, чтобы соответствовать окружающей среде -> композиционное переименование. Амбиденты раньше назывались AmbientFoo, теперь композиции называются Localfoo. ( I2d55d )
  • Отбор был перенесен в фундамент. ( I7892b )
  • Аналогично тому, как мы ранее удаляли компонуемое state { 0 } и теперь продвигаем его использование, например, remember { mutableStateOf(0) } мы собираемся удалить компонуемое savedInstanceState { 0 } . Вместо этого вам следует использовать rememberSaveable { mutableStateOf(0) } , и он будет автоматически сохраняться и восстанавливаться, если тип, используемый внутри MutableState, может быть сохранен в Bundle. Если раньше вы передавали пользовательский объект сохранения, теперь вам нужно использовать новую перегрузку RememberSaveable, которая имеет параметр stateSaver . Использование будет выглядеть следующим образом: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } ( Ib4c26 , b/177338004 )
  • Добавлен ProgressBarrangeInfo.inteTermate, чтобы отметить неопределенные бары прогресса для доступности ( i6Fe05 )
  • @Composablecontract был устарел в пользу еще трех специфических аннотаций.

    • @ComposableContract(restartable = false) стал @NonRestartableComposable
    • @ComposableContract(readonly = true) стал @ReadOnlyComposable
    • @ComposableContract(preventCapture = true) стал @DisallowComposableCalls
    • @ComposableContract(tracked = true) был удален.
    • ( I60a9d )
  • emptyContent() и (@Composable () -> Unit).orEmpty() Утилиты устарели, поскольку они больше не оказывают положительного воздействия на производительность или значения ( I0484D )

  • RememberSavedInstanceState() был переименован в RememberSaveable() и перемещен в пакет androidx.compose.runtime.saveable. ( I1366e , б / 177338004 )

  • Saver, ListSaver (), MAPSaver (), AutoSaver был перенесен с androidx.compose.runtime.savedinStancestate на androidx.compose.runtime.savable ( i77fe6 )

  • Параметры на Roundercornershape, Cutcornershape и угловой основе были переименованы слева/справа, чтобы запустить/конец, чтобы поддержать автоза зеркало формы в направлении RTL. Absoluteroundercornershape и Absolutecutcornershape были введены для тех случаев, когда автомирация не желается. ( I61040 , B/152756983 )

  • Изменены text TAB и параметры icon , а также параметр label BottomNavigationItem, чтобы быть нулевым, чтобы лучше передать поведение компонента, когда эти параметры не предоставляются, поскольку она влияет на размер и расположение компонента. Если вы в настоящее время передаете emptyContent() , чтобы представлять нет текста / значка / метки, вместо этого вам следует использовать null . ( I57ed4 )

  • Переименованное в ContentColorfor Color Parameter to FounalColor ( i5bb67 )

  • Устаревшие табдефулты и заменили его на TabroWdefaults. ( I0f189 )

  • Введенный API Colormatrix, используемый для изменения значений RGB исходного контента рефакторированного цветового API, чтобы быть интерфейсом и соответствовать реализации PathEffect. ( ICA1E8 )

  • AnimatedValue/Float больше не поддерживается. Вместо этого используйте Animatable. ( I71345 , B/177457083 )

  • Добавить SemanticsProperties.panetitle API. ( I20D5A )

  • Добавлены включенные параметры в Tab и BottomNavigationItem, чтобы предотвратить их кликацию. Изменен BotherNavigationItem на Rowscope.bottomNavigationItem, чтобы лучше выразить свои требования к макету в своем API. ( ID683d )

  • TapGestureFilter, doubleTapGestureFilter, longPressGestureFilter и pressIndicaitonGestureFilter устарели. Вместо этого используйте Modifier.clickable или Modifier.pointerInput с функцией обнаруженияTapGestures. ( I6baf9 , б/175294473 )

  • Добавьте Param MayoutDirection в SHAME'S CREATEOUTLINE. Это позволяет создавать формы, осведомленные на направлении макета. ( I57c20 , b/152756983 )

  • Удален Recomposer.current() . [Аннотация] ComposeView теперь по умолчанию для лениво созданных, рецимпозиторов с окнами, управляемыми ViewTreelifeCycleowner для окна. Клеки анимации на основе переоборудования и Framenanos приостановлены, а жизненный цикл хозяина остановлен. ( I38e11 )

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

  • Значок теперь будет масштабироваться, чтобы соответствовать его размеру, уважая к нему модификаторы размера. Например Icon(.., modifier = Modifier.size(50.dp) теперь будет нарисовать в пространстве 50x50DP. ( IB2BA9 , B/178796190 )

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

28 января 2021 г.

androidx.compose.material:material-*:1.0.0-alpha11 выпускается. Версия 1.0.0-alpha11 содержит эти коммиты.

Изменения API

  • Продвигает некоторые материалы API, чтобы больше не быть @Experimental ( i5d20e )
  • К изображению и значку добавлен параметр описания контента. Он используется для предоставления описания служб доступности ( I2ac4c ).
  • Изменяет интерфейсы параметров материала с отслеживанием состояния, чтобы иметь функции @Composable, которые возвращают State<T> . Добавляет Animatable.asState() , чтобы упростить преобразование Animatable в состояние. Также изменяется animateElevation на расширение приостановки Animatable. ( Если613c )
  • Snackbar, Snackbarhost, Snackbarhoststate больше не @ExperimentalMaterialAPI ( id1fb5 )
  • Изменит типографику, формы и таб -сайте, чтобы больше не быть классами данных. Добавляет функцию копирования для типографии и форм, чтобы заменить сгенерированные. ( I40037 )
  • Удалил некоторые ранее устаревшие материалы ( IFAA25 )

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

  • onCommit, onDispose и onActive устарели в пользу API SideEffect и DisposableEffect ( If760e ).
  • Переход на основе TransitionDefinition устарел ( I0ac57 ).
  • Теперь поддерживается начальное состояние в updateTransition ( Ifd51d ).
  • С Constraints был переработан как BoxWithConstraints и переехал на Foundation.layout. ( I9420B , B/173387208 )
  • Установите Scrollby без SUSPEND, удалите Scrollto без SUSPEND

    Теперь мы рекомендуем использовать функции приостановки для управления прокруткой и ждать завершения свитка. Мы выходим из строя и/или удаляем версии этих функций, не высказываясь, как часть этого перехода. ( IE9CED )

  • Умолете, несущественный Smoothscrollby, теперь мы рекомендуем использовать функции подвески для управления прокруткой и ждать завершения свитка. Мы осуждаем не подсказанные версии этих функций как часть этого перехода. ( I12880 )

  • Введен ComposeContentTestRule , который расширяет ComposeTestRule и определяет setContent , который был удален из ComposeTestRule . Добавлен заводской метод createEmptyComposeRule() , который возвращает ComposeTestRule и не запускает для вас деятельность. Используйте это, когда вы хотите запустить свою деятельность во время теста, например, используя ActivityScenario.launch ( i9d782 , b/174472899 )

  • Волновая пульсация, используемая в кнопке и плавании, больше не может быть настроена, предоставляя новое указание посредством AmbientIncation - это никогда не предназначалось для того, чтобы настраивать эти компоненты, и теперь это делает эти компоненты в соответствии с другими компонентами материала. Чтобы настроить рябы по применению, см. Rippleteme. ( I546c5 )

  • animateAsState теперь называется animateFooAsState, где Foo — тип анимируемой переменной. например Float, Dp, Offset и т. д. ( Ie7e25 )

  • BasicTextField получил новый параметр под названием decorationBox . Это позволяет добавлять декорации, такие как значки, заполнители, этикетку и аналогично текстовому полю и увеличивать его целевую область. ( I16996 )

  • Исправление для ошибки, которая позволила установить ширину текстового поля материала меньше 280.dp ( i78373 )

  • Параметр Candrag был удален из модификатора .

  • Удалите DisplaySize, как следует избегать. Как правило, лучше использовать размер orroot () или размер окна, по крайней мере. ( I62db4 )

  • Теперь в поверхности могут быть несколько детей. ( I66a92 , b/144488459 )

  • validate и CompositionReference() теперь устарели в пользу currentRecomposeScope и RememberCompositionReference соответственно. ( I583a8 )

  • Изменения PopuppositionProvider для использования оконных координат, а не глобальных координат. Переименование ParentGlobalBounds в якорьи и изменения WindowsGlobalbounds для windowSize: IntSize ( i2994a )

  • Длительность и Время работы будут заменены на Длинные миллисекунды, и этот шаг устранит зависимость ввода указателя от этих классов. ( Ia33b2 , б/175142755 , б/177420019 )

  • AnimatedFloat.fling, который принимает FlingConfig, был удален. Пожалуйста, используйте animatable.animatedecay вместо этого. ( I4659b , b/177457083 )

  • Кликабельные, переключаемые и выбираемые теперь можно создавать вне композиции ( I0a130 , b/172938345 , b/175294473 )

  • Плавность изменена на функциональный интерфейс ( Ib14e5 ).

  • Scrollablecolumn/ряд были устарели. Использование ScrollableColumn менее эффективно по сравнению с Lazycolumn, когда у вас есть большое содержание прокрутки, потому что с Lazycolumn мы можем составить/измерять/рисовать видимые элементы. Чтобы пользователи не стали неэффективным способом, мы решили установить ScrollableColumn и ScollableRow и вместо этого способствовать использованию Lazycolumn и Lazyrow. Пользователи все еще могут решить, что им не нужно ленивое поведение, и использовать модификаторы непосредственно: Column (modifier.verticalScroll (RemembersCrollState ())) ( IB976B , B/170468083 )

  • Новый фабричный метод items(count: Int) для области LazyColumn/LazyRow/LazyVerticalGrid. items(items: List) и itemsIndexed(items: List) теперь являются функциями расширения, поэтому вам придется вручную импортировать их при использовании. Новые перегрузки расширений для массивов: items(items: Array) и itemsIndexed(Array) ( I803fc , b/175562574 ).

  • Удаленные экспериментальные методы монотонического фрамеанимации ( IB753F , B/170708374 )

  • Устаревшие глобальные координаты и создали новые координаты на основе окон. ( IEE284 )

  • Добавлен MODIFIER.TOOLINGGRAPHICSLAYER, который добавляет модификатор графического уровня при включении проверки. ( I315df )

  • FocusRequester.createrefs теперь отмечается настолько экспериментальным, насколько это может измениться. ( I2d898 , b/177000821 )

  • SemanticsPropertyReceiver.hidden был переименован в Invisibletouser и помечен @ExperimentalComposeuiapi. Доступность RangeInfo была переименована в ProgressBarrangeInfo. STATERSCRENCERANGE был переименован в ProgressBarrangeInfo. Доступность Crollstate была переименована в ScrollaxRange. HorizontalAccessibuityScrollstate был переименован в HorizontalsCrollaxRange. VerticalCaseBessibilityScrollstate был переименован в VerticalScrollaxIsrange. ( ID3148 )

  • Использование TestCoroutineDispatcher при тестировании ( I532b6 )

  • Updated vector graphics API to support parsing of tinting applied to root of vector graphics. ( Id9d53 , b/177210509 )

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

13 января 2021 г.

androidx.compose.material:material-*:1.0.0-alpha10 is released. Версия 1.0.0-alpha10 содержит эти коммиты.

Изменения API

  • Изменена скорость, чтобы в ней были составные части и математические операции. ( Ib0447 )
  • @ExperimentalTesting переименован в @ExperimentalTestApi , чтобы соответствовать аналогичным экспериментальным аннотациям API ( Ia4502 , b/171464963 ).
  • Позиция переименована в DpOffset и удалена функция getDistance() ( Ib2dfd ).
  • Ranamed Color.useOrElse() to Color.takeOrElse() ( Ifdcf5 )
  • Add Toggle to foundation Strings.kt ( I4a5b7 , b/172366489 )
  • FlowRow and FlowColumn were deprecated. Please use a custom layout instead. ( I09027 )
  • Modifier.focus() and Modifier.focusRequester() are deprecated. Use Modifier.focusModifier() and Modifier.focusReference() instead. ( I75a48 , b/175160751 , b/175160532 , b/175077829 )
  • Moved nativeClass to ui module and made it internal. Updated usages of nativeClass in equals implementations to use 'is MyClass' instead. ( I4f734 )

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

  • Added support for disabled and read-only text fields ( I35279 , b/171040474 , b/166478534 )
  • animate() теперь заменен на animateAsState() , который возвращает State<T> вместо T Это позволяет повысить производительность, поскольку область аннулирования можно сузить до места, где считывается значение состояния. ( Ib179e )
  • Add Semantics role API and add Role as a parameter to clickable, selectable and toggleable SemanticsModifier. Changed Modifier.progressSemantics so that Slider can also use it. ( I216cd )

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

16 декабря 2020 г.

androidx.compose.material:material-*:1.0.0-alpha09 is released. Версия 1.0.0-alpha09 содержит эти коммиты.

Изменения API

  • added API to manually trigger settle animation and drag in Modifier.swipeable ( Iaa17a , b/162408885 )
  • Renamed *Constants objects such as ButtonConstants to end with Defaults instead, such as ButtonDefaults. Also removes unnecessary default prefixes from properties in these new objects. ( Ibb915 , b/159982740 )
  • Compose supports property getters that can make composable invocations. Support for this is not going away, but the syntax for declaring a property getter as being @Composable is changing.

    The now-deprecated syntax for doing this was by annotating the property itself:

        @Composable val someProperty: Int get() = ...
    

    The now-correct syntax for doing this is by annotating the getter of the property:

       val someProperty: Int @Composable get() = ...
    

    Both syntaxes will work for some time, but the former deprecated syntax will eventually become a compile error. ( Id9197 )

  • Added androidx.compose.material:material-ripple library containing ripple APIs to allow building interactive components without needing the rest of the Material library. rememberRippleIndication has been deprecated and replaced with rememberRipple. ( Ibdf11 )

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

  • Лямбды в модификаторах смещения теперь возвращают IntOffset, а не Float. ( Ic9ee5 , б/174137212 , б/174146755 )
  • Refactored ShaderBrush to lazily create a shader instance when sizing information of the drawing environment is available. This is useful to define gradients that occupy the full drawing bounds of a composable at composition time, without having to implement custom DrawModifier implementations.

    Deprecated gradient function constructor APIs in favor of factory methods on a Gradient object. ( I511fc , b/173066799 )

  • Modifier.focusObserver is deprecated. Use Modifier.onFocusChanged or Modifier.onFocusEvent instead ( I30f17 , b/168511863 , b/168511484 )

  • Устаревшие LazyColumnFor, LazyRowFor, LazyColumnForIndexed и LazyRowForIndexed. Вместо этого используйте LazyColumn и LazyRow ( I5b48c )

  • Перемещены Dp.VectorConverter, Position.VectorConverter и т. д. в ядро ​​анимации, а старые VectorConverter признаны устаревшими ( If0c4b ).

  • Autofill API is now experimental API and requires opt-in ( I0a1ec )

  • Adding destructuring declarations to create FocusRequester instances ( I35d84 , b/174817008 )

  • accessibilityLabel has been renamed to contentDescription. accessibilityValue has been renamed to stateDescription. ( I250f2 )

  • Новая функция InfiniteRepeatable для создания InfiniteRepeatableSpec ( I668e5 ).

  • The positioning behaviour of DropdownMenus was slightly changed according to the Material spec. ( I34c72 , b/168594123 )

  • InteractionState support for TextFields has been added. ( I61d91 )

  • Added Modifier.clearAndSetSemantics to clear descendants' semantics and set new ones. ( I277ca )

  • Moved ContentDrawScope to ui-graphics module to be with DrawScope. ( Iee043 , b/173832789 )

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

2 декабря 2020 г.

androidx.compose.material:material:1.0.0-alpha08 , androidx.compose.material:material-icons-core:1.0.0-alpha08 , and androidx.compose.material:material-icons-extended:1.0.0-alpha08 are released. Версия 1.0.0-alpha08 содержит эти коммиты.

Изменения API

  • MaterialTheme now sets the correct colors for selection handles and selection background. Non-Material apps can manually use AmbientTextSelectionColors to customize the colors used for selection. ( I1e6f4 , b/139320372 , b/139320907 )
  • Добавлена ​​проверка на предмет именования и положения составных лямбда-параметров, чтобы проверить соответствие рекомендациям по составлению. Также в соответствии с проверкой ворса и рекомендациями некоторые API-интерфейсы, использующие children в качестве имени своей конечной лямбды, были перенесены в content . ( Мек48е )
  • Renamed VectorAsset to ImageVector Moved and renamed VectorAsset to Builder to be an inner class of ImageVector as per API council guidelines. Added typealias of VectorAssetBuilder to link to ImageVector.Builder for compat. ( Icfdc8 )
  • Renamed ImageAsset and related methods to ImageBitmap. ( Ia2d99 )
  • Moved foundation semantics properties to ui ( I6f05c )
  • fun RippleIndication() has been deprecated and replaced with rememberRippleIndication() for consistency with other APIs. ( Id8e2c )
  • Added a singeLine parameter into BasicTextField, TextField and OutlinedTextField. Set this parameter to true to make the text field a single horizontally scrollable line. ( I57004 , b/168187755 )

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

  • Add semantics action Dismiss ( I2b706 )
  • Moved DrawModifier APIs from the androidx.compose.ui package to the androidx.compose.ui.draw package. Created DrawModifierDeprecated.kt file to include typealiases/helper methods to assist with the migration from the deprecated to the current APIs. ( Id6044 , b/173834241 )
  • Renamed Modifier.drawLayer to Modifier.graphicsLayer Also updated related classes to GraphicsLayer as per API feedback. ( I0bd29 , б/173834241 )
  • <T> was removed from SubcomposeLayout declaration. You can use it without specifying a type now. ( Ib60c8 )
  • Добавлены API Modifier.scale/rotate для удобства drawLayer.
    • Modifier.drawOpacity переименован в Modifier.alpha
    • Modifier.drawShadow переименован в Modifier.shadow ( I264ca , b/173208140 ).
  • The alignment parameter of Box was renamed to contentAlignment. ( I2c957 )
  • Модификаторы offsetPx были переименованы в offset. Теперь они принимают лямбда-параметры вместо State. ( Ic3021 , б/173594846 )
  • Introduced SweepGradientShader and SweepGradientBrush APIs. ( Ia22c1 )
  • Added lint check for Modifier parameters in Composable functions. This lint check checks the naming, return type, default value, and order of the parameter for consistency with Compose guidelines. ( If493b )
  • Updated TextFieldValue API
    • made TextFieldValue.composition readonly
    • removed exception thrown for invalid selection range ( I4a675 , b/172239032 )
  • Added a new Modifier.drawLayer() overload. It takes a lambda block on a new GraphicsLayerScope where you define the layer parameters in a way which allows to skip recomposition and relayout when the state change happens. DrawLayerModifier is now internal in preparation to migrating its logic into placeable.placeWithLayer() method of LayoutModifier ( I15e9f , b/173030831 )
  • Устаревшие свойства Ambient с суффиксом Ambient заменены новыми свойствами с префиксом Ambient в соответствии с другими рекомендациями API Ambient и Compose. ( я33440 )
  • Added lint check to check that Modifier factories use androidx.compose.ui.composed {} internally, instead of being marked as @Composable . ( I3c4bc )
  • Semantics argument mergeAllDescendants was renamed to mergeDescendants. ( Ib6250 )
  • Контроль времени в тестах (TestAnimationClock и его использование) теперь является экспериментальным ( I6ef86 , b/171378521 ).
  • Удалите старый модуль ui-test и его заглушки ( I3a7cb ).
  • TextUnit.Inherit is renamed to TextUnit.Unspecified for consistency with other units. ( Ifce19 )
  • Интерфейс выравнивания был обновлен и стал функциональным. ( I46a07 , б/172311734 )
  • id was renamed to layoutId for LayoutIdParentData. Measurable.id was renamed to Measurable.layoutId. ( Iadbcb , b/172449643 )

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

11 ноября 2020 г.

androidx.compose.material:material:1.0.0-alpha07 , androidx.compose.material:material-icons-core:1.0.0-alpha07 , and androidx.compose.material:material-icons-extended:1.0.0-alpha07 are released. Версия 1.0.0-alpha07 содержит эти коммиты.

Изменения API

  • Emphasis has been deprecated and replaced with AmbientContentAlpha. AmbientContentAlpha is a simpler abstraction that represents the preferred content alpha for part of the hierarchy, similar to how AmbientContentColor represents the preferred content color. Text and Icon now consume the current value from AmbientContentAlpha by default, and you can manually do: color.copy(alpha = AmbientContentAlpha.current) to have the same effect in your components. Instead of using ProvideEmphasis, you can just directly provide a value through AmbientContentAlpha, and use the new default levels in ContentAlpha to replace the old EmphasisLevels. ( Idf03e , b/159017896 )
  • Adds androidx.compose.material.AmbientContentColor to replace androidx.compose.foundation.AmbientContentColor ( I84f7b , b/172067770 )
  • Adds androidx.compose.material.Text to replace androidx.compose.foundation.Text as a high level, themeable Text component. For a basic text component that does not consume color / text style from the theme, use BasicText. ( Ie6ae0 )
  • Added maxLines to TextFields ( Ib2a5b )
  • Update TextFields to accept KeyboardOptions ( Ida7f3 )
  • Surface now uses the absolute (total) elevation when calculating elevation overlays, so a Surface nested in another Surface will use the combined elevation to draw the overlay. ( I7bd2b , b/171031040 )

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

  • captureToBitmap moved to captureToImage . ( I86385 )
  • Основы AmbientTextStyle, ProvideTextStyle и AmbientContentColor устарели. Вместо этого используйте новые версии, доступные в библиотеке материалов. Для приложений, не связанных с материалами, вместо этого вам следует создать собственную тематическую среду, специфичную для системы дизайна, которую можно будет использовать в ваших собственных компонентах. ( I74acc , б/172067770 )
  • Foundation.Text устарел и заменен на Material.Text. Базовый, независимый текстовый API, который не использует значения из темы, см. в androidx.compose.foundation.BasicText. ( Если64cb )
  • Rename KeyboardOptions as ImeOptions ( I82f36 )
  • Moved KeyboardType and ImeAction into KeyboardOptions ( I910ce )
  • BaseTextField has been deprecated. Use BasicTextField instead. ( I896eb )
  • ExperimentalSubcomposeLayoutApi annotation was removed. SubcomposeLayout can now be used without adding @OptIn ( I708ad )
  • FirstBaseline and LastBaseline were moved to androidx.compose.ui.layout package ( Ied2e7 )
  • Updated Icon API to take in Color.Unspecified as a possible tint color which will draw the provided asset or painter without a ColorFilter. Previously attempts to ignore tinting with Color.Unspecified would tint with a transparent color ending up with nothing rendered at all. ( I049e2 , b/171624632 )
  • relativePaddingFrom was renamed to paddingFrom. The paddingFromBaseline modifier was added, as convenience for specifying distances from layout bounds to text baselines. ( I0440a , b/170633813 )
  • LaunchedTask was renamed to LaunchedEffect for consistency with the SideEffect and DisposableEffect APIs. LaunchedEffect with no subject params is not permitted in order to encourage best practices. ( Ifd3d4 )
  • MeasureResult был удален из MeasureScope. ( Ibf96d , б/171184002 )
  • Несколько символов, связанных с макетом, были перенесены из androidx.compose.ui в androidx.compose.layout.ui. ( I0fa98 , б/170475424 )

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

28 октября 2020 г.

androidx.compose.material:material:1.0.0-alpha06 , androidx.compose.material:material-icons-core:1.0.0-alpha06 , and androidx.compose.material:material-icons-extended:1.0.0-alpha06 are released. Версия 1.0.0-alpha06 содержит эти коммиты.

Изменения API

  • androidx.compose.foundation.Icon has been moved to androidx.compose.material.Icon. You can also use the Image component / Modifier.paint() with a Painter if you do not want to use the Material library. ( I9f622 )
  • Adds FloatingActionButtonElevation to represent elevation used by FABs in different states. See FloatingActionButtonConstants.defaultElevation() for the default implementation ( I2d4f5 )
  • Adds SwitchColors interface to represent colors used by a Switch in different states. See SwitchConstants.defaultColors to customize these colors. ( I93805 )
  • Adds ButtonElevation and ButtonColors interfaces to represent elevation and colors used by buttons in different states. See the default functions in ButtonConstants to customize these parameters. ( Ic5b7b )
  • Adds RadioButtonColors interface to represent colors used by a RadioButton in different states. See RadioButtonConstants.defaultColors() to customize the colors used in different states. ( I74130 )
  • Adds CheckboxColors interface to represent colors used by a checkbox in different states. See CheckboxConstants.defaultColors() to customize the colors used in different states. ( I7dbdb )

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

  • Material components do not set the elevation as zIndex anymore. Which means that within the same parent the child with larger shadow size will not be drawn on top of the child with the smaller one automatically. If you still need such behavior please set Modifier.zIndex() manually where needed ( I70417 , b/170623932 )
  • Deprecate VectorPainter in favor of rememberVectorPainter to better indicate that the composable API internally leverages 'remember' to persist data across compositions. ( Ifda43 )
  • Включить переходы в Composetestrule; Удалите опцию, чтобы включить мигающий курсор из Composetestrule. ( If0de3 )
  • Added single line keyboard option to CoreTextField ( I72e6d )
  • Renamed Radius API to CornerRadius to better express how it is used throughout Compose. Updated documentation to indicate that negative corner radii are clamped to zero. ( I130c7 , b/168762961 )
  • Refactored DrawScope and ContentDrawScope to be interfaces instead of abstract classes
    • Created CanvasDrawScope implementation of DrawScope
    • Refactored implementations of DrawScope to use CanvasScope instead
    • Created DrawContext to wrap dependencies for DrawScope
    • Removed deprecated methods on DrawScope ( I56f5e )
  • Box was made an inline function. ( Ibce0c , b/155056091 )

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

14 октября 2020 года

androidx.compose.material:material:1.0.0-alpha05 , androidx.compose.material:material-icons-core:1.0.0-alpha05 , and androidx.compose.material:material-icons-extended:1.0.0-alpha05 are released. Версия 1.0.0-alpha05 содержит эти коммиты.

Изменения API

  • Popups and dialogs now inherit FLAG_SECURE from parent Window. Also added option to configure this explicitly ( I64966 , b/143778148 , b/143778149 )
  • Modifier.swipeable has 56.dp thresholds for states by default now ( Iab825 , b/168610267 )
  • all scaffold states marked as @Stable. drawerGesturesEnabled in ScaffoldState moved to Scaffold itself. ( I36645 , b/168297016 )
  • Removes nullable type from Scaffold lambda parameters, you can use emptyContent() to represent no content for a given parameter. ( I2b318 , b/157633857 , b/158551084 )
  • Университет ContentColor () и CurrentTextStyle () API () и заменяет их на AmbientContentcolor и AmbientTextStyle Ambients соответственно. Вы можете получить доступ к текущему значению с помощью .current Это было изменено для последовательности, и чтобы избежать нескольких способов выполнить одно и то же. Кроме того, переименование некоторых окружающих свойств, чтобы лучше описать их цель следующим образом:

    • ContentColorambient -> AmbientContentcolor
    • TextStileAmbient -> AmbientTextStyle
    • IndicationAmbient -> ambientindication
    • Акцентирование -> Ambientemphasislevels
    • Ripplethemeambient -> ambientRippleTheme ( i37b6d )
  • Adds AmbientElevationOverlay, allowing customizing / disabling the default elevation overlay applied to Surfaces in dark theme. ( I5b74d )

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

  • As part of the standardization of sentinel values for inline classes, rename Color.Unset to Color.Unspecified for consistency with other inline classes ( I97611 , b/169797763 )
  • TextOverflow.None is introduced. When overflow is None, Text won't handle overflow anymore, and it will report its actual size to LayoutNode. ( I175c9 , b/158830170 )
  • launchInComposition renamed to LaunchedTask to match Compose API guidelines ( I99a8e )
  • OnPositionEdModifier переименован в OnGloballyPositionEdModifier, а OnPosited () переименован в OnGloballyPosited (). ( I587e8 , b/169083903 )

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

1 октября 2020 г.

androidx.compose.material:material:1.0.0-alpha04 , androidx.compose.material:material-icons-core:1.0.0-alpha04 , and androidx.compose.material:material-icons-extended:1.0.0-alpha04 are released. Версия 1.0.0-Alpha04 содержит эти коммиты.

Изменения API

  • Exposes InteractionState parameters in stateful Material components, to allow hoisting the state and reading / controlling the state. ( Iaca5f , b/168025711 , b/167164434 )
  • Changes the *color parameters on RadioButton and TriStateCheckbox to allow fully customizing the colors used in each state, as well as changing how the colors animate between states if desired. See the new animateDefault* color functions in CheckboxConstants and RadioButtonConstants for more information. ( I1c532 )
  • Renamed rememberBackdropState to rememberBackdropScaffoldState and added an additional param for the animation clock. Renamed the param backdropScaffoldState of BackdropScaffold to just scaffoldState. Renamed BackdropConstants to BackdropScaffoldConstants. ( Ib644d )
  • Added experimental BottomSheetScaffold component. ( Ie02f0 , b/148996320 )
  • Added experimental ModalBottomSheetLayout component. ( Ic209e , b/148996320 )
  • Renames ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation to defaultElevation, and now returns a Dp value instead of an AnimatedValue. ( I5f3ed )

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

  • Обновлено множество графических API
    • Обновленные API -интерфейсы преобразования масштаба и поворота для использования одного параметра смещения, чтобы представлять координату pivot вместо отдельных параметров плавания для координат x/y в DrawScope и Tranttransform
    • Удаленный rect.expandtoinclude и rect.join Методы
    • Обновленная документация RADIUS, чтобы сказать Oval в дополнение к эллиптической
    • Добавлена ​​документация, чтобы указать общественный конструктор для класса встроенного радиуса не должна быть вызвана непосредственно, а вместо этого объекты RADIUS должны быть созданы через конструкторы своих функций
    • Удаленные API круглое, чтобы запросить Top Right, Bottomright, Bottomcenter и т. Д.
    • Устаревший rect.shift в пользу rect.translate
    • Удаленный круглый
    • Переименован в круглый
    • Удаленный круглый
    • Переименованное в раунде.
    • Переименован в круглый
    • Изменен Roundrect.center, чтобы быть свойством, а не функцией
    • Обновленный конструктор круглогов для потребления Radius Properties вместо отдельных параметров для значений RADIUS x/y
    • Удаленные API размера, которые предполагали, что это был прямоугольник с происхождением на 0,0
    • Добавил разрушение API в радиус
    • Вместо этого мигрировали различные функции разгибания круглогов, чтобы быть свойствами
    • ( I8f5c7 , b/168762961 )
  • Foundation.box был устарел. Пожалуйста, используйте foundation.layout.box вместо этого. ( IE5950 , B/167680279 )
  • Стек был переименован в коробку. Ранее существующая коробка будет устареть в пользу новой коробки в compose.foundation.layout. Поведение новой коробки состоит в том, чтобы складывать детей один на другой, когда у него есть несколько детей - это отличается от предыдущей коробки, которая вела себя похожа на столбце. ( I94893 , B/167680279 )
  • Параметры украшения коробки устарели. Если вы хотите иметь украшения/заполнение на своей коробке, вместо этого используйте модификаторы (modifier.background, modifier.border, modifier.padding) ( ibae92 , b/167680279 )
  • Обновлено множество графических API
    • Updated DrawScope APIs with scoped transformation methods to indicate that the transformation is only applied within the callback and removed after the callback is invoked
    • Updated clipPath documentation to refer to Path instead of rounded rectangle
    • Fixed spacing in documentation for right parameter in clipPath
    • Renamed DrawScope.drawCanvas to drawIntoCanvas and removed size parameter
    • Renamed dx/dy parameters in inset method to horizontal and vertical
    • Added inset overload that provides the same inset value to all 4 bounds
    • Removed documentation on inset method indicating that inset would be applied to all 4 sides
    • Updated documentation for Rect class
    • Updated comments on Rect parameters to match kdoc style
    • Removed Rect.join and Rect.expandToInclude
    • Created overload for Rect.translate(offset) and deprecated Rect.shift
    • ( If086a , b/167737376 )
  • Мы предотвратили статический импорт содержимого прицела макета (например, совместные сборы в Rowscope). Вместо этого следует использовать альтернативу явного прицела: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } . ( I216be , b/166760797 )

Версия 1.0.0-Alpha03

16 сентября 2020 года

androidx.compose.material:material:1.0.0-alpha03 , androidx.compose.material:material-icons-core:1.0.0-alpha03 , and androidx.compose.material:material-icons-extended:1.0.0-alpha03 are released. Версия 1.0.0-alpha03 содержит эти коммиты.

Изменения API

  • Renames BottomNavigationItem 's onSelect parameter to onClick ( I91925 , b/161809324 )
  • Adds InteractionState parameter to BottomNavigationItem and Tab, allowing hoisting this state and adjusting how the component appears in different states. ( Ia3e9e , b/168025711 )
  • Removes disabledBackgroundColor and disabledContentColor parameters from buttons. You should instead use the new default color functions inside ButtonConstants. If you are already setting contentColor / backgroundColor explicitly, you should instead use these default functions and customize some / all of the parameters to avoid overwriting the color for both enabled / disabled states. ( If9b52 )
  • Textfield's background color does not implicitly apply transparency alpha anymore. Instead, any color provided through the backgroundColor parameter will be applied directly. ( Iecee9 , b/167951441 )
  • InnerPadding was renamed to PaddingValues. ( I195f1 , b/167389171 )
  • The params resistanceFactorAtMin and resistanceFactorAtMax in Modifier.swipeable were replaced with a single resistance param. A new defaultResistanceConfig method was added in SwipeableConstants . ( I54238 )
  • Adds animated stateful elevation support for Button and FloatingActionButton. The elevation now animates between default and pressed states. To customize the elevation between states, please use ButtonConstants.defaultAnimatedElevation() and FloatingActionButtonConstants.defaultAnimatedElevation() instead of setting a flat Dp value in all cases. ( I37925 )
  • Label became an optional parameter inside TextField and OutlinedTextField ( I267f6 , b/162234081 )

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

  • Global testing functions such as onNode or waitForIdle are now deprecated, please migrate to their new counterparts that are defined on ComposeTestRule ( I7f45a )
  • DpConstraints and APIs using it were deprecated. ( I90cdb , b/167389835 )
  • The parameters minWidth and maxWidth of widthIn were renamed to min and max. Similarly for preferredWidthIn, heightIn, preferredHeightIn. ( I0e5e1 , b/167389544 )
  • Remove scroll forward/backward semantics actions. Added steps in AccessibilityRangeInfo. ( Ia47b0 )
  • Использование гравитации было последовательно переименовано в выравнивание или выравнивание в API -интерфейсе. ( I2421A , B/164077038 )
  • Added onNode and other global methods on ComposeTestRule as the current global ones are going to be deprecated. ( Ieae36 )
  • Moved createAndroidComposeRule and AndroidInputDispatcher from androidx.ui.test.android to androidx.ui.test ( Idef08 , b/164060572 )

Версия 1.0.0-Alpha02

2 сентября 2020 года

androidx.compose.material:material:1.0.0-alpha02 , androidx.compose.material:material-icons-core:1.0.0-alpha02 , and androidx.compose.material:material-icons-extended:1.0.0-alpha02 are released. Версия 1.0.0-alpha02 содержит эти коммиты.

Изменения API

  • Added an experimental BackdropScaffold component. ( Iad908 )

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

  • Matrix4 was replaced with Matrix. All other parts of vectormath package have been removed. ( Ibd665 , b/160140398 )

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

26 августа 2020 года

androidx.compose.material:material:1.0.0-alpha01 , androidx.compose.material:material-icons-core:1.0.0-alpha01 , and androidx.compose.material:material-icons-extended:1.0.0-alpha01 are released. Версия 1.0.0-alpha01 содержит эти коммиты.

Известная проблема

= The first character in a material TextField cannot be removed using a backspace ( b/165956313 )

Версия 0.1.0-Dev

Версия 0.1.0-Dev17

19 августа 2020 г.

androidx.compose.material:material:0.1.0-dev17 , androidx.compose.material:material-icons-core:0.1.0-dev17 , and androidx.compose.material:material-icons-extended:0.1.0-dev17 are released. Версия 0.1.0-Dev17 содержит эти коммиты.

Изменения API

  • Previously deprecated RadioGroup and RadioGroupItems have been removed. Use Row and RadioBotton instead ( I381b7 , b/163806637 )
  • Removed onFocusChanged callbacks from TextField. Use Modifier.focusObserver instead. ( I51089 , b/161297615 )
  • Modifier.drawBorder has been deprecated. Use Modifier.border instead. Border data class has been replaced by BorderStroke ( I4257d , b/158160576 )
  • Renamed some properties in SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. Added a rememberSwipeableState function for creating SwipeableStates. ( I2fc9c , b/163129614 , b/163132293 )
  • Snackbar support with positioning and proper queueing has been added. Access it via SnackbarHostState.showSnackbar suspend function. Кроме того:
    • SnackbarHost components has been added. It hosts Snackbars based on the state and is responsible for transition between snackbars.
    • SnackbarHostState has been added to allow for control over snackbars, snackbars hosts and to decouple it from the ScaffoldState. you can access this state via scaffoldState.snackbarHostState as well.
    • Snackbar overload has been added to support common interface between snackbarHostState and snackbars itself. ( I79aaa )
  • Adds enabled parameter to IconButton, and reorders parameters in IconToggleButton ( I0a941 , b/161809385 , b/161807956 )
  • ListItem version with String-based API has been removed. Use slot version instead. ( Ib8f57 , b/161804681 )
  • Removed deprecated FilledTextField component. Please use TextField instead to get the Material Design implementation of the Filled text field. ( I5e889 )
  • AlertDialog now uses FlowRow for buttons ( I00ec1 , b/161809319 , b/143682374 )
  • Added params in Modifier.swipeable for changing the amount of resistance when swiping past the bounds. Removed [min/max]Value params. ( I93d98 )
  • Added backgroundColor parameter to LinearProgressIndicator and removed internal padding from CircularProgressIndicator. Added new ProgressIndicatorConstants.DefaultProgressAnimationSpec which can be used as the default AnimationSpec when animating progress between values ( If38b5 , b/161809914 , b/161804677 )
  • Optional param velocityThreshold added to Modifier.swipeable. ( I698ba )
  • bottomBarSize, fabSize and others and not available anymore in ScaffoldState. Use Modifier.onPosition instead on the component you'd like to know the size of. contentColor and Modifier pamateres have been added to Scaffold ( Ic6f7b , b/161811485 , b/157174382 )
  • Renames and reorders some parameters in Tab for consistency with other APIs ( Ia2d12 , b/161807532 )
  • Splits TabRow into TabRow and ScrollableTabRow, removing isScrollable from TabRow. Also exposes edgePadding in ScrollableTabRow, which allows controlling the free space before / after the tabs. ( I583e8 , b/161809544 )
  • The TabRow object has been removed, replacing it with TabConstants. TabRow.TabPosition has moved to be top level (TabPosition), and indicatorContainer has been renamed to indicator . See the samples and documentation for detailed information on how to use the updated API, and defaults. ( I54d45 , b/161809544 )
  • The thresholds param in Modifier.swipeable was tweaked; it now takes a pair of states (of type T) and returns the threshold between them in the form of a ThresholdConfig. A param dismissThresholds was added to SwipeToDismiss, which is a lambda (DismissDirection) -> ThresholdConfig. ( Ie1080 )
  • Slider has more colors for granular customization ( I73e64 , b/161810475 )
  • Card's color param was renamed to backgroundColor ( I01fc1 , b/161809546 )
  • Snackbar has customizable background and content colors now ( I238f2 , b/161804381 )
  • modifier, backgroundColor, contentColor and scrimColor customization params has been added to Drawers ( I23655 , b/161804378 )
  • state { ... } композитное теперь устарело в пользу явных вызовов remember { mutableStateOf(...) } для ясности. Это уменьшает общую поверхность API и количество концепций для управления состоянием и соответствует шаблону by mutableStateOf() для делегирования свойства класса. ( IA5727 )
  • Button's padding param was renamed to contentPadding ( Id252e , b/161809394 )
  • Add an experimental material component SwipeToDismiss. ( I129e5 )

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

  • Removed onChildPositioned and OnChildPositionedModifier . Developers should use onPositioned and OnPositionedModifier on the child layout instead. ( I4522e , b/162109766 )
  • Added mergePolicy lambda to SemanticsPropertyKey. This can be used to define a custom policy for mergeAllDescendants semantics merging. The default policy is to use the parent value if already present, otherwise the child value. ( Iaf6c4 , b/161979921 )
  • Intsize теперь встроенный класс ( i2bf42 )
  • PlacementScope.placeAbsolute() был переименован в PlacementScope.place() , а предыдущий PlacementScope.place() был переименован в PlacementScope.placeRelative() . В результате метод PlacementScope.place() больше не будет автоматически отражать положение в контексте правого налегих. Если это требуется, используйте вместо этого PlacementScope.placeRelative() . ( I873AC , B/162916675 )
  • Устаревшие pxbounds в пользу прямо. Обновлено все использование pxbounds с помощью прямого и добавленного надлежащего вымогания/замены аннотациями, чтобы помочь с миграцией. ( I37038 , B/162627058 )
  • Renamed RRect to RoundRect to better fit compose naming patterns Created similar function constructors to RRect and deprecated RRect function constructors ( I5d325 )

Версия 0.1.0-Dev16

5 августа 2020 года

androidx.compose.material:material:0.1.0-dev16 , androidx.compose.material:material-icons-core:0.1.0-dev16 , and androidx.compose.material:material-icons-extended:0.1.0-dev16 are released. Версия 0.1.0-Dev16 содержит эти коммиты.

Изменения API

  • Colors is now a final class instead of an interface. Instead of extending and providing a custom implementation, you should create a new ambient for your custom theme object, and access the theme object through the new ambient in your components, similar to how MaterialTheme works internally. ( Ibae84 )
  • Renamed ColorPalette to Colors, to better map to the Material color system and remove confusion over ColorPalette being a 'generic' theming object, as opposed to being a specific implementation of the Material color system. Additionally renames lightColorPalette and darkColorPalette to lightColors and darkColors respectively. ( I9e976 , b/161812111 )
  • Renames BottomNavigationItem's text parameter to label , onSelected to onSelect , activeColor to selectedContentColor , inactiveColor to unselectedContentColor and updates parameter ordering to match guidelines. ( Icb605 , b/161809324 )
  • Modifier.stateDraggable was completely reworked and renamed to Modifier.swipeable. A new SwipeableState class was introduced, and DrawerState and BottomDrawerState were refactored to inherit from it. [Modal/Bottom]DrawerLayout no longer takes an onStateChange parameter. ( I72332 , b/148023068 )
  • foundation.shape.corner package were flatten to foundation.share ( I46491 , b/161887429 )
  • Added ExperimentalMaterialApi annotation. RippleTheme marked as Experimental ( Ic5fa0 , b/161784800 )
  • Material FilledTextField was renamed to TextField and foundational TextField was renamed to BaseTextField to make simplest desired API easy to discover and use ( Ia6242 , b/155482676 )

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

  • OnChildPositioned has been deprecated. Use OnPositioned on the child instead. ( I87f95 , b/162109766 )
  • Address broad API fixes ( I077bc )
    1. Remove unused OffsetBase interface
    2. Align Offset and IntOffset classes to have a consistent API surface
    3. Rename IntOffset.Origin to IntOffset.Zero to be consistent with Offset API
    4. Moved nativeCanvas method off of Canvas interface to support consumers to create their own Canvas instances
    5. Created stub EmptyCanvas class to refactor DrawScope to be a non-null parameter instead of lateinit and ensure non-nullability of the field
    6. Renamed ClipOp enums to be Pascal Case
    7. Renamed FilterQuality enums to be Pascal Case
    8. Renamed StrokeJoin enums to be Pascal Case
    9. Renamed PointMode enums to be Pascal Case
    10. Renamed PaintingStyle enums to be Pascal Case
    11. Renamed PathFillType enums to be Pascal Case
    12. Renamed StrokeCap enums to be Pascal Case
    13. Updated DrawCache implementation to no longer use lateinit params
    14. Updated DrawScope to no longer use lazy delegation for fillPaint and strokePaint internal parameters
    15. Updated Image composable to avoid Box usage for less overhead
    16. Updated Outline class to have @Immutable annotations
    17. Updated PathNode to have @Immutable annotations for each path instruction
    18. Updated Vector subcomposition to remove redundant conditional checks for equality as compose already handles them
    19. Deprecated Rect companion constructor methods in favor of function constructors
    20. Updated Brush classes and function constructors with @Immutable and @Stable APIs
    21. Updated VertexMode enum to be PascalCase
    22. Updated DrawScope selectPaint method to conditionally overwrite stroke parameters on the paint if they have changed
    23. Updated Size to add destructuring API, rename UnspecifiedSize to Unspecified and removed unused methods
  • Move dialog to ui ( I47fa6 )
  • Removed SemanticsNodeInteraction.performPartialGesture . Use SemanticsNodeInteraction.performGesture instead. ( Id9b62 )
  • Renamed SemanticsNodeInteraction.getBoundsInRoot() to SemanticsNodeInteraction.getUnclippedBoundsInRoot() ( Icafdf , b/161336532 )
  • The APIs for right-to-left support has been updated. Был добавлен MayoutDirectionAmbient, который можно использовать для чтения и изменения направления макета. Modifier.rtl и modifier.ltr были удалены. ( I080B3 )
  • Modifier.deternimateProgress has been renamed to Modifier.progressSemantics ( I9c0b4 )
  • Updates material-icons-extended with the latest icons added to Material.io/icons ( I4b1d3 )
  • Требовать типа T, который будет явно указан для перехода. ( I1aded )
  • MODIFIER.PLUS был устарел, используйте модификатор. Тогда вместо этого. «Тогда» имеет более сильный сигнал упорядочения, в то время как также запрещает тип Modifier.padding().background() + anotherModifier , который разбивает цепь и труднее читать ( IEDD58 , B/161529964 )
  • Renamed AndroidComposeTestRule to createAndroidComposeRule. ( I70aaf )
  • Add isFocused() and isNotFocused() SemanticsMatcher. ( I0b760 )
  • Removed BaseGestureScope.globalBounds , which shouldn't be used from tests. Use coordinates local to the node with which you're interacting instead. ( Ie9b08 )
  • Fixed popup position on cut-out displays. ( Idd7dd )
  • MODIFIER.Drawbackground был переименован в Modifier.Background ( I13677 )

Версия 0.1.0-Dev15

22 июля 2020 г.

androidx.compose.material:material:0.1.0-dev15 , androidx.compose.material:material-icons-core:0.1.0-dev15 , and androidx.compose.material:material-icons-extended:0.1.0-dev15 are released. Версия 0.1.0-Dev15 содержит эти коммиты.

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

  • Чтобы использовать версию Compose 0.1.0-dev15 , вам необходимо будет обновить свои зависимости в соответствии с новыми фрагментами кода, показанными выше при объявлении зависимостей .

Изменения API

  • @Model annotation is now deprecated. Use state and mutableStateOf as alternatives. This deprecation decision was reached after much careful discussion.

    Justification

    Rationale includes but is not limited to:

    • Reduces API surface area and concepts we need to teach
    • More closely aligns with other comparable toolkits (Swift UI, React, Flutter)
    • Reversible decision. We can always bring @Model back later.
    • Removes corner-case usage and difficult to answer questions about configuring @Model as things we need to handle
    • @Model data classes, equals, hashcode, etc.
    • How do I have some properties “observed” and others not?
    • How do I specify structural vs. referential equality to be used in observation?
    • Reduces “magic” in the system. Would reduce the likelihood of someone assuming system was smarter than it is (ie, it knowing how to diff a list)
    • Makes the granularity of observation more intuitive.
    • Improves refactorability from variable -> property on class
    • Potentially opens up possibilities to do hand-crafted State-specific optimizations
    • More closely aligns with the rest of the ecosystem and reduces ambiguity towards immutable or us “embracing mutable state”

    Migration Notes

    Almost all existing usages of @Model are fairly trivially transformed in one of two ways. The example below has a @Model class with two properties just for the sake of example, and has it being used in a composable.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternative 1: Use State<OriginalClass> and create copies.

    This approach is made easier with Kotlin's data classes. Essentially, make all previously var properties into val properties of a data class, and then use state instead of remember , and assign the state value to cloned copies of the original using the data class copy(...) convenience method.

    It's important to note that this approach only works when the only mutations to that class were done in the same scope that the State instance is created. If the class is internally mutating itself outside of the scope of usage, and you are relying on the observation of that, then the next approach is the one you will want to use.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    Alternative 2: Use mutableStateOf and property delegates

    This approach is made easier with Kotlin's property delegates and the mutableStateOf API which allows you to create MutableState instances outside of composition. Essentially, replace all var properties of the original class with var properties with mutableStateOf as their property delegate. This has the advantage that the usage of the class will not change at all, only the internal implementation of it. The behavior is not completely identical to the original example though, as each property is now observed/subscribed to individually, so the recompositions you see after this refactor could be more narrow (a good thing).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    ( I409e8 , b/152050010 , b/146362815 , b/146342522 , b/143413369 , b/135715219 , b/143263925 , b/139653744 )

  • onFocusChange callback in text fields renamed to onFocusChanged ( Ida4a1 )

  • Added thresholds param in stateDraggable to specify thresholds between anchors. This was used to set a 56dp threshold in bottom drawer. Also BottomDrawerLayout now uses a separate BottomDrawerState enum. ( I533fa )

  • Removes previously deprecated Modifier.ripple. Clickable now uses ripple as the default indication (if you have a MaterialTheme {} set in your application) so in most cases you can just use clickable and get ripple indication for free. If you need to customize the color / size / bounded parameter for the ripple, you can manually create a RippleIndication and pass it to clickable as the indication parameter. ( I663b2 , b/155375067 )

  • Removed deprecated override of FilledTextField composable ( I7f8f8 )

  • Rename Button object (containing the defaults used by Button function) to ButtonConstants ( I7c5f7 , b/159687878 )

  • Button's content slot now behaves as Row (useful when you need to have an icon with a text, see samples on Button how to write it) ( I0ff10 , b/158677863 )

  • RadioGroup and RadioGroupItem have been deprecated. Use Box with Modifier.selectable, Row and Column to make proper set of radioButton choices by your design ( I7f5cf , b/149528535 )

  • Added Material Outlined Textfield ( I1a518 )

  • androidx.ui.foundation.TextFieldValue and androidx.ui.input.EditorValue is deprecated. TextField, FilledTextField and CoreTextField composables that uses that type is also deprecated. Please use androidx.ui.input.TextFieldValue instead ( I4066d , b/155211005 )

  • TabRow.TabPosition not contains position in Dp, not in IntPx ( I34a07 , b/158577776 )

  • Заменило использование INTPX с Int. Заменил INTPXPOSION с IntoffSet. Заменил intpxsize на Intsize. ( IB7B44 )

  • Чтобы консолидировать количество классов, используемых для представления информации о размерах, стандартизируйте использование класса размера вместо PxSize. Это обеспечивает преимущества встроенного класса для использования длинных значений плавания 2, чтобы представлять ширину и высоту, представленные как поплавки. ( IC0191 )

  • Deprecates Modifier.ripple. Clickable now uses ripple as the default indication (if you have a MaterialTheme {} set in your application) so in most cases you can just use clickable and get ripple indication for free. If you need to customize the color / size / bounded parameter for the ripple, you can manually create a RippleIndication and pass it to clickable as the indication parameter. ( I101cd , b/155375067 )

  • Scaffold API has been reworked: few parameters changed their name, added new parameters for better customization. Added getter to query sizes of Fab, TopBar and BottomBar ( I0e7ce )

  • Added the DropdownMenu component in ui-material, a Material Design menu implementation. ( I9bb3d )

  • Allow to show/hide software keyboard manually using SoftwareKeyboardController ( Ifb9d6 , b/155427736 )

  • Modifier.indication has been added to foundation package. Use it to show press/drag/other indication on your custom interactable elements ( I8425f , b/155287131 )

  • Консолидированные реализации Canvasscope, поэтому теперь есть просто DraitScope и ContentDrawScope переименован в CanvassCope для DraitScope. Обновленные DrawScope для реализации интерфейса плотности и обеспечения удаленного подкласса DraitScope в художнике ContentDrawScope и PAINTERTERFIER были обновлены, чтобы больше не поддерживать свойство RTL, поскольку DrawScope уже предоставляет это без вручную ( I1798E )

  • Renames Emphasis.emphasize() to Emphasis.applyEmphasis() ( Iceebe )

  • Disabled buttons now visually follows the Material Design specification ( I47dcb , b/155076924 )

  • FilledTextField gets ime action, visual transformation and keyboard type support ( I1f9cf , b/155075201 )

  • Adds strokeWidth parameter to CircularProgressIndicator to customize the stroke size. To change the stroke size (height) of a LinearProgressIndicator, you can use Modifier.preferredHeight() or another size modifier. ( Icea16 , b/154919081 )

  • Adds strokeWidth parameter to CircularProgressIndicator to customize the stroke size. To change the stroke size (height) of a LinearProgressIndicator, you can use Modifier.preferredHeight() or another size modifier. ( Icea16 , b/154919081 )

  • Added slot API for trailing and leading icons in the FilledTextField and handling of the error state ( Ic12e0 )

  • FAB's and Extended FAB's default color has been changed to MaterialTheme.colors.secondary. ( I3b9b9 , b/154118816 )

  • Заменил все нулевые использование цвета в API с не нулевым и используйте Color.unset вместо нулевого ( iabaa7 )

  • Renamed EdgeInsets to InnerPadding. Renamed innerPadding parameter of Material Buttons to paddding. ( I66165 )

  • Slider is now stateless. Users will need to pass and update state by themselves, just like in any other control. ( Ia00aa )

  • StaticDrawer was removed. If you need it, use Box with material-spec'ed width instead ( I244a7 )

  • Added Material Design implementation of Filled Text Field ( Ic75cd )

  • Added modifier param to ListItem and reordered params to promote trailing lambda body ( I66e21 )

  • Adds defaultFontFamily constructor parameter to Typography, allowing specifying the default font family that will be used for any provided TextStyles that do not have a family set. ( I89d07 )

  • Temporarily removed Material Data Tables from the API surface. ( Iaea61 )

  • Renamed paramaters in Divider composable ( Ic4373 )

  • children ( Ia6d19 )

  • Removes MaterialTheme.emphasisLevels, instead use EmphasisAmbient.current to retrieve the emphasis levels ( Ib5e40 )

  • Shape theming system is updated according to the Material design specification. Now you can provide small, medium and large shapes to be used by most of the components ( Ifb4d1 )

  • Changed MaterialTheme APIs such as MaterialTheme.colors(), MaterialTheme.typography() to be properties instead of functions. Remove parentheses from existing calls, no behavioral change is expected. ( I3565a )

  • Refactored FloatingActionButton APIs to accept composable lambdas instead of primitives. See updated samples for usage information. ( I00622 )

  • add enabled param to Checkbox, Switch and Toggleable ( I41c16 )

  • Ripple is now a Modifier. While Clickable is not yet converted the recommended usage is Clickable(onClick = { ... }, modifier = ripple()) ( Ie5200 , b/151331852 , b/150060763 )

  • Surface and Card were moved from androidx.ui.material.surface to androidx.ui.material ( I88a6d , b/150863888 )

  • Button, FloatingActionButton and Clickable now have a separate enabled param. Some of the params on Button were renamed or reordered. ( I54b5a )

  • Renamed Image to ImageAsset to better differentiate the difference between the Image data and the upcoming Image composable used to participate in layout and draw content. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework ( Id5bbd )

  • Removed Snackbar API with String parameters in favour of using the overload that accepts composable lambdas. See updated samples for usage information ( I55f80 )

  • Refactored Tab APIs to accept text and icon lambdas, ( Ia057e )

  • Added BottomNavigation component, see the docs and samples for usage information ( I731a0 )

  • Added Icon, IconButton and IconToggleButton, removing AppBarIcon. You can directly replace existing usages of AppBarIcon with IconButton, and they will now have the correct touch target. See the samples for usage information, and see Icons for the provided Material Icons you can use directly with these components. ( I96849 )

  • Replaced ButtonStyle with distinct functions and removed text (string) overload. See updated samples for usage information. ( If63ab , b/146478620 , b/146482131 )

  • rename Border modifier to DrawBorder ( I8ffcc )

  • LayoutCoordinates no longer has a position property. The position property does not make sense when considering LayoutModifiers, rotation, or scaling. Instead, developers should use parentCoordinates and childToLocal() to calculate the transform from one LayoutCoordinate to another.

    LayoutCoordinates uses IntPxSize for the size property instead of PxSize. Layouts use integer pixel sizes for layouts, so all layout sizes should use integers and not floating point values. ( I9367b )

  • Нарушение изменений в API Ampi. См. Журнал и Ambient<T> Документация для деталей ( i4c7ee , b/143769776 )

  • Scaffold material component has been added. Scaffold implements ( I7731b )

  • Replaced DrawBorder in favor of Border Modifier ( Id335a )

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

  • FocusModifier is deprecated in favor of Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState and FocusDetailedState are deprecated in favor of FocusState2 ( I46919 , b/160822875 , b/160922136 )
  • VerticalScroller and HoriziontalScroller have been deprecated. Use ScrollableColumn and ScrollableRow for build-in experience with Column/Row behaviour and parameters, or Modifier.verticalScroll and Modifier.horizontalScroll on your own element. Similarly, ScrollerPosition has been deprecated in favor of ScrollState' ( I400ce , b/157225838 , b/149460415 , b/154105299 )
  • Modifier.draggable and Modifier.scrollable APIs were reworked. DragDirection was removed in favor of Orientation. State required for scrollable has beed simplified. ScrollableState has been renamed to ScrollableController ( Iab63c , b/149460415 )
  • runOnIdleCompose переименован в runOnIdle ( I83607 )
  • Single-value semantics properties now use a calling style. For example, 'semantics { hidden = true }' is now written as: 'semantics { hidden() }'. ( Ic1afd , b/145951226 , b/145955412 )
  • Несколько тестирующих API были переименованы в более интуитивно понятные. Все API Findxyz были переименованы в Onnodexyz. Все API -интерфейсы Doxyz были переименованы в выполнение Xyz. ( I7f164 )
  • Переход API был изменен, чтобы вернуть переходное положение вместо передачи переходного штата детям. Это делает API более соответствовать API Animate (). ( I24e38 )
  • An IntBounds unit class has been added, representing integer pixel bounds from layout. The API of PopupPositionProvider has been updated to use it. ( I0d8d0 , b/159596546 )
  • A new optional flag useUnmergedTree was added to test finders. ( I2ce48 )
  • Removed obsolete size testing APIs. ( Iba0a0 )
  • Removed Shader inline class that wrapped the NativeShader expect class Renamed NativeShader to Shader. The wrapped Shader inline class did not add anything valuable to the API surface and was an inline class, so use the NativeShader class directly. ( I25e4d )
  • Popups, Dialogs and Menus are now inheriting the contextual MaterialTheme ( Ia3665 , b/156527485 )
  • Material DropdownMenu are now scrollable. ( Ide699 )
  • Removed layout direction parameter from the measure block of the Layout() function. Layout direction is however available inside the callback through the measure scope object ( Ic7d9d )
  • Use AnimationSpec instead of AnimationBuilder in the top level APIs to clarify the concept of static animation specification -Improve the transition DSL by removing the lambda requirement for creating AnimationSpecs such as tween, spring. Вместо этого они принимают конструкторы напрямую. -Improve the overall ease of use of AnimationSpec opening up constructors instead of relying on builders -Change the duration and delay for KeyFrames and Tween to Int. Это устраняет ненужные черты типа и перегрузку методов (для поддержки как Long, так и int). ( ICA0B4 )
  • Switch now appears in a disabled state when enabled is set to false ( If4624 , b/155941869 , b/159331694 )
  • Modifier.tag was renamed to Modifier.layoutId, to avoid confusion with Modifier.testTag. ( I995f0 )
  • Alignment line Int positions returned from Placeable#get(AlignmentLine) are now non-null. If the queried alignment line is missing, AlignmentLine.Unspecified will be returned. ( I896c5 , b/158134875 )
  • Refactored Radius class to be an inline class. Removed companion creation methods in favor of function constructor with default parameter to have the radius along the y-axis match that of the mandatory x-axis radius parameter.

    Updated DrawScope.drawRoundRect to consume a single Radius parameter instead of 2 separate float values for the radius along the x and y axis ( I46d1b )

  • Чтобы консолидировать количество классов, используемых для представления информации о позиционировании, стандартизировать использование класса смещения вместо pxposition. Это обеспечивает преимущества встроенного класса для использования длинных значений плавания 2, чтобы представлять смещения x и y, представленные как поплавки. ( I3ad98 )

  • Заменило использование класса PX в различных классах Compose в рамках больших усилий по рефакторингу, чтобы полагаться только на DP и примитивные типы для параметров пикселей. Удал класс PX полностью ( i3ff33 )

  • Toggleable component has been deprecated. Use Modifier.toggleable instead ( I35220 , b/157642842 )

  • Заменил использование класса PX в различных классах компоновки в рамках больших усилий по рефакторингу, чтобы полагаться только на DP и примитивные типы для параметров пикселей ( I086F4 )

  • Заменил использование класса PX в различных классах компоновки в рамках больших усилий по рефакторингу, чтобы полагаться только на DP и примитивные типы для параметров пикселей ( ID3434 )

  • Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( I97a5a )

  • Fixed onClick not being invoked for DropdonMenuItems. ( I3998b , b/157673259 )

  • MutuallyExclusiveSetItem has been deprecated. Use Modifier.selectable instead. ( I02b47 , b/157642842 )

  • TestTag is now deprecated. Use Modifier.testTag instead. ( If5110 , b/157173105 )

  • TextField's cursor has a blinking animation ( Id10a7 )

  • Заменил использование класса PX в различных классах композиции как часть больших усилий по рефакторингу, чтобы полагаться только на DP и примитивные типы для параметров пикселей ( I19D02 )

  • VerticalScroller now provides Column out of the box. HorizontalScroller now provides Row out of the box. ( Ieca5d , b/157020670 )

  • Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( Iede0b )

  • Modifier.semantics has been undeprecated to allow usages for high level components. ( I4cfdc )

  • DrawLayer modifiers api has been changed: outlineShape renamed to shape and has the RectangleShape default value and now non-nullable; clipToOutline renamed to clip; clipToBounds removed as it is the same as clip == true with RectangleShape ( I7ef11 , b/155075735 )

  • Обновленные API -интерфейсы более высокого уровня, которые выставляют холст, чтобы разоблачить Canvasscope. Это устраняет необходимость того, чтобы потребители поддерживали свои собственные объекты краски. Для потребителей, которые по -прежнему требуют доступа к холстам, они могут использовать метод расширения DrawCanvas, который обеспечивает обратный вызов для выпуска команд рисования с базовым холстом. ( I80afd )

  • AlignmentLineOffset composable is deprecated, please use relativePaddingFrom() modifier instead. CenterAlignmentLine composable is removed. ( I60107 )

  • WithConstraints trailing lambda API has been changed. Now instead of two params it has a receiver scope which in addition to constraints and layoutDirection provides minWidth, maxWidth, minHeight and maxHeight properties in Dp ( I91b9a , b/149979702 )

  • Added defaultMinSizeConstraints layout modifier, which sets size constraints to the wrapped layout only when the incoming corresponding constraints are unspecified (0 for min constraints and infinity for max constraints). ( I311ea , b/150460257 )

  • FocusManagerAmbient is removed. Use FocusModifier.requestFocus to obtain focus. ( Ic4826 )

  • Created CanvasScope API that wraps a Canvas object to expose a stateless, declarative drawing API surface. Transformations are contained within their own receiver scope and sizing information is also scoped to corresponding inset bounds. It does not require a consumer to maintain its own Paint state object for configuring drawing operations.

    Added CanvasScopeSample as well as updated the demo app to include a declarative graphics demo ( Ifd86d )

  • Add cursor color customisation to the TextField ( I6e33f )

  • TextFieldValue used with TextField can now be survive activity recreation when used like this: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } ( I5c3ce , b/155075724 )

  • Renamed LayoutModifier2 to LayoutModifier. ( Id29f3 )

  • Removed deprecated LayoutModifier interface. ( I2a9d6 )

  • Replaced CoreTextField/TextField focusIdentifier parameter with FocusNode in order to integrate with focus subsystem. ( I7ea48 )

  • Intrinsic measurements functions in Layout and LayoutModifier2 have an IntrinsicMeasureScope receiver now which provides intrinsics query API with implicitly propagated layout direction. ( Id9945 )

  • New Modifier.zIndex() is added to control the drawing order of the children within the same parent layout. elevation property on DrawLayerModifier is renamed to shadowElevation and doesn't control the drawing order anymore. The params order fo DrawShadow is changed: elevation is now the first one and the shape is the second one with a RectangleShape default. ( I20150 , b/152417501 )

  • RectangleShape moved from androidx.ui.foundation.shape.* to androidx.ui.graphics.* ( Ia74d5 , b/154507984 )

  • TextField API update - merged onFocus and onBlur callbacks into a single onFocusChange(Boolean) callback with parameter ( I66cd3 )

  • Добавлены параметры вертикальной гравитации и горизонталигвитации к строке и столбцу соответственно. ( I7dc5a )

  • Updated wrapContentWidth and wrapContentHeight to expect vertical or horizontal Alignment rather than any Alignment. The gravity modifier was updated to accept vertical or horizontal Alignment. Row, Column and Stack were updated to support custom continuous Alignments. ( Ib0728 )

  • Created PixelMap API to support querying pixel information from an ImageAsset. ( I69ad6 )

  • Removes ProvideContentColor, instead just use ContentColorAmbient directly with Providers ( Iee942 )

  • ui-text-compose module is renamed as ui-text. ui-text now contains CoreText and CoreTextField composables ( Ib7d47 )

  • модуль UI-Text переименован в UI-Text-Core ( i57dec )

  • Moved ui-framework/CoreText, CoreTextField composables under ui-text-compose. You might want to include ui-text-compose in your project. ( I32042 )

  • Improve DrawModifier API:

    • Сделал применение приемника для Drait () ContentDrawScope
    • Удалили все параметры на Draw ()
    • DraitScope имеет тот же интерфейс, что и бывший Canvasscope
    • ContentDrawscope имеет метод DraitContent () ( ibaced , b/152919067 )
  • runOnIdleCompose and runOnUiThread are now global functions instead of methods on ComposeTestRule. ( ICBE8F )

  • [Mintable] Операторы делегатов государственной собственности перешли на расширения для поддержки оптимизации Delegate Kotlin 1.4. Абоненты должны добавить импорт, чтобы продолжить использование by state { ... } или by mutableStateOf(...) . ( I5312c )

  • Added positionInParent and boundsInParent for LayoutCoordinates. ( Icacdd , b/152735784 )

  • ColoredRect был устарел. Используйте Box (modifier.preferredSize (ширина, высота) .Drawbackground (цвет)) вместо этого. ( I499fa , b/152753731 )

  • Renamed LayoutResult to MeasureResult. ( Id8c68 )

  • Added LayoutModifier2, a new API for defining layout modifiers; deprecated LayoutModifier ( If32ac )

  • Заменил модификатор плюс оператор с функциями расширения завода ( I225E4 )

  • Draggable has been moved to modifier ( Id9b16 , b/151959544 )

  • ParentData composable is deprecated. You should either create a modifier which implements ParentDataModifier interface, or use LayoutTag modifier if you simply need to tag layout children to recognize them inside the measure block. ( I51368 , b/150953183 )

  • Устаревший центр композиции. Его следует заменить либо на MayoToutSize.fill + MayoutAlign.center Modifier, либо одним из композиционных продуктов коробки или стека с подходящими модификаторами ( IDF5E0 )

  • Added VectorPainter API to replace existing subcomposition API for vector graphics. Result of subcomposition is a VectorPainter object instead of a DrawModifier. Deprecated previous DrawVector composables in favor of VectorPainter.

    Renamed Image(Painter) API to PaintBox(Painter) Created Vector composable that behaves like the Image composable except with a VectorAsset instead of an ImageAsset ( I9af9a , b/149030271 )

  • Переименовано в LayoutFlegeble до макетного веса. Переименованного плотного параметра для заполнения. ( IF4738 )

  • Removed RepaintBoundary in favor of DrawLayerModifier ( I00aa4 )

  • DrawVector has been changed from a regular composable function to returning a Modifier drawVector() that will draw the vector as a background to a layout. ( I7b8e0 )

  • Компонируемая функция непрозрачности была заменена модификатором Dasupacty. ( I5fb62 )

  • Replace composable function Clip with modifier drawClip(). DrawClipToBounds is a convenient modifier to use when you only need to clip to the layer bounds with a rectangle shape. ( If28eb )

  • Replaced DrawShadow composable function with drawShadow() modifier. Shadows are now drawn as part of LayerModifier. ( I0317a )

  • Added LayerModifier, a modifier that allows adding a RenderNode for a Layout. It allows setting clipping, opacity, rotation, scaling, and shadows. This will replace RepaintBoundary. ( I7100d , b/150774014 )

  • Androidx.compose.viewComposer был перенесен на androidx.ui.node.uicomposer androidx.compose.emittable. Это было избыточно с компонентом. Androidx.compose.viewAdapters был удален. Они больше не являются поддерживаемым вариантом использования. Compose.composeinto устарел. Вместо этого используйте setContent или setViewContent . Compose.disposecomposition устарели. Вместо этого используйте метод dispose на Composition , возвращаемой setContent . Androidx.compose.compose.subcompoceinto переехал на androidx.ui.core.subcompoceinto componentnode#emitinsertat был переименован в компонент#insertat componentnode#emitremoveat был переименован в компонент#removeatnode#emitmode был переименован в компонент#################################( isdef00 )

  • Created Image composable to handle sizing/layout in addition to drawing a given ImageAsset to the screen. This composable also supports drawing any arbitrary Painter instance respecting its intrinsic size as well as supporting a given fixed size or minimum size ( Ibcc8f )

  • Deprecated Wrap composable. It can be replaced either with the LayoutAlign modifier or with the Stack composable ( Ib237f )

  • WithConstraints got LayoutDirection parameter ( I6d6f7 )

  • Made the layout direction be propagated from parent layout node to children. Added layout direction modifier. ( I3d955 )

  • Stack component supports right-to-left directionality ( Ic9e00 )

  • DrawShape composable was removed. Use DrawBackground modifier instead. ( I7ceb2 )

  • Поддержать направление правого налега

  • Added AdapterList, a scrolling list component that only composes and lays out the visible items. Currently known issues include that it is vertical-only and does not fully handle all cases of changes to its children. ( Ib351b )

  • Updated the ComposeFlags.COMPOSER_PARAM flag to be true , which will change the code generation strategy for the compose plugin. At a high level, this causes @Composable functions to be generated with an additional synthetic parameter, which is passed through to subsequent @Composable calls in order for the runtime to properly manage execution. This is a significant binary breaking change, however, should preserve source-level compatibility in all sanctioned usage of compose. ( I7971c )

  • Added Canvas component. This composable takes up some size (provided by user) and allows you to draw using CanvasScope ( I0d622 )

  • Плотность и плотностьскопа были объединены в один график. Вместо AmbientDensity () вы теперь можете использовать DensityMabient.current. Вместо сдержания (плотность) только с (плотностью) ( i11cb1 )

  • Changed LayoutCoordinates to make providedAlignmentLines a Set instead of a Map and have LayoutCoordinates implement the get() operator instead for retrieving a value. This makes it easier for modifiers to modify one or more value of the set without creating a new collection for each modifier. ( I0245a )

  • Scrollers now exhibit native Android fling motion behavior. ( I922af , b/147493715 )

  • Improvements to the API surface of Constraints ( I0fd15 )