Appcompat
最新更新 | 稳定版发布 | 发布候选版 | Beta 版发布 | Alpha 版发布 |
---|---|---|---|---|
2025年6月4日 | 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。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中现有问题。您可以通过点击星形按钮为您关注的现有问题投票。
如需了解更多信息,请参阅问题跟踪器文档。
版本 1.7
版本 1.7.1
2025年6月4日
androidx.appcompat:appcompat:1.7.1
和 androidx.appcompat:appcompat-resources:1.7.1
已发布。版本 1.7.1 包含这些提交。
Bug 修复
AppCompat
已更新为使用 Activity 1.8.0,以便它可以使用ComponentActivity
中的initializeViewTreeOwners()
API,以确保始终正确设置ViewTreeOwners
。这修复了AppCompatActivity
与 NavigationEvent 以及基于其构建的库(例如 Navigation 3)之间的不兼容问题。( I96919、b/419208471 )
版本 1.7.0
2024年5月29日
androidx.appcompat:appcompat:1.7.0
和 androidx.appcompat:appcompat-resources:1.7.0
已发布。版本 1.7.0 包含这些提交。
自 1.6.0 以来的重要变更
AppCompatDialog
现在通过ViewTree
API 在对话框的装饰视图上正确设置LifecycleOwner
、SavedStateRegistryOwner
和OnBackPressedDispatcherOwner
,从而修复了在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-rc01
和 androidx.appcompat:appcompat-resources:1.7.0-rc01
已发布。版本 1.7.0-rc01 包含这些提交。
版本 1.7.0-beta01
2024年5月1日
androidx.appcompat:appcompat:1.7.0-beta01
和 androidx.appcompat:appcompat-resources:1.7.0-beta01
已发布。版本 1.7.0-beta01 包含这些提交。
版本 1.7.0-alpha03
2023年7月26日
androidx.appcompat:appcompat:1.7.0-alpha03
和 androidx.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 )
Bug 修复
AppCompatDialog
现在通过ViewTree
API 在对话框的装饰视图上正确设置LifecycleOwner
、SavedStateRegistryOwner
和OnBackPressedDispatcherOwner
,从而修复了在AppCompatDialog
中托管ComposeView
时出现的问题。AppCompat
现在依赖于 Activity 1.7.0。( Ib28ab、b/261314581 )- 显著提高了
SupportMenuInflater
的性能 ( I0b087 )
版本 1.7.0-alpha02
2023年2月8日
androidx.appcompat:appcompat:1.7.0-alpha02
和 androidx.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-alpha01
和 androidx.appcompat:appcompat-resources:1.7.0-alpha01
已发布。版本 1.7.0-alpha01 包含这些提交。
Bug 修复
AppCompatActivity
现在设置了ViewTreeOnBackPressedDispatcherOwner
,以便可以从视图中检索调度程序。( I1a115、b/235416503 )- 冷启动后,
Locale.getDefault()
现在会返回系统语言区域设置 ( I6a94b ) LinearLayoutCompat
现在会保留边距布局参数 ( Id2af4 )
版本 1.6.1
版本 1.6.1
2023年2月8日
androidx.appcompat:appcompat:1.6.1
和 androidx.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.0
和 androidx.appcompat:appcompat-resources:1.6.0
已发布。版本 1.6.0 包含这些提交。
自 1.5.0 以来的重要变更
- 增加了对自定义应用语言区域设置的支持。如需了解更多信息,请参阅
AppCompatDelegate.setApplicationLocales(LocaleListCompat)
。为 Android 13 中新的每语言偏好设置 API 提供了向后兼容性。 - 为与 Android 13 (Tiramisu, API level 33) SDK 对齐,更新了可空性。
- 向公共 API 界面添加了
DrawableWrapper
、DrawableContainer
和StateListDrawable
兼容类
版本 1.6.0-rc01
2022年9月7日
androidx.appcompat:appcompat:1.6.0-rc01
和 androidx.appcompat:appcompat-resources:1.6.0-rc01
已发布。版本 1.6.0-rc01 包含这些提交。
Bug 修复
AppCompatActivity
现在设置了ViewTreeOnBackPressedDispatcherOwner
,以便可以从视图中检索调度程序。( I1a115、b/235416503 )- 恢复了一个 bug 修复,该修复会覆盖传递给
onConfigurationChanged
的配置,这导致了通过onConfigurationChanged
注入自定义配置的测试出现问题。
版本 1.6.0-beta01
2022年8月10日
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 )
Bug 修复
Toolbar
现在将在菜单显示之前调用onPrepareMenu()
,而不是在菜单创建时无条件调用。( I2a58d、b/232206677 )AppCompat
现在明确依赖于Lifecycle
2.5.1
和SavedState
1.2.0
。( I7e3e2 )- 增加了对
AppCompatDelegate
和AppCompat
提供的 Toolbar 实现的返回调用回调的支持。( I24062 ) - 最终确定 1.5.0-beta01 的
AppCompat
API ( I2a43d、b/236866227 ) - 最终确定 1.5.0-beta01 的
AppCompat
API ( I2a43d、b/236866227 )
版本 1.6.0-alpha05
2022年6月15日
androidx.appcompat:appcompat:1.6.0-alpha05
和 androidx.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-alpha04
和 androidx.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-alpha03
和 androidx.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-alpha01
和 androidx.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.1
和 androidx.appcompat:appcompat-resources:1.5.1
已发布。版本 1.5.1 包含这些提交。
依赖项更新
AppCompat
现在明确依赖于Lifecycle2.5.1
和SavedState1.2.0
。( I7e3e2 )
版本 1.5.0
版本 1.5.0
2022年8月10日
androidx.appcompat:appcompat:1.5.0
和 androidx.appcompat:appcompat-resources:1.5.0
已发布。版本 1.5.0 包含这些提交。
自 1.4.0 以来的重要变更
- 此稳定版本包含夜间模式稳定性改进、Bug 修复以及对 AppCompat 支持的文本微件的组合 drawable 着色支持,并提高了 API 可用性。有关详细更改列表,请参阅以前的 1.5.0 系列版本说明。
版本 1.5.0-rc01
2022年7月27日
androidx.appcompat:appcompat:1.5.0-rc01
和 androidx.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-beta01
和 androidx.appcompat:appcompat-resources:1.5.0-beta01
已发布。版本 1.5.0-beta01 包含这些提交。
API 变更
- 添加了一个可重写标志,以禁用默认开关宽度调整。( I37cb7 )
- 向拇指位置 getter API 添加
@FloatRange
注解 ( If524c ) - 为
AnimatedStateListDrawableCompat
添加缺失的可空性注解 ( Ieb4ec )
Bug 修复
- 最终确定 1.5.0-beta01 的
AppCompat
API ( I2a43d、b/236866227 ) - 更改
ActionMenuItemView
的className
值,以将其视为Button
( I5ee1c )
版本 1.5.0-alpha01
2022年4月6日
androidx.appcompat:appcompat:1.5.0-alpha01
和 androidx.appcompat:appcompat-resources:1.5.0-alpha01
已发布。版本 1.5.0-alpha01 包含这些提交。
API 变更
- 添加了一个新 API,用于向子类公开开关拇指位置 ( I9bfb4 )
- 更新了可空性以匹配 Tiramisu DP2 ( I0cbb7 )
- 将复合 drawable 着色反向移植到 TextView 派生的小部件 ( Idf98c、b/165822337 )
AppCompatDialog
现在扩展了ComponentDialog
,以兼容OnBackPressedDispatcher
( Id9b91、b/217620781 )SearchView.onQueryRefine()
现在是受保护的可见性,允许覆盖 ( I6cce0、b/212882845 )
Bug 修复
- AppCompat
Toolbar
现在调用MenuHostHelper
的onPrepareMenu()
API。( I9b9b5、b/227376894 ) - 在 XML 中设置时,
AppCompatEditText
、AppCompatAutoCompleteEditText
、AppCompatMultiAutoCompleteEditText
不再在构造函数中重置 clickable 或 longClickable ( Ic5066、b/221094907 ) AppCompatEditText
、AppCompatAutoCompleteTextView
和AppCompatMultiAutoCompleteTextView
在构造函数期间将不会调用被覆盖的setKeyListener
(I5c13a、b/208480173)- Appcompat 将不会包装传递给
setKeyListener
的NumberKeyListener
实例,从而允许TextView
在NumberKeyListeners
上正确配置语言环境(Ibf113、b/207119921) - 修复了 AppCompat 1.4.0 中引入的所有
NumberKeyListener
子类问题,该问题曾允许输入标点符号等意外字符(Iede7a、b/207119921)
版本 1.4.2
版本 1.4.2
2022 年 6 月 1 日
androidx.appcompat:appcompat:1.4.2
和 androidx.appcompat:appcompat-resources:1.4.2
已发布。版本 1.4.2 包含以下提交。
Bug 修复
- 修复了
AppCompatDelegateImpl
在操作栏创建之前内部调用ensureSubDecor
导致的崩溃问题(aosp/2048349、b/226648941)
版本 1.4.1
2022 年 1 月 12 日
androidx.appcompat:appcompat:1.4.1
和 androidx.appcompat:appcompat-resources:1.4.1
已发布。版本 1.4.1 包含以下提交。
Bug 修复
AppCompatEditText
、AppCompatAutoCompleteTextView
和AppCompatMultiAutoCompleteTextView
在构造函数期间将不会调用被覆盖的setKeyListener
。(I5c13a、b/208480173)Emoji2
将不会包装NumberKeyListener
的实例,从而允许 TextView 配置语言环境。- Appcompat 将不会包装传递给
setKeyListener
的NumberKeyListener
实例,从而允许TextView
在NumberKeyListeners
上正确配置语言环境。(Ibf113、b/207119921)
- Appcompat 将不会包装传递给
- 修复了 appcompat 1.4.0 中引入的所有
NumberKeyListener
子类问题,该问题曾允许输入标点符号等意外字符(b/207119921)(Iede7a、b/207119921)
版本 1.4.0
版本 1.4.0
2021 年 11 月 17 日
androidx.appcompat:appcompat:1.4.0
和 androidx.appcompat:appcompat-resources:1.4.0
已发布。版本 1.4.0 包含以下提交。
自 1.3.0 以来的重要变化
- 库现在以 Java 8 语言级别为目标
- 默认通过
androidx.emoji2
库启用可更新的 Emoji 支持 - 改进了 Android Studio 的 Layout Inspector 中的属性检查(I02d55)
- 在 AppCompat 资源加载回溯中添加了对嵌套着色资源和矢量可绘制对象(vector drawable)的支持。但请注意,这意味着当启用回溯时,应用无法在自定义
Resources
对象上覆盖getDrawable()
。(Ia6b03、b/176129022) - 为
CheckedTextView
回溯了可着色背景和复选标记(I8575c)
版本 1.4.0-rc01
2021 年 10 月 27 日
androidx.appcompat:appcompat:1.4.0-rc01
和 androidx.appcompat:appcompat-resources:1.4.0-rc01
已发布。版本 1.4.0-rc01 包含以下提交。
版本 1.4.0-beta01
2021 年 9 月 29 日
androidx.appcompat:appcompat:1.4.0-beta01
和 androidx.appcompat:appcompat-resources:1.4.0-beta01
已发布。版本 1.4.0-beta01 包含以下提交。
API 变更
- AndroidX AppCompat
Toolbar
现在是一个MenuHost
,并且可以管理MenuProvider
。(I5cd95)
Bug 修复
- 修复了 AppCompatProgressBar 对层列表进度条(layer-list progress bar)的处理问题(I6ece3、b/142004509)
- 正确保留
AppCompatEditText
中的android:digits
,这修复了 AppCompat 1.4.0-alpha03 中引入的 bug 193047889。(I4b4fc、b/193047889) - 集成了 OnReceiveContentListener SDK 和支持库 API。(Ic6914、b/173814913)
版本 1.4.0-alpha03
2021 年 6 月 30 日
androidx.appcompat:appcompat:1.4.0-alpha03
和 androidx.appcompat:appcompat-resources:1.4.0-alpha03
已发布。版本 1.4.0-alpha03 包含以下提交。
新功能
- 库现在以 Java 8 语言级别为目标
- 为更多 TextView 子类(
AppCompatMultiAutoCompleteTextView
、AppCompatAutoCompleteTextView
、AppCompatRadioButton
、AppCompatCheckBox
)添加 emoji2 支持。
API 变更
- 添加了一个 API,用于配置 InputConnection 以使用
View.performReceiveContent
来处理 IME 对InputConnection.commitContent
的调用。(I3a2ad) - 为
AppCompatMultiAutoCompleteTextView
添加 EmojiCompat 支持(Ifece0) - 为
AppCompatAutoCompleteTextView
添加 EmojiCompat 支持(Ia1f4b) - 为
AppCompatRadioButton
添加 EmojiCompat 支持(If08af) - 为
AppCompatCheckBox
添加 EmojiCompat 支持(I2b3bc) - 允许在
AppCompatEditText
中使用 nullKeyListener
。这撤销了在 1.4-alpha01 中添加到 AppCompatEditText 的非空注解,并恢复了传入 null 时的原有行为。(I21482、b/189559345) - 添加
PopupMenu.setForceShowIcon
,以与平台 API 保持一致(I43bb3、b/182789798)
Bug 修复
- 修复了
AppCompatEditText
中的一个 bug,该 bug 会重置 XML 中指定的inputType
以消除变体。此 bug 是在 AppCompat 1.4.0-alpha01 中引入的。(I9df36、b/191061070)
版本 1.4.0-alpha02
2021 年 6 月 2 日
androidx.appcompat:appcompat:1.4.0-alpha02
和 androidx.appcompat:appcompat-resources:1.4.0-alpha02
已发布。版本 1.4.0-alpha02 包含以下提交。
API 变更
- 添加了接受布局 ID 的
AppCompatDialogFragment
构造函数(Icbf22、b/188119987) - 改进了布局检查器支持(I02d55)
- 将
emoji2-views-helper
中的软件包重命名为androidx.emoji2.viewsintegration
。这对 AppCompat1.4.0-alpha01
来说是一个重大变更,应用必须确保 AppCompat 依赖项已更新以使用新的 emoji2 版本。(Ie8397)
Bug 修复
- 修复了停止的 activity 未从 AppCompat 检测的夜间模式更改中接收配置更改的问题。(I8fa8f、b/188681415)
- 修复了
AppCompatEditText
中的一个 bug,该 bug 会导致视图即使在 XML 中指定了android:focusable="false"
时也能获得焦点(此 bug 是在 AppCompat1.4.0-alpha01
中引入的)(Ib9412)
版本 1.4.0-alpha01
2021 年 5 月 18 日
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 资源加载回溯中添加了对嵌套着色资源和矢量可绘制对象(vector drawable)的支持。但请注意,这意味着当启用回溯时,应用无法在自定义
Resources
对象上覆盖getDrawable()
。(Ia6b03、b/176129022) - 改进了布局检查器支持(I6d771)
Bug 修复
- 修复了在设置窗口回调后调用
setSupportActionBar
会覆盖回调的情况。(Ie43ee、b/186791590) - 添加了一个针对 SDK 29 和 30 上问题的解决方法,该问题导致从可绘制对象缓存克隆的
ColorStateListDrawable
资源在接收到状态更改之前不会加载默认颜色。(Iedb4b) - 避免在处理 AppCompat 支持视图上的空自定义选择操作模式回调时出现 NPE。(I033c7、b/173435375)
依赖项更新
- 来自 AppCompat
1.5.0
:AppCompat 现在依赖于 Fragment Fragment1.3.4
。(I13089) - 来自 AppCompat
1.5.0
:AppCompat 现在依赖于 Activity1.2.3
。(I815b7) - 来自 AppCompat
1.5.0
:AppCompat 现在依赖于 Lifecycle2.3.1
。(Ia75a1)
外部贡献
- 为
CheckedTextView
回溯了可着色背景和复选标记(I8575c)
版本 1.3.1
版本 1.3.1
2021 年 7 月 21 日
androidx.appcompat:appcompat:1.3.1
和 androidx.appcompat:appcompat-resources:1.3.1
已发布。版本 1.3.1 包含以下提交。
依赖项更新
- AppCompat 现在依赖于 Activity
1.2.4
和 Fragment1.3.6
,使得在使用 AppCompat1.3.1
时,这些版本中的修复默认包含在内。(I8fbec)
版本 1.3.0
版本 1.3.0
2021 年 5 月 18 日
androidx.appcompat:appcompat:1.3.0
和 androidx.appcompat:appcompat-resources:1.3.0
已发布。版本 1.3.0 包含以下提交。
自 1.2.0 以来的主要变化
- 修复了
android:theme
属性在 Lollipop 之前设备上的<include>
布局中传播的问题 - 通过将许多 PNG 资源转换为 VectorDrawables 减小了库大小
- 为带有
OnReceiveContentListener
的AppCompatEditText
添加了对拖放事件的支持 - 已更新以支持 Android 11 窗口内边距处理的更改
- 在带有图标的菜单项中添加了对 RTL 的支持
在
AppCompatEditText
中添加了对插入富内容(例如粘贴图像)的支持更新的依赖项:
appcompat
更新了其许多传递性依赖项以支持新功能和修复- 已从 Fragment
1.1.0
更新到 Fragment1.3.4
- 已从 Activity 1.0.0 更新到 Activity
1.2.3
- 已从 Lifecycle
2.0.0
更新到 Lifecycle2.3.1
。 - 已从 Core 1.3.0 更新到 Core
1.5.0
- 已从 Fragment
版本 1.3.0-rc01
2021 年 3 月 24 日
androidx.appcompat:appcompat:1.3.0-rc01
和 androidx.appcompat:appcompat-resources:1.3.0-rc01
已发布。版本 1.3.0-rc01 包含以下提交。
Bug 修复
- 在处理 IME 内容插入时,可防止权限过早地被撤销
依赖项更新
- AppCompat 现在依赖于 Activity
1.2.2
、Fragment1.3.2
和 Lifecycle2.3.1
。(Ia75a1)
外部贡献
- 修复了
android:theme
属性在 Lollipop 之前设备上的<include>
布局中传播的问题(Opera 的 Simon Bergner)
版本 1.3.0-beta01
2021 年 1 月 13 日
androidx.appcompat:appcompat:1.3.0-beta01
和 androidx.appcompat:appcompat-resources:1.3.0-beta01
已发布。版本 1.3.0-beta01 包含以下提交。
新功能
- 主题级操作模式可绘制对象(theme-level action mode drawable)已替换为矢量源。这可能会导致各个图标的视觉外观发生细微变化。(I741a6)
API 变更
- 将拖放(拖放事件)集成到带有 OnReceiveContentListener 的 AppCompatEditText 中。(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-alpha02
2020 年 8 月 19 日
androidx.appcompat:appcompat:1.3.0-alpha02
和 androidx.appcompat:appcompat-resources:1.3.0-alpha02
已发布。版本 1.3.0-alpha02 包含以下提交。
Bug 修复
- AppCompatRatingBar PNG 可绘制对象已替换为矢量源。这可能会导致各个星标的视觉外观发生细微变化。(I6b99d)
- 将
WindowInsetsCompat
更新到 Android 11 API(I3df9e) - 在带有图标的菜单项中支持 RTL(I2f5c5)
依赖项更新
- AppCompat 已将其依赖项从 Fragment
1.1.0
更新到 Fragment1.3.0-alpha08
。强烈建议阅读 Fragment1.2.0
版本说明,以了解上一个 Fragment 版本中引入的主要更改。 - AppCompat 已将其依赖项从 Activity
1.0.0
更新到 Activity1.2.0-alpha08
。强烈建议阅读 Activity1.1.0
版本说明,以了解上一个 Activity 版本中引入的主要更改。AppCompatActivity
现在使用 Activity1.2.0-alpha08
中引入的OnContextAvailableListener
API 来设置AppCompatDelegate
。添加到AppCompatActivity
子类的所有监听器都将在该监听器之后运行。(I513da)
版本 1.3.0-alpha01
2020 年 5 月 20 日
androidx.appcompat:appcompat:1.3.0-alpha01
和 androidx.appcompat:appcompat-resources:1.3.0-alpha01
已发布。版本 1.3.0-alpha01 包含以下提交。
新功能
- 添加了一个新的 Lint 规则,用于标记在扩展 AppCompatActivity 的 activity 上调用 setActionBar 的情况
- 在使用
AppCompatActivity
中的View
时,添加了对来自 Lifecycle2.3.0-alpha01
的ViewTreeLifecycleOwner
、来自 Lifecycle2.3.0-alpha03
的ViewTreeViewModelStoreOwner
以及来自 SavedState1.1.0-alpha01
的ViewTreeSavedStateRegistryOwner
的支持。(b/151603528、aosp/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.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
2020 年 7 月 22 日
androidx.appcompat:appcompat:1.2.0-rc02
和 androidx.appcompat:appcompat-resources:1.2.0-rc02
已发布。版本 1.2.0-rc02 包含以下提交。
Bug 修复
- 修复了与夜间模式相关的问题,即从对话框调用
AppCompatDelegate.setDefaultNightMode
有时会无法重新创建 activity 并应用新模式。(aosp/1348308、b/158923881)
版本 1.2.0-rc01
2020 年 5 月 14 日
androidx.appcompat:appcompat:1.2.0-rc01
和 androidx.appcompat:appcompat-resources:1.2.0-rc01
已发布。版本 1.2.0-rc01 包含以下提交。
API 变更
- 由于较早 SDK 上 Activity 之间配置更改泄漏的平台问题,
AppCompatDelegate.setLocalNightMode
已被标记为需要 SDK 版本 17 或更高版本
Bug 修复
AppCompatDelegate.setLocalNightMode
现在可以在Activity.attachBaseContext
之前调用- 修复了
ActionBarOverlayLayout
内边距消耗问题,该问题错误地使用了缓存的内边距 - AppCompat 不再调用带
null
菜单的onMenuOpened()
。(b/142843126)
版本 1.2.0-beta01
2020 年 4 月 1 日
androidx.appcompat:appcompat:1.2.0-beta01
和 androidx.appcompat:appcompat-resources:1.2.0-beta01
已发布。版本 1.2.0-beta01 包含以下提交。
新功能
- 添加了以下新的 Lint 规则,用于标记在以下场景中不正确使用 AppCompat 的情况
- 加载颜色状态列表:建议使用
ContextCompat
和AppCompatResources
API 以实现向后兼容性 - 加载可绘制对象:建议使用
ContextCompat
和ResourcesCompat
API 以实现向后兼容性 - 使用带有 alpha 属性的颜色状态列表:标记缺失
android:alpha
属性,这将在某些平台版本上导致不正确的显示 - 着色图像视图:标记未使用
app:tint
的情况,这将在旧平台版本上导致不正确的显示 - 在文本视图上使用复合可绘制对象和着色:建议使用兼容属性和 API 以实现向后兼容性
- 加载颜色状态列表:建议使用
Bug 修复
- 修复了
ActionBarOverlayLayout
(窗口装饰操作)未正确分派 WindowInsets 的问题。 - 修复了在旧平台版本上着色可绘制对象和文本外观的问题
- 修复了当长按 webview 时,
androidx.appcompat:appcompat:1.1.0
会导致 webview 崩溃的问题(b/141351441) - 针对 activity 启动期间基础上下文操作和检索系统服务的问题实施了修复
版本 1.2.0-alpha03
2020 年 3 月 4 日
androidx.appcompat:appcompat:1.2.0-alpha03
和 androidx.appcompat:appcompat-resources:1.2.0-alpha03
已发布。版本 1.2.0-alpha03 包含以下提交。
Bug 修复
版本 1.2.0-alpha02
2020 年 1 月 29 日
androidx.appcompat:appcompat:1.2.0-alpha02
和 androidx.appcompat:appcompat-resources:1.2.0-alpha02
已发布。版本 1.2.0-alpha02 包含以下提交。
Bug 修复
- 修复了 appcompat 1.1.0 在长按 webview 时导致 webview 崩溃的问题(b/141351441)
- 修复了在 API Level 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-alpha01
和 androidx.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.0
和 androidx.appcompat:appcompat-resources:1.1.0
已发布。此版本中包含的提交可在此处找到。
自 1.0.0 以来的重要更改
- 深色模式改进:
MODE_NIGHT_AUTO
以及根据当前时间切换深色/亮色的功能现已弃用。请考虑使用显式设置或MODE_NIGHT_AUTO_BATTERY
。 - Activity 1.0:
AppCompatActivity
现在通过 Fragment1.1.0
间接扩展了来自 Activity1.0.0
的ComponentActivity
。有关每个库中更改的信息,请参阅相关的版本说明。 - AppCompatActivity LayoutId 构造函数:
AppCompatActivity
的子类现在可以选择调用AppCompatActivity
上的一个构造函数,该构造函数接受一个R.layout
ID,指示应将哪个布局设置为内容视图,作为在onCreate()
中调用setContentView()
的替代方法。这不会改变您的子类必须具有无参数构造函数的要求。
版本 1.1.0-rc01
2019 年 7 月 2 日
androidx.appcompat:appcompat:1.1.0-rc01
和 androidx.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-beta01
和 androidx.appcompat:appcompat-resources:1.1.0-beta01
已发布。此版本中包含的提交可在此处找到。
Bug 修复
- 确保清理 AppCompatDialogs 中的接收器(aosp/959376)
- 在 Toolbar 上添加对
buttonGravity=center_vertical
的支持(b/130361721) - 修复微调器水平偏移(b/79477181)
版本 1.1.0-alpha05
2019 年 5 月 7 日
androidx.appcompat:appcompat:1.1.0-alpha05
和 androidx.appcompat:appcompat-resources:1.1.0-alpha05
已发布。此版本中包含的提交可在此处找到。
新功能
- setDefaultNightMode() 现在会自动重新创建所有已启动的 activity。
Bug 修复
- 对 DayNight 模式的各种修复
- 在 ActionBar 中任何背景更改时使轮廓无效
- 修复微调器控件滚动
- 修复了在 AlertDialog 中自定义设置的窗口背景被覆盖的问题
版本 1.1.0-alpha04
2019 年 4 月 3 日
androidx.appcompat:appcompat:1.1.0-alpha04
和 androidx.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-alpha03
和 androidx.appcompat:appcompat-resources:1.1.0-alpha03
已发布。这是 appcompat-resources
的第一个版本。此版本中包含的完整提交列表可在此处找到。
新功能
- 新的
appcompat-resources
库包含 API,允许应用在旧平台版本上加载和着色可绘制对象(包括矢量可绘制对象)。这与之前作为appcompat
模块一部分的功能相同,但现在无需 Material Design 完整appcompat
回溯(包括控件、对话框、夜间模式等)的开销即可使用。 - 对 DayNight 模式支持的重大修复
- DayNight 模式的新选项
MODE_NIGHT_AUTO_BATTERY
AppCompatTextView
中的可绘制对象着色- Toolbar 溢出现在可以使用主题颜色状态列表进行样式设置
- 菜单图标现在可以使用引用主题属性的颜色
- 新的
app:menu
属性可以在 Toolbar 上设置,以在膨胀时提供菜单内容
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)
- 允许 Toolbar 的
titleTextColor
和subtitleTextColor
使用ColorStateList
,并添加了setTitleTextColor
和setSubtitleTextColor
方法的ColorStateList
重载(aosp/867489)
Bug 修复
- 修复了
fontFamily
在 API 24 之前无法工作的问题(aosp/807054) - 修复了当 activity 扩展自
AppCompatActivity
时textFontWeight
不起作用的 bug(aosp/847640) - 修复了微调器控件弹出窗口(使用对话框模式时)的标题文本不使用
fontFamily
中指定的字体的问题(aosp/789994) - 修复了阻止控件
AppCompatCheckBox
和AppCompatRadioButton
更改背景着色的 bug(aosp/825160) - 修复了 AppCompat 未覆盖
android: list styles
的 bug(aosp/862350)
版本 1.1.0-alpha01
2018 年 12 月 3 日
新功能
AppCompatTextView
现在支持app:drawableLeftCompat
、app:drawableTopCompat
、app:drawableRightCompat
、app:drawableBottomCompat
、app:drawableStartCompat
和app:drawableEndCompat
复合可绘制对象,支持回溯的可绘制对象类型,例如VectorDrawableCompat
。AppCompatCheckBox
和AppCompatRadioButton
的默认可绘制对象现在会为选中状态更改添加动画效果。
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.1
和 appcompat-1.0.2
的 Bug 修复版本。
Bug 修复
- 修复了
PrecomputedTextCompat
与 RTLAppCompatTextView
一起使用时会崩溃的 bug。b/113070424
版本 1.0.0
版本 1.0.0
2018 年 11 月 7 日
新功能
- `AnimatedStateListDrawableCompat` 提供可绘制对象状态之间的动画过渡。