Appcompat

Обеспечивает доступ к новым API на старых версиях API платформы (многие из которых используют Material Design).
Последнее обновление Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
4 июня 2025 г. 1.7.1 - - -

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

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

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

Groovy

dependencies {
    def appcompat_version = "1.7.1"

    implementation "androidx.appcompat:appcompat:$appcompat_version"
    // For loading and tinting drawables on older versions of the platform
    implementation "androidx.appcompat:appcompat-resources:$appcompat_version"
}

Kotlin

dependencies {
    val appcompat_version = "1.7.1"

    implementation("androidx.appcompat:appcompat:$appcompat_version")
    // For loading and tinting drawables on older versions of the platform
    implementation("androidx.appcompat:appcompat-resources:$appcompat_version")
}

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

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

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

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

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

Версия 1.7

Версия 1.7.1

4 июня 2025 г.

Выпущены androidx.appcompat:appcompat:1.7.1 и androidx.appcompat:appcompat-resources:1.7.1 . Версия 1.7.1 содержит эти коммиты .

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

  • AppCompat был обновлен для использования Activity 1.8.0, чтобы позволить ему использовать initializeViewTreeOwners() API из ComponentActivity , чтобы гарантировать, что он всегда имеет правильный набор ViewTreeOwners . Это устраняет несовместимость между AppCompatActivity и NavigationEvent и библиотеками, которые строятся на его основе, такими как Navigation 3. ( I96919 , b/419208471 )

Версия 1.7.0

29 мая 2024 г.

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

Важные изменения по сравнению с версией 1.6.0

  • AppCompatDialog теперь правильно устанавливает LifecycleOwner , SavedStateRegistryOwner и OnBackPressedDispatcherOwner в представлении декора диалогового окна через API ViewTree , устраняя проблемы при размещении ComposeView в AppCompatDialog .
  • AppCompatActivity теперь устанавливает ViewTreeOnBackPressedDispatcherOwner , чтобы можно было извлечь диспетчер из представления.
  • Значительно улучшена производительность SupportMenuInflater .
  • Locale.getDefault() теперь возвращает системную локаль после холодного запуска.
  • LinearLayoutCompat теперь сохраняет параметры макета полей.

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

  • AppCompat теперь зависит от Activity 1.7.0.
  • AppCompat теперь зависит от Fragment версии 1.5.4.

Версия 1.7.0-rc01

14 мая 2024 г.

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

Версия 1.7.0-beta01

1 мая 2024 г.

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

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

26 июля 2023 г.

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

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

  • Поддержка получения локалей для каждого приложения в неактивных контекстах ( I58e753 ). Для этой функции добавлено четыре новых API:

    • LocaleManagerCompat.getApplicationLocales() : для разработчиков, позволяющих получить локали для каждого приложения за пределами области действия.

    • ContextCompat.getString() : возвращает локализованные строки на основе локалей приложения.

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

    • ConfigurationCompat.setLocales() : для указанных выше API, чтобы задать локаль конфигурации.

Другие изменения API

  • Добавлен setLineHeight(unit, lineHeight) в классы совместимости TextView ( Ia9fa9 )
  • Добавлен setLineHeight(unit, lineHeight) в классы совместимости TextView ( Ib2ee1 )
  • Добавлен setLineHeight(unit, lineHeight) в классы совместимости TextView ( I15716 )

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

  • AppCompatDialog теперь правильно устанавливает LifecycleOwner , SavedStateRegistryOwner и OnBackPressedDispatcherOwner в представлении декора диалога через API ViewTree , устраняя проблемы при размещении ComposeView в AppCompatDialog . AppCompat теперь зависит от Activity 1.7.0. ( Ib28ab , b/261314581 )
  • Значительно улучшена производительность SupportMenuInflater ( I0b087 )

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

8 февраля 2023 г.

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

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

  • Исправлена ​​утечка памяти в AppCompatDelegate.getLocaleManagerForApplication() ( 44b57fd )
  • AppCompat теперь зависит от версии Fragment 1.5.4 ( I54dcd )

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

5 октября 2022 г.

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

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

  • AppCompatActivity теперь устанавливает ViewTreeOnBackPressedDispatcherOwner , чтобы можно было извлечь диспетчер из представления. ( I1a115 , b/235416503 )
  • Locale.getDefault() теперь возвращает системную локаль после холодного запуска ( I6a94b )
  • LinearLayoutCompat теперь сохраняет параметры макета полей ( Id2af4 )

