Appcompat
最近更新时间 | 稳定版 | 候选版 | 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.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
compat 类添加了setLineHeight(unit, lineHeight)
(Ia9fa9) - 向
TextView
compat 类添加了setLineHeight(unit, lineHeight)
(Ib2ee1) - 向
TextView
compat 类添加了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 实现向后兼容性。 - 更新了可为 null 性,以与 Android 13(Tiramisu,API 级别 33)SDK 保持一致。
- 将
DrawableWrapper
、DrawableContainer
和StateListDrawable
compat 类加入了公共 API Surface
版本 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
提供的工具栏实现的支持。(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 变更
- 更新了可为 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-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 支持的文本 widget 提供了复合可绘制对象色调调节支持,并改进了 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
添加了缺失的可为 null 性注解 (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)
- 更新了可为 null 性,以匹配 Tiramisu DP2 (I0cbb7)
- 将复合可绘制对象色调调节向后移植到 TextView 衍生的 widget(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
子类存在的问题(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 库可默认启用可更新的表情符号支持
- 改进了 Android Studio 的布局检查器中的属性检查功能 (I02d55)
- 现在,AppCompat 资源加载向后移植支持嵌套着色资源和矢量可绘制对象。但请注意,这意味着启用向后移植后,应用无法替换针对自定义 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 进度条时出现的问题(I6ece3、b/142004509)
- 在
AppCompatEditText
中正确保留android:digits
,从而修复了 AppCompat 1.4.0-alpha03 中引入的 bug 193047889。(I4b4fc、b/193047889) - 集成了 OnReceiveContentListener SDK 并支持 lib 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 处理对 InputConnection.commitContent 的 IME 调用。(I3a2ad)
- 向
AppCompatMultiAutoCompleteTextView
中添加了对 EmojiCompat 的支持 (Ifece0) - 向
AppCompatAutoCompleteTextView
中添加了对 EmojiCompat 的支持 (Ia1f4b) - 向
AppCompatRadioButton
中添加了对 EmojiCompat 的支持 (If08af) - 向
AppCompatCheckBox
中添加了对 EmojiCompat 的支持 (I2b3bc) - 允许在
AppCompatEditText
中使用 nullKeyListener
。这会逆转在 1.4-alpha01 中添加到 AppCompatEditText 的非 null 注解,并在传递 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:即使在 xml 中指定了android:focusable="false"
,相应视图也可聚焦(在 AppCompat1.4.0-alpha01
中引入的 bug)(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 widget 中(Id409b、If7a1a、Ic262d、Ib5f4a、I4fb3c)
- 现在,AppCompat 资源加载向后移植支持嵌套着色资源和矢量可绘制对象。但请注意,这意味着启用向后移植后,应用无法替换针对自定义 Resources 对象的
getDrawable()
。(Ia6b03、b/176129022) - 改进了布局检查器支持 (I6d771)
bug 修复
- 修复了设置窗口回调后调用 setSupportActionBar 会覆盖回调的问题。(Ie43ee、b/186791590)
- 添加了针对 SDK 29 和 30 中以下问题的权宜解决方法:从可绘制对象缓存克隆的 ColorStateListDrawable 资源在收到状态更改之前不会加载默认颜色。(Iedb4b)
- 在由 AppCompat 支持的视图中处理 null 自定义选择操作模式回调时,避免出现 NPE。(I033c7、b/173435375)
依赖项更新
- 从 AppCompat
1.5.0
起:AppCompat 现在依赖于 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 中包含这些提交内容。
新功能
- 已将主题级操作模式可绘制对象替换为矢量源。 这可能会导致各个图标的视觉外观发生细微变化。(I741a6)
API 变更
- 将 AppCompatEditText 中的拖放事件(放置事件)与 OnReceiveContentListener 进行了集成。(Ib26c9、b/175343405)
- 更新了
OnReceiveContentListener
以及相关 API。如需了解详情,请参阅 androidx.core 库的变更。(Ib4616、b/173814913) - 已将 widget.RichContentReceiverCompat 移至 view.OnReceiveContentListener。(Ifdab7、b/173814913)
- 用于提供和检索初始周围文字的 API 已向后移植到
EditorInfoCompat
。这些 API 支持 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 变更
- 已将
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-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
会导致无法在旧版平台上正确显示 - 在文本视图中使用复合可绘制对象和色调调节:建议使用 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-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 崩溃的问题 (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-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)
- 在工具栏中添加了对
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 中的任何背景变化的描绘轮廓
- 修复了旋转图标 widget 滚动问题
- 修复了 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,这些 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)
- 允许工具栏
titleTextColor
和subtitleTextColor
使用ColorStateList
,并且添加了setTitleTextColor
和setSubtitleTextColor
方法的ColorStateList
重载 (aosp/867489)
bug 修复
- 修复了
fontFamily
在 API 级别低于 24 的平台上无法使用的问题 (aosp/807054) - 修复了当 activity 从
AppCompatActivity
扩展时textFontWeight
无法使用的 bug (aosp/847640) - 修复了导致旋转图标 widget 弹出式窗口上的标题文字(使用对话框模式时)不使用
fontFamily
中指定的字体的 bug (aosp/789994) - 修复了导致 widget
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
可提供可绘制对象状态之间的动画转换。