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") }
有关依赖项的更多信息,请参阅添加构建依赖项。
反馈
您的反馈有助于改进 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
兼容类添加了setLineHeight(unit, lineHeight)
(Ia9fa9) - 向
TextView
兼容类添加了setLineHeight(unit, lineHeight)
(Ib2ee1) - 向
TextView
兼容类添加了setLineHeight(unit, lineHeight)
(I15716)
错误修复
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 版本包含这些提交。
错误修复
- 修复了
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 版本包含这些提交。
错误修复
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 版本包含这些提交。
错误修复
- 修复了
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 级别 33)SDK 保持一致。
- 将
DrawableWrapper
、DrawableContainer
和StateListDrawable
兼容类添加到公共 API 表面
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 版本包含这些提交。
错误修复
AppCompatActivity
现在设置ViewTreeOnBackPressedDispatcherOwner
,以便可以从视图中检索调度程序。(I1a115,b/235416503)- 回滚了一个错误修复,该修复程序覆盖了传递给
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) - 为异步布局 inflater 引入了一个新的工厂。(Ia657b)
错误修复
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 使用
错误修复
- 在 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 版本以来的重要更改
- 此稳定版本包括对夜间模式稳定性的改进、错误修复和对 AppCompat 支持的文本小部件的复合可绘制对象着色支持,以及对 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 版本包含这些提交。
错误修复
- 修复了 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)
错误修复
- 完成 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)
- 向后移植到 TextView 派生小部件的复合可着色 drawable(Idf98c,b/165822337)
- 为了与
OnBackPressedDispatcher
兼容,AppCompatDialog
现在扩展了ComponentDialog
(Id9b91,b/217620781) SearchView.onQueryRefine()
现在具有受保护的可见性,允许覆盖(I6cce0,b/212882845)
错误修复
- AppCompat
Toolbar
现在调用MenuHostHelper
的onPrepareMenu()
API。(I9b9b5,b/227376894) AppCompatEditText
、AppCompatAutoCompleteEditText
、AppCompatMultiAutoCompleteEditText
将不再在构造函数中通过 XML 设置时重置可点击或长按可点击。(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 版本包含这些提交。
错误修复
- 修复了
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 版本包含这些提交。
错误修复
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 库默认启用可更新的表情符号支持
- 改进了 Android Studio 的布局检查器中的属性检查(I02d55)
- 在 AppCompat 资源加载回端口中添加了对嵌套着色资源和矢量 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)
错误修复
- 修复了 AppCompatProgressBar 对分层列表进度条的处理(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 子类添加 emoji2 支持(
AppCompatMultiAutoCompleteTextView
、AppCompatAutoCompleteTextView
、AppCompatRadioButton
、AppCompatCheckBox
)。
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 时恢复之前的行为。(I21482,b/189559345) - 添加
PopupMenu.setForceShowIcon
以与平台 API 保持一致(I43bb3,b/182789798)
错误修复
- 修复了 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)
错误修复
- 修复了已停止的活动未接收来自 AppCompat 工具夜间模式更改的配置更改的问题。(I8fa8f,b/188681415)
- 修复了
AppCompatEditText
中的错误,该错误会导致即使在 xml 中指定了android:focusable="false"
时视图仍可聚焦(此错误在 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 资源加载回填中添加了对嵌套着色资源和矢量可绘制对象的的支持。但是,请注意,这意味着当启用回填时,应用程序无法在自定义 Resources 对象上覆盖
getDrawable()
。(Ia6b03,b/176129022) - 改进了布局检查器支持(I6d771)
错误修复
- 修复了在设置窗口回调后调用 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 版本以来的重要更改
- 修复了在 Lollipop 之前的设备上跨
<include>
布局传播android:theme
属性的问题 - 通过将许多 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 版本包含这些提交。
错误修复
- 防止在处理 IME 内容插入时过早撤销权限
依赖项更新
- AppCompat 现在依赖于 Activity
1.2.2
、Fragment1.3.2
和 Lifecycle2.3.1
。(Ia75a1)
外部贡献
- 修复了在 Lollipop 之前的设备上跨
<include>
布局传播android:theme
属性的问题(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 变更
- 使用 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 版本包含这些提交。
错误修复
- 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 的活动的 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)
错误修复
- 来自 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 包含这些提交。
错误修复
- 修复了与夜间模式相关的一个问题,该问题在从对话框调用
AppCompatDelegate.setDefaultNightMode
时,偶尔会无法重新创建活动并应用新模式。(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版本上配置更改在活动之间泄漏,
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-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 以实现向后兼容性。
- 加载颜色状态列表:建议使用
错误修复
- 修复了
ActionBarOverlayLayout
(窗口装饰操作)未正确分派 WindowInsets 的问题。 - 修复了在较旧平台版本上着色可绘制对象和文本外观的问题。
- 修复了
androidx.appcompat:appcompat:1.1.0
在长按时使 webview 崩溃的问题(b/141351441) - 实现了对活动启动期间基本上下文操作和检索系统服务的修复。
版本 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 包含这些提交。
错误修复
版本 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 包含这些提交。
错误修复
- 修复了 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 包含这些提交。
错误修复
- 对 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
传递扩展。有关每个库中的更改信息,请参阅相关的发行说明。 - 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
。此版本中包含的提交可以在这里找到 这里。
错误修复
- DayNight 现在可以正确处理
configChanges
(aosp/981105) - 仅对已启动的活动调用
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
。此版本中包含的提交可以在这里找到 这里。
错误修复
- 确保我们在 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() 现在会自动重新创建所有已启动的活动。
错误修复
- 对 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)
错误修复
- 尽可能将内部依赖项固定到稳定版本
- 修复了
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 模块一部分的功能相同,但现在无需完整的 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的
titleTextColor
和subtitleTextColor
使用ColorStateList
,并添加了ColorStateList
的setTitleTextColor
和setSubtitleTextColor
方法的重载 (aosp/867489)
错误修复
- 修复了API 24之前的版本中
fontFamily
无效的问题 (aosp/807054) - 修复了当Activity继承自
AppCompatActivity
时textFontWeight
无效的错误 (aosp/847640) - 修复了微调器小部件弹出窗口(使用对话框模式时)的标题文本不使用
fontFamily
中指定的字体的错误 (aosp/789994) - 修复了阻止小部件
AppCompatCheckBox
和AppCompatRadioButton
更改背景色调的错误 (aosp/825160) - 修复了AppCompat未覆盖
android: list styles
的错误 (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
的错误修复版本。
错误修复
- 修复了
PrecomputedTextCompat
与RTLAppCompatTextView
一起使用时会崩溃的错误。b/113070424
1.0.0版本
1.0.0版本
2018年11月7日
新功能
AnimatedStateListDrawableCompat
提供可绘制状态之间的动画过渡。