Версия 1.6.1

Версия 1.6.1

8 февраля 2023 г.

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

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

  • Исправлена ​​утечка памяти в AppCompatDelegate.getLocaleManagerForApplication() ( 44b57fd )

Версия 1.6.0

Версия 1.6.0

11 января 2023 г.

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

Важные изменения по сравнению с версией 1.5.0

  • Добавлена ​​поддержка настройки локалей приложений. См. AppCompatDelegate.setApplicationLocales(LocaleListCompat) для получения дополнительной информации. Обеспечивает обратную совместимость для нового API предпочтений для каждого языка, доступного в Android 13.
  • Обновления, касающиеся допустимости значений NULL, для соответствия SDK Android 13 (Tiramisu, API level 33).
  • Добавлены совместимые классы DrawableWrapper , DrawableContainer и StateListDrawable в публичную поверхность API.

Версия 1.6.0-rc01

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

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

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

  • AppCompatActivity теперь устанавливает ViewTreeOnBackPressedDispatcherOwner , чтобы можно было извлечь диспетчер из представления. ( I1a115 , b/235416503 )
  • Исправлена ​​ошибка, которая перезаписывала конфигурацию, переданную в onConfigurationChanged , что вызывало проблемы для тестов, которые внедряли собственные пользовательские конфигурации через onConfigurationChanged .

Версия 1.6.0-beta01

10 августа 2022 г.

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

Изменения API

  • Переместить совместимые классы DrawableWrapper , DrawableContainer и StateListDrawable в публичный API. ( I37f3e , b/227789566 )
  • Вводит новую фабрику для асинхронного расширения макета. ( Ia657b )

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

  • Toolbar теперь будет вызывать onPrepareMenu() перед отображением меню, а не безусловно при его создании. ( I2a58d , b/232206677 )
  • AppCompat теперь явно зависит от Lifecycle 2.5.1 и SavedState 1.2.0 . ( I7e3e2 )
  • Добавлена ​​поддержка обратного вызова для AppCompatDelegate и реализации панели инструментов, предоставляемой AppCompat . ( I24062 )
  • Финализация API AppCompat для 1.5.0-beta01 ( I2a43d , b/236866227 )
  • Финализация API AppCompat для 1.5.0-beta01 ( I2a43d , b/236866227 )

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

15 июня 2022 г.

Выпущены androidx.appcompat:appcompat:1.6.0-alpha05 и androidx.appcompat:appcompat-resources:1.6.0-alpha05 . Версия 1.6.0-alpha05 была разработана в закрытой предрелизной ветке и не имеет публичных коммитов.

Изменения API

  • Обновления, касающиеся допустимости значений NULL, для соответствия окончательной версии API в SDK Tiramisu Beta 3
  • minCompileSdk теперь равен 33 для соответствия Tiramisu Beta 3 SDK

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

18 мая 2022 г.

androidx.appcompat:appcompat:1.6.0-alpha04 и androidx.appcompat:appcompat-resources:1.6.0-alpha04 выпущены. Эта библиотека была разработана на основе закрытой предварительной ветки, поэтому журнал коммитов недоступен.

Изменения API

  • Добавить API для отмены ограничения ширины SwitchCompat для использования MDC-Android

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

  • Избегайте управляемой конфигурации, когда конфигурация изменяется вне attachBaseConfig

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

27 апреля 2022 г.

Выпущены androidx.appcompat:appcompat:1.6.0-alpha03 и androidx.appcompat:appcompat-resources:1.6.0-alpha03 .

Для компиляции этой версии требуется Android 13 Beta 1, и ее совместимость с будущими предварительными версиями для разработчиков не гарантируется.

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

  • Поддержка выбора пользовательского языка для всего приложения через AppCompatDelegate.setApplicationLocales() . Делегирует реализацию платформы на API 33 и выше.

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

23 февраля 2022 г.

Выпущены androidx.appcompat:appcompat:1.6.0-alpha01 и androidx.appcompat:appcompat-resources:1.6.0-alpha01 . Версия 1.6.0-alpha01 была собрана из внутренней ветки и не имеет публично видимых коммитов.

Для компиляции этой версии требуется Android Tiramisu DP1, и ее совместимость с будущими предварительными версиями для разработчиков не гарантируется.

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

  • Добавлена ​​поддержка настройки локалей приложений. См. AppCompatDelegate.setApplicationLocales(LocaleListCompat) для получения дополнительной информации. Обеспечивает обратную совместимость для нового API предпочтений для каждого языка, доступного в Android 13.

