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")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 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 compat 类添加了 setLineHeight(unit, lineHeight) (Ia9fa9)
  • TextView compat 类添加了 setLineHeight(unit, lineHeight) (Ib2ee1)
  • TextView compat 类添加了 setLineHeight(unit, lineHeight) (I15716)

bug 修复

  • 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 中包含这些提交内容

bug 修复

  • 修复了 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 中包含这些提交内容

bug 修复

  • 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 中包含这些提交内容

bug 修复

  • 修复了 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 中包含这些提交内容

bug 修复

  • AppCompatActivity 现在设置了 ViewTreeOnBackPressedDispatcherOwner,以便能够从视图中检索调度程序。(I1a115b/235416503
  • 还原了一个 bug 修复,该修复覆盖了传递给 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
  • 为异步布局膨胀器引入了新工厂。(Ia657b)

bug 修复

  • 现在,Toolbar 将在显示菜单之前调用 onPrepareMenu(),而不是在创建菜单时无条件调用。(I2a58db/232206677
  • AppCompat 现在明确依赖于 Lifecycle 2.5.1SavedState 1.2.0。(I7e3e2)
  • 添加了对向 AppCompatDelegate 返回所调用回调以及 AppCompat 提供的工具栏实现的支持。(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 变更

  • 更新了可为 null 性,以与 Tiramisu Beta 3 SDK 中的最终 API Surface 保持一致
  • 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 使用

bug 修复

  • 避免当配置在 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 以来的重要变更

  • 此稳定版包含对夜间模式稳定性的改进、bug 修复、为 AppCompat 支持的文本 widget 提供了复合可绘制对象色调调节支持,并改进了 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 中包含这些提交内容

bug 修复

  • 修复了以下问题:AppCompat 的上下文封装容器重复使用应用上下文的后备资源实现,导致 uiMode 在应用上下文中被覆盖。(Idf9d5)

版本 1.5.0-beta01

2022 年 7 月 13 日

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

API 变更

  • 添加了可替换的标志,以停用默认开关宽度调整功能。(I37cb7)
  • 为拇指位置 getter API 添加了 @FloatRange 注解 (If524c)
  • AnimatedStateListDrawableCompat 添加了缺失的可为 null 性注解 (Ieb4ec)

bug 修复

  • 最终确定了适用于 1.5.0-beta01 的 AppCompat API(I2a43db/236866227
  • 更改了 ActionMenuItemViewclassName 值,以将其视为 Button (I5ee1c)

版本 1.5.0-alpha01

2022 年 4 月 6 日

发布了 androidx.appcompat:appcompat:1.5.0-alpha01androidx.appcompat:appcompat-resources:1.5.0-alpha01版本 1.5.0-alpha01 中包含这些提交内容

API 变更

  • 新增了一个 API,用于将开关缩略图的位置公开给子类 (I9bfb4)
  • 更新了可为 null 性,以匹配 Tiramisu DP2 (I0cbb7)
  • 将复合可绘制对象色调调节向后移植到 TextView 衍生的 widget(Idf98cb/165822337
  • AppCompatDialog 现在会扩展 ComponentDialog 以与 OnBackPressedDispatcher 兼容(Id9b91b/217620781
  • SearchView.onQueryRefine() 现在为受保护公开,以允许替换(I6cce0b/212882845

bug 修复

  • AppCompat Toolbar 现在会调用 MenuHostHelperonPrepareMenu() API。(I9b9b5b/227376894
  • 在 XML 中设置后,AppCompatEditTextAppCompatAutoCompleteEditTextAppCompatMultiAutoCompleteEditText 不再在构造函数中重置 clickable 或 longClickable 属性(Ic5066b/221094907
  • AppCompatEditTextAppCompatAutoCompleteTextViewAppCompatMultiAutoCompleteTextView 在构造函数期间不会调用已替换的 setKeyListenerI5c13ab/208480173
  • Appcompat 不会封装传递给 setKeyListenerNumberKeyListener 实例,以允许 TextViewNumberKeyListeners 上正确配置语言区域(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.2版本 1.4.2 中包含这些提交内容。

bug 修复

  • 修复了在创建操作栏之前 AppCompatDelegateImplensureSubDecor 进行内部调用时出现的崩溃问题(aosp/2048349b/226648941

版本 1.4.1

2022 年 1 月 12 日

发布了 androidx.appcompat:appcompat:1.4.1androidx.appcompat:appcompat-resources:1.4.1版本 1.4.1 中包含这些提交内容。

bug 修复

  • AppCompatEditTextAppCompatAutoCompleteTextViewAppCompatMultiAutoCompleteTextView 在构造函数期间不会调用已替换的 setKeyListener。(I5c13ab/208480173
  • Emoji2 不会封装 NumberKeyListener 的实例,以允许由 textview 配置语言区域。
    • Appcompat 不会封装传递给 setKeyListenerNumberKeyListener 实例,以允许 TextViewNumberKeyListeners 上正确配置语言区域。(Ibf113b/207119921
  • 修复了 appcompat 1.4.0 中引入的所有允许输入非预期字符(如标点符号)的 NumberKeyListener 子类存在的问题(Iede7ab/207119921

版本 1.4.0

版本 1.4.0

2021 年 11 月 17 日

发布了 androidx.appcompat:appcompat:1.4.0androidx.appcompat:appcompat-resources:1.4.0版本 1.4.0 中包含这些提交内容

自 1.3.0 以来的重要变更

  • 该库现在以 Java 8 语言级别为目标
  • 通过 androidx.emoji2 库可默认启用可更新的表情符号支持
  • 改进了 Android Studio 的布局检查器中的属性检查功能 (I02d55)
  • 现在,AppCompat 资源加载向后移植支持嵌套着色资源和矢量可绘制对象。但请注意,这意味着启用向后移植后,应用无法替换针对自定义 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-rc01版本 1.4.0-rc01 中包含这些提交内容

版本 1.4.0-beta01

2021 年 9 月 29 日

发布了 androidx.appcompat:appcompat:1.4.0-beta01androidx.appcompat:appcompat-resources:1.4.0-beta01版本 1.4.0-beta01 中包含这些提交内容

API 变更

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

bug 修复

  • 修复了 AppCompatProgressBar 处理 layer-list 进度条时出现的问题(I6ece3b/142004509
  • AppCompatEditText 中正确保留 android:digits,从而修复了 AppCompat 1.4.0-alpha03 中引入的 bug 193047889。(I4b4fcb/193047889
  • 集成了 OnReceiveContentListener SDK 并支持 lib API。(Ic6914b/173814913

版本 1.4.0-alpha03

2021 年 6 月 30 日

发布了 androidx.appcompat:appcompat:1.4.0-alpha03androidx.appcompat:appcompat-resources:1.4.0-alpha03版本 1.4.0-alpha03 中包含这些提交内容

新功能

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

API 变更

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

bug 修复

  • 修复了 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-alpha02版本 1.4.0-alpha02 中包含这些提交内容

API 变更

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

bug 修复

  • 修复了以下问题:停止的 activity 不会收到因通过 AppCompat 进行插桩的夜间模式更改而带来的配置更改。(I8fa8fb/188681415
  • 修复了 AppCompatEditText 中的以下 bug:即使在 xml 中指定了 android:focusable="false",相应视图也可聚焦(在 AppCompat 1.4.0-alpha01 中引入的 bug)(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 widget 中(Id409bIf7a1aIc262dIb5f4aI4fb3c
  • 现在,AppCompat 资源加载向后移植支持嵌套着色资源和矢量可绘制对象。但请注意,这意味着启用向后移植后,应用无法替换针对自定义 Resources 对象的 getDrawable()。(Ia6b03b/176129022
  • 改进了布局检查器支持 (I6d771)

bug 修复

  • 修复了设置窗口回调后调用 setSupportActionBar 会覆盖回调的问题。(Ie43eeb/186791590
  • 添加了针对 SDK 29 和 30 中以下问题的权宜解决方法:从可绘制对象缓存克隆的 ColorStateListDrawable 资源在收到状态更改之前不会加载默认颜色。(Iedb4b)
  • 在由 AppCompat 支持的视图中处理 null 自定义选择操作模式回调时,避免出现 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 以来的重要变更

  • 修复了 android:theme 属性在低于 Lollipop 版本的设备上的 <include> 布局中传播的问题
  • 通过将许多 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 中包含这些提交内容

bug 修复

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

依赖项更新

外部贡献

  • 修复了 android:theme 属性在低于 Lollipop 版本的设备上的 <include> 布局中传播的问题(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 变更

  • 将 AppCompatEditText 中的拖放事件(放置事件)与 OnReceiveContentListener 进行了集成。(Ib26c9b/175343405
  • 更新了 OnReceiveContentListener 以及相关 API。如需了解详情,请参阅 androidx.core 库的变更。(Ib4616b/173814913)
  • 已将 widget.RichContentReceiverCompat 移至 view.OnReceiveContentListener。(Ifdab7b/173814913)
  • 用于提供和检索初始周围文字的 API 已向后移植到 EditorInfoCompat。这些 API 支持 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 中包含这些提交内容

bug 修复

  • 已将 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 的 Activity 上标记对 setActionBar 的调用
  • 添加了在 AppCompatActivity 中使用 View 时对 Lifecycle 2.3.0-alpha01 中的 ViewTreeLifecycleOwnerLifecycle 2.3.0-alpha03 中的 ViewTreeViewModelStoreOwner 以及 SavedState 1.1.0-alpha01 中的 ViewTreeSavedStateRegistryOwner 的支持。(b/151603528aosp/1300264
  • 添加了用于插入富媒体内容(例如粘贴图片)的通用 API。新回调提供了一个 API,应用可以实现该单一 API 来支持以不同的方式插入富媒体内容。目前,该 API 仅添加到了 AppCompatEditText,并将为以下代码路径调用:
    • 从剪贴板粘贴
    • 从 IME 插入内容 (InputConnection.commitContent) (I22bf7)

bug 修复

  • 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 中包含这些提交内容

bug 修复

  • 修复了与夜间模式相关的问题,即从对话框中调用 AppCompatDelegate.setDefaultNightMode 时,有时无法重新创建 activity 并应用新模式。(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 变更

  • 已将 AppCompatDelegate.setLocalNightMode 标记为需要 SDK 版本 17 或更高版本,因为在较低版本的 SDK 上,各 Activity 之间存在配置更改泄露方面的平台问题

bug 修复

  • 现在可以在 Activity.attachBaseContext 之前调用 AppCompatDelegate.setLocalNightMode
  • 修复了错误使用已缓存边衬区的 ActionBarOverlayLayout 边衬区使用问题
  • AppCompat 不再对 null 菜单调用 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 会导致无法在旧版平台上正确显示
    • 在文本视图中使用复合可绘制对象和色调调节:建议使用 compat 属性和 API 实现向后兼容性

bug 修复

  • 修复了 ActionBarOverlayLayout(窗口装饰操作)无法正确分派 WindowsInsets 的问题。
  • 修复了旧版平台上可绘制对象和文本外观的着色问题
  • 修复了长按 Webview 时,androidx.appcompat:appcompat:1.1.0 导致 Webview 崩溃的问题 (b/141351441)
  • 修复了基本上下文操纵问题以及在 activity 启动期间检索系统服务的问题

版本 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 中包含这些提交内容

bug 修复

  • 修复了操作模式状态保护错误延伸到导航栏且颜色有误的问题 (Ia4a09)
  • 修复了在 API 级别 23 及更低级别的平台上停止的 Activity 无法恢复的问题 (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 中包含这些提交内容

bug 修复

  • 修复了长按时,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 中包含这些提交内容

bug 修复

  • 在启用了启动感知型检查的情况下,在严格模式下调用 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.0ComponentActivity 进行过渡性扩展。要了解每个库中的更改,请参阅相关版本说明。
  • 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。点击此处可查看此版本中包含的提交内容。

bug 修复

  • DayNight 现在可以正确遵循 configChanges (aosp/981105)
  • 仅对已启动的 activity 调用 onConfigurationChanged (aosp/987483)

版本 1.1.0-beta01

2019 年 6 月 5 日

发布了 androidx.appcompat:appcompat:1.1.0-beta01androidx.appcompat:appcompat-resources:1.1.0-beta01。点击此处可查看此版本中包含的提交内容。

bug 修复

  • 确保清理 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。点击此处可查看此版本中包含的提交内容。

新功能

bug 修复

  • 对 DayNight 模式进行了各种修复
  • 作废了 ActionBar 中的任何背景变化的描绘轮廓
  • 修复了旋转图标 widget 滚动问题
  • 修复了 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)

bug 修复

  • 尽可能将内部依赖关系固定到稳定版本
  • 修复了下拉模式下的 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,这些 API 支持应用在更低版本的平台上加载可绘制对象(包括矢量可绘制对象)并为其着色。这与以前作为 appcompat 模块一部分提供的功能相同,但现在可在不产生 Material Design 完整 appcompat 向后移植(包括 widget、对话框、夜间模式等)开销的情况下提供。
  • 对 DayNight 模式支持进行了重要修复
  • 为 DayNight 模式新增了 MODE_NIGHT_AUTO_BATTERY 选项
  • AppCompatTextView 中对可绘制对象进行色调调节
  • 现在可通过主题颜色状态列表来设置工具栏溢出的样式
  • 菜单图标现在可以使用引用主题属性的颜色
  • 可以在工具栏中设置新的 app:menu 属性,以在扩展时提供菜单内容

bug 修复

  • 修复了版本 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)
  • 允许工具栏 titleTextColorsubtitleTextColor 使用 ColorStateList,并且添加了 setTitleTextColorsetSubtitleTextColor 方法的 ColorStateList 重载 (aosp/867489)

bug 修复

  • 修复了 fontFamily 在 API 级别低于 24 的平台上无法使用的问题 (aosp/807054)
  • 修复了当 activity 从 AppCompatActivity 扩展时 textFontWeight 无法使用的 bug (aosp/847640)
  • 修复了导致旋转图标 widget 弹出式窗口上的标题文字(使用对话框模式时)不使用 fontFamily 中指定的字体的 bug (aosp/789994)
  • 修复了导致 widget AppCompatCheckBoxAppCompatRadioButton 无法改变背景色调的 bug (aosp/825160)
  • 修复了 AppCompat 不能替换 android: list styles 的 bug (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 的 bug 修复版本。

bug 修复

  • 修复了 PrecomputedTextCompat 在与 RTL AppCompatTextView 配合使用时会崩溃的 bug。b/113070424

版本 1.0.0

版本 1.0.0

2018 年 11 月 7 日

新功能