Google 致力于为黑人社区推动种族平等。查看具体举措

Appcompat

允许在平台旧版 API 上访问新 API(很多使用 Material Design)。
最近更新时间 当前稳定版 下一候选版本 Beta 版 Alpha 版
2020 年 8 月 19 日 1.2.0 - - 1.3.0-alpha02

声明依赖项

如需添加 Appcompat 的依赖项,您必须将 Google Maven 代码库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

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

dependencies {
    def appcompat_version = "1.2.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.3.0

版本 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 的 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)

问题修复

  • 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 时,有时无法重新创建 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 之间存在配置更改泄漏方面的平台问题

问题修复

  • 现在可以在 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 实现向后兼容性

问题修复

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

问题修复

  • 修复了操作模式状态保护错误延伸到导航栏且颜色有误的问题 (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 中包含这些提交内容

问题修复

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

问题修复

  • 在启用了启动感知型检查的情况下,在 strict 模式下调用 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。点击此处可查看此版本中包含的提交内容。

问题修复

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

问题修复

  • 确保清理 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,这些 API 支持应用在更低版本的平台上加载可绘制对象(包括矢量可绘制对象)并为其着色。这与以前作为 appcompat 模块一部分提供的功能相同,但现在可在不产生 Material Design 完整 appcompat 向后移植(包括微件、对话框、夜间模式等)开销的情况下提供。
  • 对 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)
  • 允许工具栏 titleTextColorsubtitleTextColor 使用 ColorStateList,并且添加了 setTitleTextColorsetSubtitleTextColor 方法的 ColorStateList 过载 (aosp/867489)

问题修复

  • 修复了 fontFamily 在 API 级别低于 24 的平台上不工作的问题 (aosp/807054)
  • 修复了当 Activity 从 AppCompatActivity 扩展时 textFontWeight 不工作的错误 (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 日

新功能