Версия 1.5.1

Версия 1.5.1

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

Выпущены androidx.appcompat:appcompat:1.5.1 и androidx.appcompat:appcompat-resources:1.5.1 . Версия 1.5.1 содержит эти коммиты.

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

Версия 1.5.0

Версия 1.5.0

10 августа 2022 г.

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

Важные изменения по сравнению с версией 1.4.0

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

Версия 1.5.0-rc01

27 июля 2022 г.

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

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

  • Исправлена ​​ошибка, из-за которой контекстная оболочка AppCompat повторно использовала реализацию резервного ресурса контекста приложения, что приводило к перезаписи uiMode в контексте приложения. ( Idf9d5 )

Версия 1.5.0-beta01

13 июля 2022 г.

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

Изменения API

  • Добавьте переопределяемый флаг, чтобы отключить настройку ширины переключателя по умолчанию. ( I37cb7 )
  • Добавить аннотацию @FloatRange в API получателя положения большого пальца ( If524c )
  • Добавить отсутствующие аннотации допустимости значений NULL в AnimatedStateListDrawableCompat ( Ieb4ec )

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

  • Финализация API AppCompat для 1.5.0-beta01 ( I2a43d , b/236866227 )
  • Изменение значения className для ActionMenuItemView для обработки его как Button ( I5ee1c )

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

6 апреля 2022 г.

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

Изменения API

  • Добавлен новый API для предоставления подклассам информации о положении ползунка переключателя ( I9bfb4 ).
  • Обновлена ​​возможность значения NULL для соответствия Tiramisu DP2 ( I0cbb7 )
  • Обратное портирование составной прорисовываемой тонировки в виджеты, производные от TextView ( Idf98c , b/165822337 )
  • AppCompatDialog теперь расширяет ComponentDialog для совместимости с OnBackPressedDispatcher ( Id9b91 , b/217620781 )
  • SearchView.onQueryRefine() теперь защищена видимостью, что позволяет переопределять ( I6cce0 , b/212882845 )

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

  • Toolbar AppCompat теперь вызывает API onPrepareMenu() MenuHostHelper . ( I9b9b5 , б/227376894 )
  • AppCompatEditText , AppCompatAutoCompleteEditText , AppCompatMultiAutoCompleteEditText больше не будут сбрасывать clickable или longClickable в конструкторе при установке в XML ( Ic5066 , b/221094907 )
  • AppCompatEditText , AppCompatAutoCompleteTextView и AppCompatMultiAutoCompleteTextView не будут вызывать переопределенный setKeyListener во время конструктора ( I5c13a , b/208480173 )
  • Appcompat не будет переносить экземпляры NumberKeyListener , переданные в setKeyListener , что позволяет TextView правильно настраивать локаль для NumberKeyListeners ( Ibf113 , b/207119921 )
  • Исправлена ​​проблема со всеми подклассами NumberKeyListener представленными в AppCompat 1.4.0, которые допускали ввод неожиданных символов, таких как знаки препинания ( Iede7a , b/207119921 ).

Версия 1.4.2

Версия 1.4.2

1 июня 2022 г.

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

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

  • Исправлен сбой, при котором AppCompatDelegateImpl делал внутренний вызов ensureSubDecor до создания панели действий ( aosp/2048349 , b/226648941 ).

Версия 1.4.1

12 января 2022 г.

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

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

  • AppCompatEditText , AppCompatAutoCompleteTextView и AppCompatMultiAutoCompleteTextView не будут вызывать переопределенный setKeyListener во время конструктора. ( I5c13a , b/208480173 )
  • Emoji2 не будет заключать в оболочку экземпляры NumberKeyListener , позволяя настраивать локаль с помощью textview.
    • Appcompat не будет переносить экземпляры NumberKeyListener , переданные в setKeyListener , что позволяет TextView правильно настраивать локаль для NumberKeyListeners . ( Ibf113 , b/207119921 )
  • Исправлена ​​проблема со всеми подклассами NumberKeyListener , представленными в appcompat 1.4.0, которые допускали ввод неожиданных символов, таких как знаки препинания (b/207119921) ( Iede7a , b/207119921 )

Версия 1.4.0

Версия 1.4.0

17 ноября 2021 г.

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

