Appcompat

允许访问旧版平台 API 中的新 API(许多使用 Material Design)。
最新更新 稳定版 候选版 Beta 版 Alpha 版
2024年5月29日 1.7.0 - - -

声明依赖项

要添加对 Appcompat 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读Google 的 Maven 存储库了解更多信息。

在您的应用或模块的build.gradle文件中添加所需构件的依赖项

Groovy

dependencies {
    def appcompat_version = "1.7.0"

    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.0"

    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。如果您发现新的问题或有改进此库的想法,请告知我们。在创建新的问题之前,请查看此库中现有问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新的问题

有关更多信息,请参阅问题跟踪器文档

1.7 版

1.7.0 版

2024年5月29日

androidx.appcompat:appcompat:1.7.0androidx.appcompat:appcompat-resources:1.7.0 已发布。1.7.0 版包含这些提交

自 1.6.0 版以来的重要更改

  • AppCompatDialog 现在通过 ViewTree API 正确地在对话框的装饰视图上设置 LifecycleOwnerSavedStateRegistryOwnerOnBackPressedDispatcherOwner,从而修复了在 AppCompatDialog 中托管 ComposeView 时的错误。
  • AppCompatActivity 现在设置 ViewTreeOnBackPressedDispatcherOwner,以便可以从视图中检索调度程序。
  • 显著提高了 SupportMenuInflater 的性能。
  • Locale.getDefault() 现在在冷启动后返回系统语言环境。
  • LinearLayoutCompat 现在保留边距布局参数。

依赖项更新

  • AppCompat 现在依赖于 Activity 1.7.0。
  • AppCompat 现在依赖于 Fragment 1.5.4 版本。

1.7.0-rc01 版本

2024年5月14日

androidx.appcompat:appcompat:1.7.0-rc01androidx.appcompat:appcompat-resources:1.7.0-rc01 已发布。1.7.0-rc01 版本包含这些提交

1.7.0-beta01 版本

2024年5月1日

androidx.appcompat:appcompat:1.7.0-beta01androidx.appcompat:appcompat-resources:1.7.0-beta01 已发布。1.7.0-beta01 版本包含这些提交

1.7.0-alpha03 版本

2023年7月26日

androidx.appcompat:appcompat:1.7.0-alpha03androidx.appcompat:appcompat-resources:1.7.0-alpha03 已发布。1.7.0-alpha03 版本包含这些提交。

新功能

  • 支持在非 Activity 上下文中获取每个应用的语言环境 (I58e753)。为此功能添加了四个新的 API

    • LocaleManagerCompat.getApplicationLocales():供开发者在 Activity 作用域外获取每个应用的语言环境。

    • ContextCompat.getString():根据每个应用的语言环境返回本地化字符串。

    • ContextCompat.getContextForLanguage():此方法返回的上下文将遵循每个应用的语言环境。

    • ConfigurationCompat.setLocales():对于上述 API,用于设置配置的语言环境。

其他 API 变更

  • TextView 兼容类添加了 setLineHeight(unit, lineHeight) (Ia9fa9)
  • TextView 兼容类添加了 setLineHeight(unit, lineHeight) (Ib2ee1)
  • TextView 兼容类添加了 setLineHeight(unit, lineHeight) (I15716)

错误修复

  • AppCompatDialog 现在通过 ViewTree API 正确地将 LifecycleOwnerSavedStateRegistryOwnerOnBackPressedDispatcherOwner 设置到对话框的装饰视图上,修复了在 AppCompatDialog 中托管 ComposeView 时的错误。AppCompat 现在依赖于 Activity 1.7.0。(Ib28abb/261314581)
  • 显著提高了 SupportMenuInflater 的性能 (I0b087)

1.7.0-alpha02 版本

2023年2月8日

androidx.appcompat:appcompat:1.7.0-alpha02androidx.appcompat:appcompat-resources:1.7.0-alpha02 已发布。1.7.0-alpha02 版本包含这些提交。

错误修复

  • 修复了 AppCompatDelegate.getLocaleManagerForApplication() 中的内存泄漏 (44b57fd)
  • AppCompat 现在依赖于 Fragment 1.5.4 版本 (I54dcd)

1.7.0-alpha01 版本

2022年10月5日

androidx.appcompat:appcompat:1.7.0-alpha01androidx.appcompat:appcompat-resources:1.7.0-alpha01 已发布。1.7.0-alpha01 版本包含这些提交。

错误修复

  • AppCompatActivity 现在设置 ViewTreeOnBackPressedDispatcherOwner,以便可以从视图中检索调度程序。(I1a115b/235416503)
  • Locale.getDefault() 现在在冷启动后返回系统语言环境 (I6a94b)
  • LinearLayoutCompat 现在保留边距布局参数 (Id2af4)

1.6.1 版本

1.6.1 版本

2023年2月8日

androidx.appcompat:appcompat:1.6.1androidx.appcompat:appcompat-resources:1.6.1 已发布。1.6.1 版本包含这些提交。

错误修复

  • 修复了 AppCompatDelegate.getLocaleManagerForApplication() 中的内存泄漏 (44b57fd)

1.6.0 版本

1.6.0 版本

2023年1月11日

androidx.appcompat:appcompat:1.6.0androidx.appcompat:appcompat-resources:1.6.0 已发布。1.6.0 版本包含这些提交。

自 1.5.0 版本以来的重要更改

1.6.0-rc01 版本

2022年9月7日

androidx.appcompat:appcompat:1.6.0-rc01androidx.appcompat:appcompat-resources:1.6.0-rc01 已发布。1.6.0-rc01 版本包含这些提交。

错误修复

  • AppCompatActivity 现在设置 ViewTreeOnBackPressedDispatcherOwner,以便可以从视图中检索调度程序。(I1a115b/235416503)
  • 回滚了一个错误修复,该修复程序覆盖了传递给 onConfigurationChanged 的配置,这导致了通过 onConfigurationChanged 注入自己自定义配置的测试出现问题。

1.6.0-beta01 版本

2022年8月10日

androidx.appcompat:appcompat:1.6.0-beta01androidx.appcompat:appcompat-resources:1.6.0-beta01 已发布。1.6.0-beta01 版本包含这些提交。

API 变更

  • DrawableWrapperDrawableContainerStateListDrawable 兼容类移动到公共 API。(I37f3eb/227789566)
  • 为异步布局 inflater 引入了一个新的工厂。(Ia657b)

错误修复

  • Toolbar 现在将在菜单显示之前调用 onPrepareMenu(),而不是在创建菜单时无条件调用。(I2a58db/232206677)
  • AppCompat 现在明确依赖于 Lifecycle 2.5.1SavedState 1.2.0。(I7e3e2)
  • AppCompatDelegateAppCompat 提供的 Toolbar 实现添加了对后退调用的支持。(I24062)
  • 完成 1.5.0-beta01 的 AppCompat API (I2a43db/236866227)
  • 完成 1.5.0-beta01 的 AppCompat API (I2a43db/236866227)

1.6.0-alpha05 版本

2022年6月15日

androidx.appcompat:appcompat:1.6.0-alpha05androidx.appcompat:appcompat-resources:1.6.0-alpha05 已发布。1.6.0-alpha05 版本是在私有的预发行分支中开发的,没有公共提交。

API 变更

  • 可空性更新,以与 Tiramisu Beta 3 SDK 中最终确定的 API 表面保持一致
  • minCompileSdk 现在为 33,以与 Tiramisu Beta 3 SDK 保持一致

1.6.0-alpha04 版本

2022年5月18日

androidx.appcompat:appcompat:1.6.0-alpha04androidx.appcompat:appcompat-resources:1.6.0-alpha04 已发布。此库是针对私有的预发行分支开发的,因此没有可用的提交日志。

API 变更

  • 添加一个 API 来覆盖 SwitchCompat 宽度限制,供 MDC-Android 使用

错误修复

  • 在 attachBaseConfig 之外的配置更改时避免托管配置

1.6.0-alpha03 版本

2022年4月27日

androidx.appcompat:appcompat:1.6.0-alpha03androidx.appcompat:appcompat-resources:1.6.0-alpha03 已发布。

此版本需要 Android 13 Beta 1 才能编译,并且不能保证与未来的开发者预览版在运行时兼容。

新功能

  • 通过 AppCompatDelegate.setApplicationLocales() 支持应用范围内的自定义语言选择。在 API 级别 33 及以上版本中委托给平台实现。

1.6.0-alpha01 版本

2022年2月23日

androidx.appcompat:appcompat:1.6.0-alpha01androidx.appcompat:appcompat-resources:1.6.0-alpha01 已发布。1.6.0-alpha01 版本是从内部分支构建的,没有公开可见的提交。

此版本需要 Android Tiramisu DP1 才能编译,并且不能保证与未来的开发者预览版在运行时兼容。

新功能

  • 添加了对自定义应用程序语言环境的支持。有关详细信息,请参阅 AppCompatDelegate.setApplicationLocales(LocaleListCompat)。为 Android 13 中可用的新的 每种语言的首选项 API 提供向后兼容性。

1.5.1 版本

1.5.1 版本

2022年9月7日

androidx.appcompat:appcompat:1.5.1androidx.appcompat:appcompat-resources:1.5.1 已发布。1.5.1 版本包含这些提交。

依赖项更新

1.5.0 版本

1.5.0 版本

2022年8月10日

androidx.appcompat:appcompat:1.5.0androidx.appcompat:appcompat-resources:1.5.0 已发布。1.5.0 版本包含这些提交。

自 1.4.0 版本以来的重要更改

  • 此稳定版本包括对夜间模式稳定性的改进、错误修复和对 AppCompat 支持的文本小部件的复合可绘制对象着色支持,以及对 API 可用性的改进。有关更改的详细列表,请参阅之前的 1.5.0 系列发行说明。

1.5.0-rc01 版本

2022年7月27日

androidx.appcompat:appcompat:1.5.0-rc01androidx.appcompat:appcompat-resources:1.5.0-rc01 已发布。1.5.0-rc01 版本包含这些提交。

错误修复

  • 修复了 AppCompat 的上下文包装器重用应用程序上下文的后台资源实现的问题,导致 uiMode 在应用程序上下文中被覆盖。(Idf9d5)

1.5.0-beta01 版本

2022年7月13日

已发布 androidx.appcompat:appcompat:1.5.0-beta01androidx.appcompat:appcompat-resources:1.5.0-beta011.5.0-beta01 版本包含这些提交。

API 变更

  • 添加可覆盖标志以禁用默认的开关宽度调整。(I37cb7
  • 向拇指位置 getter API 添加 @FloatRange 注解(If524c
  • AnimatedStateListDrawableCompat 添加缺少的可空性注解(Ieb4ec

错误修复

  • 完成 1.5.0-beta01 的 AppCompat API (I2a43db/236866227)
  • 更改 ActionMenuItemViewclassName 值,将其视为 ButtonI5ee1c

1.5.0-alpha01 版本

2022年4月6日

已发布 androidx.appcompat:appcompat:1.5.0-alpha01androidx.appcompat:appcompat-resources:1.5.0-alpha011.5.0-alpha01 版本包含这些提交。

API 变更

  • 添加了一个新的 API,用于向子类公开开关拇指的位置(I9bfb4
  • 更新可空性以匹配 Tiramisu DP2(I0cbb7
  • 向后移植到 TextView 派生小部件的复合可着色 drawable(Idf98cb/165822337
  • 为了与 OnBackPressedDispatcher 兼容,AppCompatDialog 现在扩展了 ComponentDialogId9b91b/217620781
  • SearchView.onQueryRefine() 现在具有受保护的可见性,允许覆盖(I6cce0b/212882845

错误修复

  • AppCompat Toolbar 现在调用 MenuHostHelperonPrepareMenu() API。(I9b9b5b/227376894
  • AppCompatEditTextAppCompatAutoCompleteEditTextAppCompatMultiAutoCompleteEditText 将不再在构造函数中通过 XML 设置时重置可点击或长按可点击。(Ic5066b/221094907
  • AppCompatEditTextAppCompatAutoCompleteTextViewAppCompatMultiAutoCompleteTextView 将不会在构造函数期间调用重写的 setKeyListenerI5c13ab/208480173
  • Appcompat 不会包装传递给 setKeyListenerNumberKeyListener 实例,允许 TextView 正确配置 NumberKeyListeners 上的区域设置(Ibf113b/207119921
  • 修复了 AppCompat 1.4.0 中引入的所有 NumberKeyListener 子类的问题,这些问题允许输入意外字符(例如标点符号)(Iede7ab/207119921

1.4.2 版本

1.4.2 版本

2022年6月1日

已发布 androidx.appcompat:appcompat:1.4.2androidx.appcompat:appcompat-resources:1.4.21.4.2 版本包含这些提交。

错误修复

  • 修复了 AppCompatDelegateImpl 在创建操作栏之前内部调用 ensureSubDecor 导致崩溃的问题(aosp/2048349b/226648941

1.4.1 版本

2022年1月12日

已发布 androidx.appcompat:appcompat:1.4.1androidx.appcompat:appcompat-resources:1.4.11.4.1 版本包含这些提交。

错误修复

  • AppCompatEditTextAppCompatAutoCompleteTextViewAppCompatMultiAutoCompleteTextView 将不会在构造函数期间调用重写的 setKeyListener。(I5c13ab/208480173
  • Emoji2 不会包装 NumberKeyListener 实例,允许 TextView 配置区域设置。
    • Appcompat 不会包装传递给 setKeyListenerNumberKeyListener 实例,允许 TextView 正确配置 NumberKeyListeners 上的区域设置。(Ibf113b/207119921
  • 修复了 AppCompat 1.4.0 中引入的所有 NumberKeyListener 子类的问题,这些问题允许输入意外字符(例如标点符号)(b/207119921)(Iede7ab/207119921

1.4.0 版本

1.4.0 版本

2021年11月17日

已发布 androidx.appcompat:appcompat:1.4.0androidx.appcompat:appcompat-resources:1.4.01.4.0 版本包含这些提交。

自 1.3.0 版本以来的重要更改

  • 库现在以 Java 8 语言级别为目标
  • 通过 androidx.emoji2 库默认启用可更新的表情符号支持
  • 改进了 Android Studio 的布局检查器中的属性检查(I02d55
  • 在 AppCompat 资源加载回端口中添加了对嵌套着色资源和矢量 drawable 的支持。但是,请注意,这意味着当启用回端口时,应用程序无法覆盖自定义 Resources 对象上的 getDrawable()。(Ia6b03b/176129022
  • 向后移植了 CheckedTextView 的可着色背景和复选标记(I8575c

1.4.0-rc01 版本

2021年10月27日

已发布 androidx.appcompat:appcompat:1.4.0-rc01androidx.appcompat:appcompat-resources:1.4.0-rc011.4.0-rc01 版本包含这些提交。

1.4.0-beta01 版本

2021年9月29日

已发布 androidx.appcompat:appcompat:1.4.0-beta01androidx.appcompat:appcompat-resources:1.4.0-beta011.4.0-beta01 版本包含这些提交。

API 变更

  • AndroidX AppCompat Toolbar 现在是 MenuHost,可以管理 MenuProvider。(I5cd95

错误修复

  • 修复了 AppCompatProgressBar 对分层列表进度条的处理(I6ece3b/142004509
  • AppCompatEditText 中正确保留 android:digits,这修复了 AppCompat 1.4.0-alpha03 中引入的 bug 193047889。(I4b4fcb/193047889
  • 集成了 OnReceiveContentListener SDK 和支持库 API。(Ic6914b/173814913

1.4.0-alpha03 版本

2021年6月30日

已发布 androidx.appcompat:appcompat:1.4.0-alpha03androidx.appcompat:appcompat-resources:1.4.0-alpha031.4.0-alpha03 版本包含这些提交。

新功能

  • 库现在以 Java 8 语言级别为目标
  • 为更多 TextView 子类添加 emoji2 支持(AppCompatMultiAutoCompleteTextViewAppCompatAutoCompleteTextViewAppCompatRadioButtonAppCompatCheckBox)。

API 变更

  • 添加了一个 API,用于配置 InputConnection 以使用 View.performReceiveContent 来处理对 InputConnection.commitContent 的 IME 调用。(I3a2ad
  • AppCompatMultiAutoCompleteTextView 添加 EmojiCompat 支持(Ifece0
  • AppCompatAutoCompleteTextView 添加 EmojiCompat 支持(Ia1f4b
  • AppCompatRadioButton 添加 EmojiCompat 支持(If08af
  • AppCompatCheckBox 添加 EmojiCompat 支持(I2b3bc
  • 允许 AppCompatEditText 中的可空 KeyListener。这反转了在 1.4-alpha01 中添加到 AppCompatEditText 的非空注解,并在传递 null 时恢复之前的行为。(I21482b/189559345
  • 添加 PopupMenu.setForceShowIcon 以与平台 API 保持一致(I43bb3b/182789798

错误修复

  • 修复了 AppCompatEditText 中的 bug,该 bug 会重置在 XML 中指定的 inputType 以删除变体。此 bug 是在 AppCompat 1.4.0-alpha01 中引入的。(I9df36b/191061070

1.4.0-alpha02 版本

2021年6月2日

已发布 androidx.appcompat:appcompat:1.4.0-alpha02androidx.appcompat:appcompat-resources:1.4.0-alpha021.4.0-alpha02 版本包含这些提交。

API 变更

  • 添加了接受布局 ID 的 AppCompatDialogFragment 构造函数(Icbf22b/188119987
  • 改进了布局检查器支持(I02d55
  • emoji2-views-helper 中的包重命名为 androidx.emoji2.viewsintegration。这是对 AppCompat 1.4.0-alpha01 的重大更改,应用程序必须确保更新 AppCompat 依赖项才能使用新的 emoji2 版本。(Ie8397

错误修复

  • 修复了已停止的活动未接收来自 AppCompat 工具夜间模式更改的配置更改的问题。(I8fa8fb/188681415)
  • 修复了AppCompatEditText中的错误,该错误会导致即使在 xml 中指定了android:focusable="false"时视图仍可聚焦(此错误在 AppCompat 1.4.0-alpha01中引入)(Ib9412)

1.4.0-alpha01 版本

2021 年 5 月 18 日

androidx.appcompat:appcompat:1.4.0-alpha01androidx.appcompat:appcompat-resources:1.4.0-alpha01 已发布。1.4.0-alpha01 版本包含这些提交。

API 变更

  • 将 EmojiCompat 支持集成到各种 AppCompat 组件中(Id409bIf7a1aIc262dIb5f4aI4fb3c)
  • 在 AppCompat 资源加载回填中添加了对嵌套着色资源和矢量可绘制对象的的支持。但是,请注意,这意味着当启用回填时,应用程序无法在自定义 Resources 对象上覆盖getDrawable()。(Ia6b03b/176129022)
  • 改进了布局检查器支持(I6d771)

错误修复

  • 修复了在设置窗口回调后调用 setSupportActionBar 会覆盖回调的情况。(Ie43eeb/186791590)
  • 为 SDK 29 和 30 上的一个问题添加了解决方法,该问题是:从可绘制缓存克隆的 ColorStateListDrawable 资源在接收状态更改之前不会加载默认颜色。(Iedb4b)
  • 处理 AppCompat 支持视图上的空自定义选择操作模式回调时避免 NPE。(I033c7b/173435375)

依赖项更新

外部贡献

  • CheckedTextView 回填可着色背景和复选标记(I8575c)

1.3.1 版本

1.3.1 版本

2021 年 7 月 21 日

androidx.appcompat:appcompat:1.3.1androidx.appcompat:appcompat-resources:1.3.1 已发布。1.3.1 版本包含这些提交。

依赖项更新

1.3.0 版本

1.3.0 版本

2021 年 5 月 18 日

androidx.appcompat:appcompat:1.3.0androidx.appcompat:appcompat-resources:1.3.0 已发布。1.3.0 版本包含这些提交。

自 1.2.0 版本以来的重要更改

  • 修复了在 Lollipop 之前的设备上跨 <include> 布局传播 android:theme 属性的问题
  • 通过将许多 PNG 资源转换为 VectorDrawables 来减小库大小
  • 使用 OnReceiveContentListenerAppCompatEditText 添加了对拖放事件的支持
  • 更新为支持 Android 11 窗口内边距处理的更改
  • 添加了对包含图标的菜单项中 RTL 的支持
  • 添加了对在 AppCompatEditText 中插入富文本内容(例如粘贴图像)的支持

  • **更新的依赖项**:appcompat 更新了许多其传递依赖项以支持新功能和修复

1.3.0-rc01 版本

2021 年 3 月 24 日

androidx.appcompat:appcompat:1.3.0-rc01androidx.appcompat:appcompat-resources:1.3.0-rc01 已发布。1.3.0-rc01 版本包含这些提交。

错误修复

  • 防止在处理 IME 内容插入时过早撤销权限

依赖项更新

外部贡献

  • 修复了在 Lollipop 之前的设备上跨 <include> 布局传播 android:theme 属性的问题(Opera 的 Simon Bergner)

1.3.0-beta01 版本

2021 年 1 月 13 日

androidx.appcompat:appcompat:1.3.0-beta01androidx.appcompat:appcompat-resources:1.3.0-beta01 已发布。1.3.0-beta01 版本包含这些提交。

新功能

  • 主题级别的操作模式可绘制对象已替换为矢量源。这可能会导致各个图标的视觉外观略有变化。(I741a6)

API 变更

  • 使用 OnReceiveContentListener 集成了 AppCompatEditText 中的拖放(放置事件)。(Ib26c9b/175343405)
  • 更新了 OnReceiveContentListener 和相关的 API。有关更多详细信息,请参阅 androidx.core 库更改。(Ib4616b/173814913)
  • 将 widget.RichContentReceiverCompat 移动到 view.OnReceiveContentListener。(Ifdab7b/173814913)
  • 提供和检索初始周围文本的 API 已回填到 EditorInfoCompat。它们允许 IME 应用程序避免额外的 IPC 延迟。(Ie3809)

1.3.0-alpha02 版本

2020 年 8 月 19 日

androidx.appcompat:appcompat:1.3.0-alpha02androidx.appcompat:appcompat-resources:1.3.0-alpha02 已发布。1.3.0-alpha02 版本包含这些提交。

错误修复

  • AppCompatRatingBar PNG 可绘制对象已替换为矢量源。这可能会导致各个星星的视觉外观略有变化。(I6b99d)
  • 将 WindowInsetsCompat 更新到 Android 11 API(I3df9e)
  • 支持包含图标的菜单项中的 RTL(I2f5c5)

依赖项更新

1.3.0-alpha01 版本

2020 年 5 月 20 日

androidx.appcompat:appcompat:1.3.0-alpha01androidx.appcompat:appcompat-resources:1.3.0-alpha01 已发布。1.3.0-alpha01 版本包含这些提交。

新功能

  • 添加一个新的 Lint 规则来标记对扩展 AppCompatActivity 的活动的 setActionBar 的调用
  • 在使用 AppCompatActivity 中的 View 时,添加了对来自 Lifecycle 2.3.0-alpha01ViewTreeLifecycleOwner、来自 Lifecycle 2.3.0-alpha03ViewTreeViewModelStoreOwner 和来自 SavedState 1.1.0-alpha01ViewTreeSavedStateRegistryOwner 的支持。(b/151603528aosp/1300264)
  • 添加插入富文本内容(例如粘贴图像)的通用 API。新的回调提供了一个单一的 API,应用程序可以实现该 API 以支持可能插入富文本内容的不同方式。目前,该 API 仅添加到 AppCompatEditText,并将为以下代码路径调用
    • 从剪贴板粘贴
    • 来自 IME 的内容插入(InputConnection.commitContent)(I22bf7)

错误修复

  • 来自 AppCompat 1.2.0-rc01:AppCompat 不再使用 null 菜单调用 onMenuOpened()。(b/142843126)
  • 当 TextViewCompat.setTextAppearance 使用具有引用主题颜色属性的颜色状态列表的文本外观样式调用时,在较旧的设备上正确解析文本链接和提示颜色(b/154702995)

1.2.0 版本

1.2.0 版本

2020 年 8 月 5 日

androidx.appcompat:appcompat:1.2.0androidx.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

2020年7月22日

发布了 androidx.appcompat:appcompat:1.2.0-rc02androidx.appcompat:appcompat-resources:1.2.0-rc02版本 1.2.0-rc02 包含这些提交。

错误修复

  • 修复了与夜间模式相关的一个问题,该问题在从对话框调用 AppCompatDelegate.setDefaultNightMode 时,偶尔会无法重新创建活动并应用新模式。(aosp/1348308b/158923881

版本 1.2.0-rc01

2020年5月14日

发布了 androidx.appcompat:appcompat:1.2.0-rc01androidx.appcompat:appcompat-resources:1.2.0-rc01版本 1.2.0-rc01 包含这些提交。

API 变更

  • 由于平台问题导致较低SDK版本上配置更改在活动之间泄漏,AppCompatDelegate.setLocalNightMode 已标记为需要 SDK 版本 17 或更高版本。

错误修复

  • 现在可以在 Activity.attachBaseContext 之前调用 AppCompatDelegate.setLocalNightMode
  • 修复了 ActionBarOverlayLayout 内嵌内容的消耗问题,该问题错误地使用了缓存的内嵌内容。
  • AppCompat 不会再使用空菜单调用 onMenuOpened()。(b/142843126

版本 1.2.0-beta01

2020年4月1日

发布了 androidx.appcompat:appcompat:1.2.0-beta01androidx.appcompat:appcompat-resources:1.2.0-beta01版本 1.2.0-beta01 包含这些提交。

新功能

  • 添加了以下新的 lint 规则,这些规则将标记在以下情况下 AppCompat 的不正确用法:
    • 加载颜色状态列表:建议使用 ContextCompatAppCompatResources API 以实现向后兼容性。
    • 加载可绘制对象:建议使用 ContextCompatResourcesCompat API 以实现向后兼容性。
    • 使用带有 alpha 属性的颜色状态列表:标记缺少 android:alpha 属性,这将导致在某些平台版本上出现不正确的显示。
    • 着色图像视图:标记未使用 app:tint,这将导致在较旧的平台版本上出现不正确的显示。
    • 在文本视图上使用复合可绘制对象和着色:建议使用兼容属性和 API 以实现向后兼容性。

错误修复

  • 修复了 ActionBarOverlayLayout(窗口装饰操作)未正确分派 WindowInsets 的问题。
  • 修复了在较旧平台版本上着色可绘制对象和文本外观的问题。
  • 修复了 androidx.appcompat:appcompat:1.1.0 在长按时使 webview 崩溃的问题(b/141351441
  • 实现了对活动启动期间基本上下文操作和检索系统服务的修复。

版本 1.2.0-alpha03

2020年3月4日

发布了 androidx.appcompat:appcompat:1.2.0-alpha03androidx.appcompat:appcompat-resources:1.2.0-alpha03版本 1.2.0-alpha03 包含这些提交。

错误修复

  • 修复了操作模式状态保护错误地延伸到导航栏并具有错误颜色的问题(Ia4a09
  • 修复了在 API 级别 23 及以下版本上已停止的活动未恢复的问题(I45201

版本 1.2.0-alpha02

2020年1月29日

发布了 androidx.appcompat:appcompat:1.2.0-alpha02androidx.appcompat:appcompat-resources:1.2.0-alpha02版本 1.2.0-alpha02 包含这些提交。

错误修复

  • 修复了 appcompat 1.1.0 在长按时使 webview 崩溃的问题(b/141351441
  • 修复了 API 级别 23 上相对于复合可绘制对象的 TextView 中的可绘制对象着色问题(aosp/1172194
  • 确保基本上下文始终是包装器(aosp/1194355
  • 添加了一些改进,以便在修改基本上下文配置时更智能(aosp/1204543
  • 为 Robolectric 禁用了 createConfigurationContext()aosp/1186218

版本 1.2.0-alpha01

2019年12月4日

发布了 androidx.appcompat:appcompat:1.2.0-alpha01androidx.appcompat:appcompat-resources:1.2.0-alpha01版本 1.2.0-alpha01 包含这些提交。

错误修复

  • 对 PackageManager.getActivityInfo 的调用在启用启动感知检查的严格模式下不再崩溃。
  • 修复了 AppCompatButton 上的可绘制对象着色问题。
  • 修复了较旧平台版本上的着色和文本外观问题。

版本 1.1.0

版本 1.1.0

2019年9月5日

发布了 androidx.appcompat:appcompat:1.1.0androidx.appcompat:appcompat-resources:1.1.0。此版本中包含的提交可以在这里找到 这里

自 1.0.0 以来的重要更改

  • 深色模式改进MODE_NIGHT_AUTO 和根据当前时间切换深色/浅色模式现已弃用。建议使用显式设置或 MODE_NIGHT_AUTO_BATTERY
  • Activity 1.0AppCompatActivity 现在通过 Fragment 1.1.0Activity 1.0.0 传递扩展。有关每个库中的更改信息,请参阅相关的发行说明。
  • AppCompatActivity LayoutId 构造函数AppCompatActivity 的子类现在可以选择调用 AppCompatActivity 上的构造函数,该构造函数接受 R.layout ID,指示应将哪个布局设置为内容视图,作为在 onCreate() 中调用 setContentView() 的替代方法。但这不会更改子类必须具有无参数构造函数的要求。

版本 1.1.0-rc01

2019年7月2日

发布了 androidx.appcompat:appcompat:1.1.0-rc01androidx.appcompat:appcompat-resources:1.1.0-rc01。此版本中包含的提交可以在这里找到 这里

错误修复

  • DayNight 现在可以正确处理 configChangesaosp/981105
  • 仅对已启动的活动调用 onConfigurationChangedaosp/987483

版本 1.1.0-beta01

2019年6月5日

发布了 androidx.appcompat:appcompat:1.1.0-beta01androidx.appcompat:appcompat-resources:1.1.0-beta01。此版本中包含的提交可以在这里找到 这里

错误修复

  • 确保我们在 AppCompatDialogs 中清理接收器(aosp/959376
  • 添加对工具栏上 buttonGravity=center_vertical 的支持(b/130361721
  • 修复微调器水平偏移(b/79477181

版本 1.1.0-alpha05

2019年5月7日

发布了 androidx.appcompat:appcompat:1.1.0-alpha05androidx.appcompat:appcompat-resources:1.1.0-alpha05。此版本中包含的提交可以在这里找到 这里

新功能

错误修复

  • 对 DayNight 模式进行了各种修复
  • 在任何背景更改时使 ActionBar 失效轮廓
  • 修复微调器部件滚动
  • 修复在 AlertDialog 中被覆盖的自定义窗口背景

版本 1.1.0-alpha04

2019年4月3日

发布了 androidx.appcompat:appcompat:1.1.0-alpha04androidx.appcompat:appcompat-resources:1.1.0-alpha04。此版本中包含的提交可以在这里找到 这里

新功能

  • 添加了新的 ThemeOverlay.AppCompat.DayNight 主题系列。使用 DayNight 功能时应使用这些主题。

API 更改

  • AppCompatActivity 现在包含第二个构造函数,该构造函数接受 @LayoutRes int,它替换了以前使用 @ContentView 注释 AppCompatActivity 类的方式。此方法适用于应用程序和库模块。(b/128352521

错误修复

  • 尽可能将内部依赖项固定到稳定版本
  • 修复了 AppCompatSpinner 在下拉模式下的滚动问题(b/124274573
  • 仅在 DayNight 需要时调用 applyOverrideConfiguration()

版本 1.1.0-alpha03

2019年3月13日

发布了 androidx.appcompat:appcompat:1.1.0-alpha03androidx.appcompat:appcompat-resources:1.1.0-alpha03。这是 appcompat-resources 的第一个版本。此版本中包含的完整提交列表可以在这里找到 这里

新功能

  • 新的 appcompat-resources 库包含允许应用程序在较旧平台版本上加载和着色可绘制对象(包括矢量可绘制对象)的 API。这与以前是 appcompat 模块一部分的功能相同,但现在无需完整的 appcompat 向后移植 Material Design(包括小部件、对话框、夜间模式等)的开销。
  • 对 DayNight 模式支持进行了重大修复
  • DayNight 模式的新 MODE_NIGHT_AUTO_BATTERY 选项
  • AppCompatTextView 中着色可绘制对象
  • 工具栏溢出现在可以使用主题颜色状态列表进行样式设置
  • 菜单图标现在可以使用引用主题属性的颜色
  • 新的 app:menu 属性可以设置在工具栏上,以便在加载时提供菜单内容

错误修复

  • 修复了21版ImageView的默认色调模式
  • 修复了设备旋转时微调器弹出窗口关闭不正确的错误
  • 修复了DayNight模式未遵守清单文件中的configChanges
  • 修复了切换到MODE_NIGHT_FOLLOW_SYSTEM无效的问题 (b/111345020)
  • 修复了WebView重置DayNight资源的问题 (b/37124582)

1.1.0-alpha02版本

2019年2月7日

已发布androidx.appcompat:appcompat 1.1.0-alpha02

新功能

  • 将特定于资源的可绘制处理提取到钩子中 (aosp/870976)
  • 允许Toolbar的titleTextColorsubtitleTextColor使用ColorStateList,并添加了ColorStateListsetTitleTextColorsetSubtitleTextColor方法的重载 (aosp/867489)

错误修复

  • 修复了API 24之前的版本中fontFamily无效的问题 (aosp/807054)
  • 修复了当Activity继承自AppCompatActivitytextFontWeight无效的错误 (aosp/847640)
  • 修复了微调器小部件弹出窗口(使用对话框模式时)的标题文本不使用fontFamily中指定的字体的错误 (aosp/789994)
  • 修复了阻止小部件AppCompatCheckBoxAppCompatRadioButton更改背景色调的错误 (aosp/825160)
  • 修复了AppCompat未覆盖android: list styles的错误 (aosp/862350)

1.1.0-alpha01版本

2018年12月3日

新功能

  • AppCompatTextView现在支持app:drawableLeftCompatapp:drawableTopCompatapp:drawableRightCompatapp:drawableBottomCompatapp:drawableStartCompatapp:drawableEndCompat复合可绘制对象,支持向后移植的可绘制类型,例如VectorDrawableCompat

  • AppCompatCheckBoxAppCompatRadioButton的默认可绘制对象现在会对选中状态更改进行动画处理。

API 更改

  • aosp/740385:ActionBarOverlayLayout现在实现了NestedScrollingParent2和NestedScrollingParent3,使其能够促进嵌套滚动3中的最新功能。如果开发人员代码当前覆盖了ActionBarOverLayLayout.onNestedScroll(View, int, int, int, int),则可能不再调用它,而应改为覆盖ActionBarOverLayLayout.onNestedScroll(View, int, int, int, int, int, int[])

1.0.2版本

1.0.2版本

2018年11月7日

core-1.0.1appcompat-1.0.2的错误修复版本。

错误修复

  • 修复了PrecomputedTextCompat与RTL AppCompatTextView一起使用时会崩溃的错误。b/113070424

1.0.0版本

1.0.0版本

2018年11月7日

新功能