Важные изменения по сравнению с версией 1.3.0

  • Библиотека теперь ориентирована на уровень языка Java 8
  • Поддержка обновляемых эмодзи включена по умолчанию через библиотеку androidx.emoji2.
  • Улучшенная проверка атрибутов в инспекторе макетов Android Studio ( I02d55 )
  • Добавлена ​​поддержка вложенных тонированных ресурсов и векторных рисунков в ресурсах AppCompat, загружающих бэкпорты. Однако следует отметить, что это означает, что приложения не могут переопределять getDrawable() для пользовательского объекта Resources, когда бэкпорты включены. ( Ia6b03 , b/176129022 )
  • Портированный тонируемый фон и галочка для CheckedTextView ( I8575c )

Версия 1.4.0-rc01

27 октября 2021 г.

Выпущены androidx.appcompat:appcompat:1.4.0-rc01 и androidx.appcompat:appcompat-resources:1.4.0-rc01 . Версия 1.4.0-rc01 содержит эти коммиты.

Версия 1.4.0-beta01

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

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

Изменения API

  • Toolbar AndroidX AppCompat теперь является MenuHost и может управлять MenuProvider . ( I5cd95 )

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

  • Исправлена ​​обработка AppCompatProgressBar индикаторов выполнения списка слоев ( I6ece3 , b/142004509 ).
  • Правильно сохраните android:digits в AppCompatEditText , это исправляет ошибку 193047889, появившуюся в AppCompat 1.4.0-alpha03. ( I4b4fc , b/193047889 )
  • Интегрированный OnReceiveContentListener SDK и поддержка API библиотек. ( Ic6914 , b/173814913 )

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

30 июня 2021 г.

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

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

  • Библиотека теперь ориентирована на уровень языка Java 8
  • Добавить поддержку emoji2 для большего количества подклассов TextView ( AppCompatMultiAutoCompleteTextView , AppCompatAutoCompleteTextView , AppCompatRadioButton , AppCompatCheckBox ).

Изменения API

  • Добавлен API для настройки InputConnection для использования View.performReceiveContent для обработки вызовов IME к InputConnection.commitContent. ( I3a2ad )
  • Добавить поддержку EmojiCompat в AppCompatMultiAutoCompleteTextView ( Ifece0 )
  • Добавить поддержку EmojiCompat в AppCompatAutoCompleteTextView ( Ia1f4b )
  • Добавить поддержку EmojiCompat в AppCompatRadioButton ( If08af )
  • Добавить поддержку EmojiCompat в AppCompatCheckBox ( I2b3bc )
  • Разрешить null KeyListener в AppCompatEditText . Это отменяет ненулевую аннотацию, добавленную в AppCompatEditText в 1.4-alpha01, и восстанавливает предыдущее поведение при передаче null. ( I21482 , b/189559345 )
  • Добавьте PopupMenu.setForceShowIcon для соответствия API платформы ( I43bb3 , b/182789798 )

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

  • Исправлена ​​ошибка в AppCompatEditText, которая сбрасывает inputType, указанный в XML, чтобы удалить вариации. Эта ошибка появилась в AppCompat 1.4.0-alpha01. ( I9df36 , b/191061070 )

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

2 июня 2021 г.

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

Изменения API

  • Добавлен конструктор AppCompatDialogFragment , который принимает идентификатор макета ( Icbf22 , b/188119987 ).
  • Улучшена поддержка инспектора макета ( I02d55 )
  • Переименован пакет в emoji2-views-helper в androidx.emoji2.viewsintegration . Это критическое изменение для AppCompat 1.4.0-alpha01 , и приложения должны обеспечить обновление зависимости AppCompat для использования новой версии emoji2. ( Ie8397 )

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

  • Исправлена ​​ошибка, из-за которой остановленные действия не получали изменений конфигурации из-за изменений ночного режима, осуществляемых с помощью AppCompat. ( I8fa8f , b/188681415 )
  • Исправлена ​​ошибка в AppCompatEditText , из-за которой представления становились фокусируемыми, даже если в XML-файле было указано android:focusable="false" (ошибка, появившаяся в AppCompat 1.4.0-alpha01 ) ( Ib9412 )

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

18 мая 2021 г.

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

Изменения API

  • Интегрированная поддержка EmojiCompat для различных виджетов AppCompat ( Id409b , If7a1a , Ic262d , Ib5f4a , I4fb3c )
  • Добавлена ​​поддержка вложенных тонированных ресурсов и векторных рисунков в ресурсах AppCompat, загружающих бэкпорты. Однако следует отметить, что это означает, что приложения не могут переопределять getDrawable() для пользовательского объекта Resources, когда бэкпорты включены. ( Ia6b03 , b/176129022 )
  • Улучшена поддержка инспектора макета ( I6d771 )

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

  • Исправлен сценарий, при котором вызов setSupportActionBar после установки обратного вызова окна приводил к перезаписи обратного вызова. ( Ie43ee , b/186791590 )
  • Добавлено решение проблемы в SDK 29 и 30, из-за которой ресурсы ColorStateListDrawable, клонированные из кэша рисования, не загружают цвет по умолчанию, пока не получат изменение состояния. ( Iedb4b )
  • Избегайте NPE при обработке обратных вызовов режима действия пользовательского выбора null в представлениях, поддерживаемых AppCompat. ( I033c7 , b/173435375 )

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

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

  • Портируйте тонируемый фон и галочку для CheckedTextView ( I8575c )

Версия 1.3.1

Версия 1.3.1

21 июля 2021 г.

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

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

  • AppCompat теперь зависит от Activity 1.2.4 и Fragment 1.3.6 , благодаря чему исправления из этих выпусков включаются по умолчанию при использовании AppCompat 1.3.1 . ( I8fbec )

Версия 1.3.0

Версия 1.3.0

18 мая 2021 г.

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

Важные изменения по сравнению с версией 1.2.0

  • Исправлено распространение атрибутов android:theme между макетами <include> d на устройствах до Lollipop.
  • Уменьшен размер библиотеки за счет преобразования многих ресурсов PNG в VectorDrawables
  • Добавлена ​​поддержка событий перетаскивания в AppCompatEditText с OnReceiveContentListener
  • Обновлено для поддержки изменений в обработке вставок окон Android 11.
  • Добавлена ​​поддержка RTL в пунктах меню со значками.
  • Добавлена ​​поддержка вставки расширенного контента (например, вставки изображения) в AppCompatEditText

  • Обновлены зависимости : appcompat обновил многие из своих транзитивных зависимостей для поддержки новых функций и исправлений:

Версия 1.3.0-rc01

24 марта 2021 г.

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

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

  • Предотвращает преждевременный отзыв разрешений при обработке вставки контента IME.

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

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

  • Исправлено распространение атрибута android:theme между макетами <include> d на устройствах до Lollipop (Саймон Бергнер в Opera)

Версия 1.3.0-beta01

13 января 2021 г.

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

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

  • Рисуночные элементы режима действий на уровне темы были заменены векторными источниками. Это может привести к небольшим изменениям во внешнем виде отдельных иконок. ( I741a6 )

Изменения API

  • Интегрировано перетаскивание (события перетаскивания) в AppCompatEditText с OnReceiveContentListener. ( Ib26c9 , b/175343405 )
  • Обновлен OnReceiveContentListener и связанные API. Подробнее см. в изменениях библиотеки androidx.core. ( Ib4616 , b/173814913 )
  • Перемещен widget.RichContentReceiverCompat в view.OnReceiveContentListener. ( Ifdab7 , b/173814913 )
  • API для предоставления и извлечения начального окружающего текста были перенесены в EditorInfoCompat . Они позволяют приложениям IME избегать дополнительной задержки IPC. ( Ie3809 )

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

19 августа 2020 г.

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

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

  • AppCompatRatingBar PNG-рисунки были заменены векторными источниками. Это может привести к небольшим изменениям во внешнем виде отдельных звезд. ( I6b99d )
  • Обновление WindowInsetsCompat до API Android 11 ( I3df9e )
  • Поддержка RTL в пунктах меню со значками ( I2f5c5 )

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

  • AppCompat обновил свою зависимость с Fragment 1.1.0 до Fragment 1.3.0-alpha08 . Настоятельно рекомендуется прочитать заметки о выпуске Fragment 1.2.0 , чтобы понять основные изменения, внесенные в предыдущий выпуск Fragment.
  • AppCompat обновил свою зависимость с Activity 1.0.0 до Activity 1.2.0-alpha08 . Настоятельно рекомендуется прочитать заметки о выпуске Activity 1.1.0 , чтобы понять основные изменения, внесенные в предыдущий выпуск Activity.
    • AppCompatActivity теперь использует API OnContextAvailableListener , представленный в Activity 1.2.0-alpha08 для настройки AppCompatDelegate . Любые слушатели, добавленные в подклассы AppCompatActivity , будут запускаться после этого слушателя. ( I513da )

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

20 мая 2020 г.

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

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

  • Добавить новое правило Lint для пометки вызовов setActionBar для действий, расширяющих AppCompatActivity.
  • Добавлена ​​поддержка ViewTreeLifecycleOwner из Lifecycle 2.3.0-alpha01 , ViewTreeViewModelStoreOwner из Lifecycle 2.3.0-alpha03 и ViewTreeSavedStateRegistryOwner из SavedState 1.1.0-alpha01 при использовании View в AppCompatActivity . ( b/151603528 , aosp/1300264 )
  • Добавить общий API для вставки расширенного контента (например, вставки изображения). Новый обратный вызов предоставляет единый API, который приложения могут реализовать для поддержки различных способов вставки расширенного контента. На данный момент API добавлен только в AppCompatEditText и будет вызываться для следующих путей кода:
    • вставить из буфера обмена
    • вставка контента из IME ( InputConnection.commitContent ) ( I22bf7 )

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

  • Начиная с AppCompat 1.2.0-rc01 : AppCompat больше не вызывает onMenuOpened() с null меню. ( b/142843126 )
  • Правильно разрешать цвета текстовых ссылок и подсказок на старых устройствах при вызове TextViewCompat.setTextAppearance со стилем оформления текста, имеющим списки состояний цвета, ссылающиеся на атрибуты цвета темы ( b/154702995 ).

Версия 1.2.0

Версия 1.2.0

5 августа 2020 г.

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

Основные изменения по сравнению с версией 1.1.0

  • Исправлена ​​поддержка вариантов использования переопределения конфигурации, включая пользовательские локали и масштабы шрифтов. Смотрите здесь пример того, как правильно реализовать переопределения с помощью appcompat:1.2.0 .
  • Устаревший AppCompatDelegate.attachBaseContext() . Если вы вызываете или переопределяете этот метод, используйте вместо него AppCompatDelegate.attachBaseContext2() .
  • Устаревший CollapsibleActionView . Этот интерфейс больше не нужен, используйте интерфейс android.view.CollapsibleActionView , предоставляемый платформой.

Версия 1.2.0-rc02

22 июля 2020 г.

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

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

  • Исправлена ​​проблема, связанная с ночным режимом, при которой вызов AppCompatDelegate.setDefaultNightMode из диалогового окна иногда приводил к сбою при повторном создании действий и применении нового режима. ( aosp/1348308 , b/158923881 )

Версия 1.2.0-rc01

14 мая 2020 г.

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

Изменения API

  • AppCompatDelegate.setLocalNightMode отмечен как требующий SDK версии 17 или выше из-за проблемы платформы с утечкой изменений конфигурации между Activity в более ранних SDK.

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

  • AppCompatDelegate.setLocalNightMode теперь можно вызывать до Activity.attachBaseContext
  • Исправлено потребление вставок ActionBarOverlayLayout , которое неправильно использовало кэшированные вставки.
  • AppCompat больше не вызывает onMenuOpened() с null меню. ( b/142843126 )

Версия 1.2.0-beta01

1 апреля 2020 г.

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

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

  • Добавлены следующие новые правила lint, которые будут отмечать неправильное использование AppCompat в следующих сценариях:
    • Загрузка списков состояний цвета: предлагается использовать API ContextCompat и AppCompatResources для обратной совместимости.
    • Загрузка рисунков: предлагается использовать API ContextCompat и ResourcesCompat для обратной совместимости.
    • Использование списков состояний цвета с атрибутом альфа: флаги отсутствия атрибута android:alpha , что приведет к неправильному отображению на некоторых версиях платформы
    • Тонирование изображений: флаги, не использующие app:tint , что приведет к неправильному отображению на старых версиях платформы.
    • Использование составных рисунков и тонирования в текстовых представлениях: предлагает использовать атрибуты совместимости и API для обратной совместимости.

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

  • Исправлена ​​ошибка, из-за которой ActionBarOverlayLayout (действие декора окна) некорректно отправлял WindowInsets.
  • Исправлены проблемы с тонированием рисунков и внешним видом текста на старых версиях платформы.
  • Исправлена ​​ошибка, из-за которой androidx.appcompat:appcompat:1.1.0 приводил к сбою WebView при длительном нажатии ( b/141351441 )
  • Реализованы исправления проблем с манипуляцией базовым контекстом и получением системных служб во время запуска активности.

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

4 марта 2020 г.

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

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

  • Исправлена ​​ошибка, из-за которой статус-защитник режима действия ошибочно выходил на панель навигации и имел неправильный цвет ( Ia4a09 ).
  • Исправлена ​​ошибка, из-за которой остановленные действия не возобновлялись на уровне API 23 и ниже ( I45201 ).

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

29 января 2020 г.

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

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

  • Исправлена ​​ошибка, из-за которой appcompat 1.1.0 приводил к сбою веб-просмотра при длительном нажатии ( b/141351441 )
  • Исправлено тонирование рисуемых объектов в TextView относительно составных рисуемых объектов на уровне API 23 ( aosp/1172194 )
  • Гарантировано, что базовый контекст всегда является оберткой ( aosp/1194355 )
  • Добавлены некоторые улучшения, позволяющие более эффективно изменять базовую конфигурацию контекста ( aosp/1204543 ).
  • Отключено createConfigurationContext() для Robolectric ( aosp/1186218 )

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

4 декабря 2019 г.

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

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

  • Вызовы PackageManager.getActivityInfo больше не приводят к сбоям в строгом режиме с включенными проверками, учитывающими загрузку.
  • Исправления для тонирования рисунков на AppCompatButton
  • Исправления тонировки и внешнего вида текста на старых версиях платформы

Версия 1.1.0

Версия 1.1.0

5 сентября 2019 г.

androidx.appcompat:appcompat:1.1.0 и androidx.appcompat:appcompat-resources:1.1.0 выпущены. Коммиты, включенные в эту версию, можно найти здесь .

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

  • Улучшения темного режима : MODE_NIGHT_AUTO и переключение темного/светлого в зависимости от текущего времени теперь устарели. Рассматривается возможность использования явной настройки или MODE_NIGHT_AUTO_BATTERY .
  • Activity 1.0 : AppCompatActivity теперь транзитивно расширяется от ComponentActivity из Activity 1.0.0 через Fragment 1.1.0 . Информацию об изменениях в каждой библиотеке см. в соответствующих примечаниях к выпуску.
  • Конструктор AppCompatActivity LayoutId : Подклассы AppCompatActivity теперь могут опционально вызывать конструктор AppCompatActivity , который принимает идентификатор R.layout , указывающий макет, который должен быть установлен как представление содержимого в качестве альтернативы вызову setContentView() в onCreate() . Это не меняет требования, чтобы ваш подкласс имел конструктор без аргументов.

Версия 1.1.0-rc01

2 июля 2019 г.

androidx.appcompat:appcompat:1.1.0-rc01 и androidx.appcompat:appcompat-resources:1.1.0-rc01 выпущены. Коммиты, включенные в эту версию, можно найти здесь .

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

  • DayNight теперь корректно учитывает configChanges ( aosp/981105 )
  • Вызывайте onConfigurationChanged только при запущенных действиях ( aosp/987483 )

Версия 1.1.0-beta01

5 июня 2019 г.

androidx.appcompat:appcompat:1.1.0-beta01 и androidx.appcompat:appcompat-resources:1.1.0-beta01 выпущены. Коммиты, включенные в эту версию, можно найти здесь .

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

  • Обязательно очистим приемники в AppCompatDialogs ( aosp/959376 )
  • Добавить поддержку buttonGravity=center_vertical на панели инструментов ( b/130361721 )
  • Исправлено горизонтальное смещение счетчика ( b/79477181 )

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

7 мая 2019 г.

Выпущены androidx.appcompat:appcompat:1.1.0-alpha05 и androidx.appcompat:appcompat-resources:1.1.0-alpha05 . Коммиты, включенные в эту версию, можно найти здесь .

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

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

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

  • Различные исправления в режиме «День-Ночь»
  • Отменить контур при любом изменении фона в ActionBar
  • Исправлена ​​прокрутка виджета spinner
  • Исправлена ​​ошибка, из-за которой пользовательские фоны окон переопределялись в AlertDialog.

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

3 апреля 2019 г.

Выпущены androidx.appcompat:appcompat:1.1.0-alpha04 и androidx.appcompat:appcompat-resources:1.1.0-alpha04 . Коммиты, включенные в эту версию, можно найти здесь .

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

  • Добавлено новое семейство тем ThemeOverlay.AppCompat.DayNight . Их следует использовать при использовании функции DayNight.

Изменения API

  • AppCompatActivity теперь содержит второй конструктор, который принимает @LayoutRes int , что заменяет предыдущее поведение аннотирования вашего класса AppCompatActivity с помощью @ContentView . Этот подход работает как в модулях приложений, так и в модулях библиотек. ( b/128352521 )

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

  • Закреплены внутренние зависимости в стабильных версиях, где это возможно.
  • Исправлена ​​прокрутка AppCompatSpinner в раскрывающемся режиме ) b/124274573 )
  • Вызывает applyOverrideConfiguration() только в случае необходимости для DayNight

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

13 марта 2019 г.

Выпущены androidx.appcompat:appcompat:1.1.0-alpha03 и androidx.appcompat:appcompat-resources:1.1.0-alpha03 . Это первый выпуск appcompat-resources . Полный список коммитов, включенных в эту версию, можно найти здесь .

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

  • Новая библиотека appcompat-resources содержит API, которые позволяют приложениям загружать и тонировать чертежи (включая векторные чертежи) на старых версиях платформы. Это та же функциональность, которая ранее была частью модуля appcompat, но теперь доступна без накладных расходов полного backport appcompat Material design, который включает виджеты, диалоги, ночной режим и т. д.
  • Значительные исправления поддержки режима DayNight
  • Новая опция MODE_NIGHT_AUTO_BATTERY для режима День-Ночь
  • Рисуемая тонировка в AppCompatTextView
  • Переполнение панели инструментов теперь можно оформить с помощью тематических списков цветовых состояний
  • Значки меню теперь могут использовать цвета, соответствующие атрибутам темы.
  • Новый атрибут app:menu можно установить на панели инструментов, чтобы предоставить содержимое меню во время инфляции.

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

  • Исправлен режим оттенка по умолчанию в ImageView в версии 21.
  • Исправлено некорректное закрытие всплывающего окна при повороте устройства.
  • Исправлена ​​ошибка DayNight, не учитывающая configChanges в манифесте.
  • Исправлено переключение на MODE_NIGHT_FOLLOW_SYSTEM , которое не работало ( b/111345020 )
  • Исправлен сброс WebView DayNight Resources ( b/37124582 )

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

7 февраля 2019 г.

Выпущен androidx.appcompat:appcompat 1.1.0-alpha02 .

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

  • Извлеченные ресурсы для притяжения в притяжение в крючок ( AOSP/870976 )
  • Разрешенная панель инструментов titleTextColor и subtitleTextColor для использования ColorStateList и добавленных перегрузки ColorStateList в методах setTitleTextColor и setSubtitleTextColor ( AOSP/867489 )

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

  • Фиксированная fontFamily не работает над Pre API 24 ( AOSP/807054 )
  • Исправлена ​​ошибка, в которой textFontWeight не работал, когда деятельность простирается от AppCompatActivity ( AOSP/847640 )
  • Исправлена ​​ошибка, которая вызвала текст заголовка во всплывающем окне «Виджет спиннера» (при использовании диалогового режима), чтобы не использовать шрифт, указанный в fontFamily ( AOSP/789994 )
  • Исправьте ошибку, которая не позволяла виджетам AppCompatCheckBox и AppCompatRadioButton , чтобы изменить фоновый оттенок ( AOSP/825160 )
  • Исправлена ​​ошибка, где AppCompat не переопределял android: list styles ( AOSP/862350 )

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

3 декабря 2018 года

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

  • AppCompatTextView теперь поддерживает app:drawableLeftCompat , app:drawableTopCompat , app:drawableRightCompat , app:drawableBottomCompat , app:drawableStartCompat и app:drawableEndCompat составные притягивания, поддерживающие обратные вытягиваемые типы, такие как VectorDrawableCompat .

  • AppCompatCheckBox и AppCompatRadioButton Dakeables теперь аниматические проверки изменений состояния.

API меняется

  • AOSP/740385 : ActionBaroverLaylayout теперь реализует IntedScrollingParent2 и IntedScrollingParent3, позволяя ему облегчить последнюю функциональность в вложенном прокрутке 3. Если код разработчика в настоящее время переопределяет ActionBarOverLayLayout.onNestedScroll(View, int, int, int, int) ActionBarOverLayLayout.onNestedScroll(View, int, int, int, int, int, int[]) должен быть переопределен.

Версия 1.0.2

Версия 1.0.2

7 ноября 2018 г.

Выпуск Bugfix core-1.0.1 и appcompat-1.0.2 .

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

  • Исправлена ​​ошибка, в которой PrecomputedTextCompat отключился при использовании при использовании с RTL AppCompatTextView . B/113070424

Версия 1.0.0

Версия 1.0.0

7 ноября 2018 г.

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

  • AnimatedStateListDrawableCompat обеспечивает анимированные переходы между натягиваемыми состояниями.