此页面提供有关较旧 Support Library 包版本的详细信息。有关最新的 Support Library 版本,请参阅 最新的 Support Library 修订版。
修订版 26.0.0 Beta 2
(2017 年 6 月)
请注意,26.0.0-beta2 是预发布版本。其 API 表面可能会发生变化,并且不一定包含 Support Library 最新稳定版本的特性或错误修复。
重要提示:Support 库现在可通过 Google 的 Maven 存储库获得。您无需从 SDK 管理器下载 Support 存储库。有关更多信息,请参阅 Support 库设置。
新 API
- 新的
JobIntentService
类,帮助开发者以符合新的 Android O 后台执行限制 的方式安排任务。
API 差异
错误修复
- Android O SDK 版本导致 TextView 中的斜体丢失
- 连接到 MediaBrowserServiceCompat 时出现空指针异常
- TextInputLayout 必须在 onProvideAutofillStructure() 上设置提示
- 在 O 上使用 TextView 自动调整大小时出现堆栈溢出
修订版 26.0.0 Beta 1
(2017 年 5 月)
请注意,26.0.0-beta1 是预发布版本。其 API 表面可能会发生变化,并且不一定包含 Support Library 最新稳定版本的特性或错误修复。
重要提示:Support 库现在可通过 Google 的 Maven 存储库获得。您无需从 SDK 管理器下载 Support 存储库。有关更多信息,请参阅 Support 库设置。
重要更改
FragmentActivity.setSupportMediaController()
和FragmentActivity.getSupportMediaController()
已被移除。请使用新的静态MediaControllerCompat.setMediaController()
和MediaControllerCompat.getMediaController()
方法。BottomNavigationView
现在在选择已选项目时调用onNavigationItemReselected()
,而不是调用onNavigationItemSelected()
。findViewById()
方法的所有实例现在返回<T extends View> T
而不是View
。此更改具有以下影响- 这可能导致现有代码现在具有不明确的返回类型,例如,如果同时存在
someMethod(View)
和someMethod(TextView)
来获取对findViewById()
的调用的结果。 - 在使用 Java 8 源语言时,当返回类型不受约束时(例如,
assertNotNull(findViewById(...)).someViewMethod())
),需要显式转换为View
。 - 非最终
findViewById()
方法(例如,Activity.findViewById()
)的覆盖需要更新其返回类型。
- 这可能导致现有代码现在具有不明确的返回类型,例如,如果同时存在
新 API
-
FragmentManager
和Fragment
有一个isStateSaved()
方法,允许查询事务是否允许在没有状态丢失的情况下执行。这在处理onClick()
事件并在执行任何事务之前进行检查时尤其有用。 AnimatedVectorDrawableCompat
中支持路径运动。路径运动允许一个对象动画师根据一条路径同时更改两个属性;路径在动画师的 XML 中指定为android:pathData
。- 基于物理的动画:
- 新的
FlingAnimation
支持使用初始速度进行动画并平滑减速。 DynamicAnimation
的子类支持为任何对象设置自定义属性动画。SpringAnimation
和FlingAnimation
现在都可以对浮点值进行动画,而无需将View
或Object
与其关联。
- 新的
-
XML 中的字体支持:
-
ResourcesCompat.getFont
允许加载字体资源(包括字体系列 XML),这些资源可与TextView.setTypeface()
一起使用。 - 在使用 AppCompat 时,TextView 支持通过
android:fontFamily
XML 属性指定字体资源或字体系列 XML。 - 使用 XML 字体系列创建具有样式和粗细变化的字体系列。(如果您使用 Support 库类执行此操作,请使用
app:
属性以及android:
属性。)
-
- 可下载字体
- 新的
FontsContractCompat
允许您从字体提供程序请求字体,而不是将它们捆绑在您的应用中。 - 字体也可以在 XML 中请求并在布局中使用。
- 新的
-
表情符号兼容库:
-
EmojiCompat
可以处理给定的CharSequence
并添加EmojiSpans
。 -
EmojiTextView
和其他部件以显示表情符号。 -
FontRequestEmojiCompatConfig
用于从字体提供程序请求表情符号字体。
-
-
自动调整大小的 TextView:
TextViewCompat
中的新方法以及 XML 属性用于控制TextView
中的自动调整大小。
- 支持搜索的 Leanback 播放控件
-
- 新增了一个
PlaybackTransportRowPresenter
,用于使用 SeekBar 渲染播放控件。 - 新增了一个
PlaybackTransportControlGlue
,它与PlaybackTransportRowPresenter
协同工作并支持跳转。 - 新增了一个基类
PlaybackSeekDataProvider
,供应用向PlaybackTransportControlGlue
提供跳转缩略图。
- 新增了一个
- 首选项数据存储
-
PreferenceDataStore
现在允许您实现自己的首选项存储,并通过Preference
和PreferenceManager
中的新方法进行设置。
-
已知问题
- 可下载字体和 Emoji 与 Google Play 服务的集成仅适用于 Google Play 服务 v11 及更高版本,目前可以通过 Google Play 服务测试版计划 获取。
错误修复
-
MediaBrowserCompat.search()
API 不起作用(AOSP 问题 262170) -
ViewCompat.postInvalidateOnAnimation()
抛出异常(AOSP 问题 80146) -
已销毁的 Activity 中的片段会调用
onActivityCreated()
-
RecyclerView.isComputingLayout()
应该在预取期间返回 true - 当
Fade
过渡被中断并反转时,View
会从头开始动画。(从 Android 框架移植的修复程序。) -
Transition.Fade
忽略View
的初始 alpha 值(AOSP 问题 221820)
版本 26.0.0 Alpha 1
(2017 年 3 月)
请注意,26.0.0-alpha1 是预发布版本。其 API 表面可能会发生变化,并且不一定包含 Support Library 最新稳定版本中的功能或错误修复。
重要更改
注意:最小 SDK 版本已提高到 14。因此,许多仅为 API < 14 兼容性而存在的 API 已弃用。这些 API 的客户端应迁移到其框架等效项,如每个弃用 API 的参考页面中所述。
- support-percent 模块已弃用。此模块的客户端应迁移到新的 ConstraintLayout 小部件,该小部件作为 SDK 管理器中的单独工件提供。
- support-fragment 模块不再依赖于 support-media-compat 模块。
新 API
添加了许多新类、方法和常量,以提供对 O 预览版中添加的平台 API 的向后兼容支持。
IME_FLAG_NO_PERSONALIZED_LEARNING
:IME 可以侦听具有私有模式(例如浏览器)的应用的“无学习”标志。此功能可帮助 IME 了解应用是否处于私有模式,以便在应用处于该模式时禁用其学习或自适应功能。
有关 25.2.0 和 26.0.0-alpha1 之间 API 更改的完整列表,请参阅 支持库 API 差异报告。
错误修复
- 在某些情况下,简单的
AutoTransition
动画可能会因视图“跳跃”而中断。(AOSP 问题 221816)
版本 25.4.0
(2017 年 6 月)
重要提示:Support 库现在可通过 Google 的 Maven 存储库获得。您无需从 SDK 管理器下载 Support 存储库。有关更多信息,请参阅 Support 库设置。
重要更改
-
executePendingTransactions()
、commitNow()
、popBackStackImmediate()
和类似的事务调用在FragmentManager
状态更改期间不允许使用。事务的重入执行是不安全的,FragmentManager
现在在其状态更改期间强制执行此操作。 - 与本次支持库版本同时发布的还有 multidex 版本 1.0.2。此版本包含以下重要更改
- 允许对 Instrumentation APK 进行多 dex 处理。
- 弃用 MultiDexTestRunner(应改用 AndroidJUnitRunner)。
- 提供更好的保护,防止应用出现一些错误的归档文件提取管理。
- 修复了一个可能导致临时文件被遗弃的错误。
- 在并发进程中完成时提供更快的安装速度。
- 修复了 API 19 和 20 上的安装错误。
新增和修改的 API
AnimatedVectorDrawableCompat
支持路径变形和路径插值。路径变形允许形状从一个路径(指定为 android:valueFrom
)更改为另一个路径(指定为 android:valueTo
),以便提供复杂且吸引人的视觉效果。路径插值允许将 AnimatedVectorDrawableCompat
的插值器指定为路径(在插值器的 XML 中指定为 android:pathData
)。
API 差异
已修复的问题
- 连接到 MediaBrowserServiceCompat 时出现空指针异常
- MediaBrowserCompat.search() API 不起作用(AOSP 问题 262170)
- 25.3.0 中 BrowseFragment 的 onItemClicked 回调已损坏
- 25.3.1 中在 VerticalGridView 中上下滚动时出现 NullPointerException
- SimpleArrayMap.allocArrays() 中出现 ClassCastException
版本 25.3.1
(2017 年 3 月)
已修复的问题
SwitchCompat
要求最低 SDK 版本为 14 或更高版本。(AOSP 问题 251302)- 基于物理的动画
updateListener
跳过第一帧。 BottomNavigationView
标签动画已损坏。
版本 25.3.0
(2017 年 3 月)
重要更改
从 Gradle 构建时,Support Library 版本元数据将自动添加到 AndroidManifest.xml
中,这简化了在公共版本中跟踪版本的流程。例如
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
弃用
此版本中已弃用许多方法和类。这些弃用的 API 将在未来版本中删除,开发人员应迁移到其他 API。有关如何从特定 API 迁移的更多信息,请参阅其文档。
ExifInterface
- 布尔方法
getLatLong(float[])
已弃用。请改用新方法getLatLong()
,该方法不带参数并返回double[]
。 mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
已弃用。请改用新方法setErrorMessage(int, CharSequence)
,该方法传递错误代码和可选说明。EXTRA_SUGGESTION_KEYWORDS
已弃用。请改用MediaBrowserCompat
搜索功能。v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount()
已重命名为LinearLayoutManager.getInitialPrefetchItemCount()
。旧名称仍然受支持,但将在未来版本中删除。
新增和修改的 API
appcompat-v7
- 新方法
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
简化了禁用导航抽屉切换图标动画的操作。 customtabs
- 添加了对消息通道的支持。有关详细信息,请参阅
CustomTabsService.requestPostMessageChannel()
和CustomTabsService.postMessage()
参考。 dynamic-animation
- 新的基于物理的动画库,提供一组用于构建动态响应用户输入的动画的 API。
leanback-v17
- 添加了对视差背景的支持。有关详细信息,请参阅
Parallax
参考。 - 添加了
TimePicker
小部件,用于在电视界面上选择时间。 mediacompat
- 添加了搜索功能。有关详细信息,请参阅
MediaBrowserCompat.search()
和MediaBrowserServiceCompat.onSearch()
参考。 - 添加了对随机播放和重复模式的支持。有关详细信息,请参阅
MediaSessionCompat.setRepeatMode()
和setShuffleModeEnabled()
参考。
已修复的问题
StaggeredGridLayoutManager
抛出IllegalArgumentException
(AOSP 问题 230295)RecyclerView
预取未正确处理已附加但不在屏幕上的RecyclerView
LinearLayout
未被 Robolectric 识别- 当
Activity
被销毁时,其片段会错误地调用onActivityCreated()
AppCompatImageView
构造函数导致ArrayIndexOutOfBoundsException
Call.Details
Activity 过渡中的 UI 性能不佳
版本 25.2.0
(2017 年 2 月)
重要更改
已修复的问题
- 此版本修复了 mediarouter 中的一个严重问题,该问题会导致使用 A2DP 设备和媒体路由 API 时设备无响应,需要重新启动。
FragmentManager.FragmentLifecycleCallbacks
类现在是静态的。
已修复的问题
- 使用屏幕镜像显示幻灯片会导致设备断开与 Wi-Fi 的连接
- 媒体按钮未正确处理未向
setMediaButtonReceiver()
注册自己的媒体应用 -
VectorDrawable
字符串资源错误(AOSP 问题 232407) TextInputLayout
如果文本由 XML 设置,则会覆盖提示和文本(AOSP 问题 230171)MediaControllerCompat
中存在内存泄漏(AOSP 问题 231441)-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
崩溃 RecyclerView
在回收视图持有者时崩溃(AOSP 问题 225762)getAllowGeneratedReplies()
对WearableExtender
内部的操作错误地返回 false
版本 25.1.1
(2017 年 1 月)
重要提示:Support Library 版本 25.1.1 和 25.1.0 中的 android.support.v7.media.MediaRouter
类存在已知错误。如果您的应用使用 v7 MediaRouter
,则应更新到 Support Library 版本 25.2.0,该版本修复了此错误。
重要更改
-
现在可以在片段事务内部和跨事务进行优化。优化片段事务操作可以消除相互抵消的操作。例如,假设同时执行两个事务,一个事务添加片段 A,第二个事务用片段 B 替换片段 A。在这种情况下,第一个操作可能会被取消,并且只添加片段 B。这意味着片段 A 可能不会经历创建/销毁生命周期。
此优化的副作用是片段的状态更改可能超出预期顺序。例如,假设一个事务添加片段 A,第二个事务添加片段 B,然后第三个事务删除片段 A。在没有优化的情况下,片段 B 可以预期在它被创建时,片段 A 也将存在,因为片段 A 将在片段 B 添加后被删除。通过优化,片段 B 无法确定在 B 创建时片段 A 是否存在,因为片段 A 的创建和销毁可能会被优化移除。
此优化默认情况下处于禁用状态。要启用优化,请调用
FragmentTransaction.setAllowOptimization(true)
。 - 片段现在可以使用
Fragment.postponeEnterTransition()
和Fragment.startPostponedEnterTransition()
将其过渡和动画推迟到准备好为止。此 API 类似于与 Activity 过渡一起使用的Activity.postponeEnterTransition()
和Activity.startPostponedEnterTransition()
。
已修复的问题
-
MediaSessionCompatTest
使用IllegalArgumentException
失败 -
DetailsFragment.installTitleView()
在 25.1.0 中未被调用 - 片段事务在退出时保留幽灵视图(AOSP 问题 230679)
-
BottomNavigationView
需要在项目图标和文本之间留出间距(AOSP 问题 230653) - 新的
PlaybackFragment
和PlaybackSupportFragment
缺少选定的监听器 -
TextInputLayout
的焦点在模拟器中从支持库版本 25.1.0 开始没有正确更改(AOSP 问题 230461) - 无法替换
BottomNavigationView
的菜单(AOSP 问题 230343) -
RecyclerView
使用StaggeredGridLayoutManager
和全跨度项目时崩溃(AOSP 问题 230295) - 使用
setCallback(null)
时,MediaSessionCompat
中发生崩溃 -
PlaybackGlueHostOld
和PlaybackSupportGlueHostOld
在播放行更改时不会通知回调 -
PlaybackOverlayFragment
示例/test
无法开始播放 -
RecyclerViewFocusRecoveryTest
在 API 15 上失败 - "Screenshots" 行聚焦到屏幕顶部
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
在 API 15 上崩溃 -
setActions()
在onSubactionClicked()
中已损坏 -
RecyclerView
在回收某些 ViewHolder 时崩溃
修订版 25.1.0
(2016 年 12 月)
重要提示:Support Library 版本 25.1.1 和 25.1.0 中的 android.support.v7.media.MediaRouter
类存在已知错误。如果您的应用使用 v7 MediaRouter
,则应更新到 Support Library 版本 25.2.0,该版本修复了此错误。
重要更改
- 嵌套
RecyclerView
小部件(例如,垂直滚动水平滚动列表的列表)的客户端可以通过提示内部RecyclerView
小部件的布局管理器在屏幕上滚动之前准备多少项来获得显著的性能提升。调用LinearLayoutManager.setInitialPrefetchItemCount(N)
,其中 N 是每个内部项目可见的视图数。例如,如果您的内部水平列表每次至少显示三个半项目视图,则可以通过调用LinearLayoutManager.setInitialPrefetchItemCount(4)
来提高性能。这样做允许RecyclerView
尽早创建所有相关视图,而外部RecyclerView
正在滚动,这大大减少了滚动期间的卡顿量。 FragmentActivity.setSupportMediaController()
和FragmentActivity.getSupportMediaController()
已弃用。请使用新的静态MediaControllerCompat.setMediaController()
和MediaControllerCompat.getMediaController()
方法。- 当客户端通过 appcompat 着色指定小部件着色(例如,
appcompat:buttonTint
)时,客户端负责提供所有必要的状态(例如,“禁用”、“按下”等)。这与使用框架着色时指定小部件着色的方式一致。
新增和修改的 API
- 添加了 ExifInterface 支持库。此库取消捆绑了从 JPEG 和原始格式文件读取 Exif 信息以及在 JPEG 图像文件上设置 Exif 信息的支持。
Snackbar
已重构,以允许应用显示自定义内容。BaseTransientBottomBar
是公开一般滑动和动画行为的新基类。- 添加了一个新的 leanback.media 包,其中包含将媒体播放器集成到 Android TV 应用中的帮助类。
- 将
SeekBarPreference
与可自定义的布局和属性添加到 v7 首选项支持库。 - 将
ArraySet
类添加到 v4 支持库。此类对应于随 API 级别 23 引入的框架ArraySet
类。 RecyclerView
RecyclerView 项目预取改进- 嵌套的
RecyclerView
预取支持从另一个滚动RecyclerView
中的RecyclerView
预取内容,并提供 API 来控制预取的程度 - 为自定义
LayoutManager
对象添加了 API,以实现滚动和抛掷期间的预取 - 改进预取,以仅在帧之间尽可能多地执行创建/绑定工作
- 嵌套的
已修复的问题
- 密码可见性切换未通过辅助功能测试。
- Appcompat 在 L 之前的设备上不尊重
state_enabled
。 - 向
RecyclerView
添加了焦点恢复机制。这也修复了在使用 DPAD 导航(例如在 Android TV 设备上)时支持首选项片段损坏的焦点。 - Leanback:禁用标题且适配器为空时,BrowseFragment 崩溃。
- Appcompat:
AlertDialog
太宽了。 InputContentInfoCompat
调用requestPermission()
,而应调用releasePermission()
。MediaBrowserCompat
崩溃。- 当可见性设置为
GONE
时,CoordinatorLayout 会测量/布局视图。 - 无法在低于 API 级别 24 的设备上为
AnimatedVectorDrawableCompat
着色 - Leanback 库触发虚假 lint 错误
- Palette 库导致每个 API 级别上的测试失败
RecyclerView
在 Leanback 上的测试失败RecyclerView
在回收视图持有者时崩溃(AOSP 问题 225762)- 后堆栈中的片段未调用
Fragment.onDestroy()
CollapsingToolbarLayout
在折叠时未绘制遮罩CoordinatorLayout.offsetChildByInset()
抛出IllegalArgumentException
- 动画
RecyclerView
项目分离内部RecyclerView
,阻止未来的预取 - 附加的
RecyclerView
项目无法嵌套预取 - 嵌套
RecyclerView
项目的预取数据在第一次布局期间被丢弃 - 如果两个拖动事件到达相同位置,则
RecyclerView
预取失败 - 当RenderThread正在渲染时,
RecyclerView
应该进行推测性布局 - 夜间配置的颜色资源转换为Drawable后,并不总是能正确地从Resources缓存中清除
FloatingActionButton
:以编程方式设置BackgroundTintList不起作用(AOSP问题227428)TextInputLayout
:ErrorView未设置字体(AOSP问题227803)TextInputLayout
在API 23以下始终回退到浅色错误颜色(AOSP问题221992)- 当指针离开时,
FloatingActionButton
显示为按下状态
可以在AOSP问题跟踪器上找到完整的公共错误修复列表。
弃用
此版本中已弃用许多方法和类。这些弃用的 API 将在未来版本中删除,开发人员应迁移到其他 API。有关如何从特定 API 迁移的更多信息,请参阅其文档。
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
版本 25.0.1
(2016年11月)
已修复的问题
TextInputLayout
密码切换现在默认禁用,以避免不必要地覆盖开发者指定的末端可绘制对象。可以通过passwordToggleEnabled
XML属性手动启用它。BottomNavigationView
项现在为单行,以匹配Material规范。- 如果布局管理器为空,则
RecyclerView
在预取期间崩溃。 BottomNavigationView
的阴影现在已正确设置。(AOSP问题226182)- 以编程方式添加菜单项时,
BottomNavigationView
崩溃。(AOSP问题225731) - 修复了
TextInputLayout
的左+右复合可绘制对象。(AOSP问题225836) - 回收ViewHolder时,
RecyclerView
崩溃。(AOSP问题225762) - Leanback:在分屏视图中,TalkBack经常会说出“null”这个词。
RecyclerView
:Android Studio中的渲染问题。(AOSP问题225753)BottomNavigationView
在onNavigationItemSelected()
返回false后,仍然显示菜单项已选中。(AOSP问题225898)- ForwardingListener抛出
NoSuchMethodError
。(AOSP问题225647) TextInputEditText
在IME提取模式下不显示提示。(AOSP问题221880)
可以在AOSP问题跟踪器上找到完整的公共错误修复列表。
版本 25.0.0
(2016年10月)
重要更改
ContextCompat
构造函数已变为受保护的。此类不应公开实例化,但支持库可以针对较新的API级别进行扩展。ActivityCompat
构造函数已变为受保护的。此类不应公开实例化,但支持库可以针对较新的API级别进行扩展。getReferrer(Activity)
已变为静态方法。-
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
已被移除。应移除此方法的任何客户端实现。 -
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
已被移除。用法应替换为更合适的名称方法fromMediaSession()
。 -
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
已被移除。用法应替换为更合适的名称方法MediaSessionCompat.QueueItem#fromQueueItem
。 -
android.support.v7.widget.Space
已被移除。用法应替换为android.support.v4.widget.Space
。
新 API
-
android.support.design.widget.BottomNavigationView
类实现了Material Design规范中的底部导航模式。 - 新的
android.support.v13.view.inputmethod
包包含用于访问API级别13之后引入的android.view.inputmethod.InputConnection
功能的类。 -
android.v7.widget.RecyclerView.DividerItemDecoration
类为项目之间的垂直或水平分隔线提供基本实现。 - 在
android.support.v7.app.NotificationCompat
、DecoratedCustomViewStyle
和DecoratedMediaCustomViewStyle
中新增的装饰样式,镜像了平台API 24中添加的类。
已修复的问题
可以在AOSP问题跟踪器上找到完整的公共错误修复列表。
版本 24.2.1
2016年9月
已修复的问题
FloatingActionButton
不能再锚定到CoordinatorLayout
的间接子项。(AOSP问题220250)CollapsingToolbarLayout
内部的图像在fitsSystemWindows=true
时无法正确缩放。(AOSP问题220389)- 当显示和关闭
Snackbar
时,CoordinatorLayout
抛出IndexOutOfBoundsException
。(AOSP问题220762) TextInputLayout
无法解析错误文本颜色。(AOSP问题220305)BatchedCallback.onMoved()
调用BatchedCallback.onInserted()
。(AOSP问题220309)TextInputLayout
覆盖了右侧复合可绘制对象。(AOSP问题220728)
可以在AOSP问题跟踪器上找到完整的公共错误修复列表。
版本 24.2.0
2016年8月
24.2.0版本包含以下更改
注意:24.2.0版本删除了对Android 2.2(API级别8)及以下版本的支持。仅用于这些系统版本的类和方法现在被标记为已弃用,不应再使用。这些已弃用的类和方法可能会在将来的版本中移除。
v4支持库拆分
在此版本中,v4支持库已拆分为几个较小的模块
-
support-compat
- 提供新框架API的兼容包装器,例如
Context.getDrawable()
和View.performAccessibilityAction()
。 -
support-core-utils
- 提供许多实用程序类,例如
AsyncTaskLoader
和PermissionChecker
。 -
support-core-ui
- 实现各种与UI相关的组件,例如
ViewPager
、NestedScrollView
和ExploreByTouchHelper
。 -
support-media-compat
- 移植media框架的部分内容,包括
MediaBrowser
和MediaSession
。 -
support-fragment
- 移植fragment框架。此模块依赖于
support-compat
、support-core-utils
、support-core-ui
和support-media-compat
。
为了向后兼容,如果您在Gradle脚本中列出了support-v4
,您的APK将包含所有这些模块。但是,为了减小APK大小,我们建议您只列出应用程序所需的特定模块。
API更新
- 使用自定义选项卡的客户端可以控制是否应打开即时应用。(请注意,即时应用尚未普遍可用。)要启用或禁用即时应用,请调用
CustomTabsIntent.Builder.setInstantAppsEnabled()
或指定EXTRA_ENABLE_INSTANT_APPS
。默认情况下,自定义选项卡将在该功能可用时默认启用即时应用。 TextInputLayout
添加了对材质设计规范中 密码可见性切换 的支持。- 新的
android.support.transition
包将 过渡 框架移植到 API 级别 14 及更高版本。有关更多信息,请参阅android.support.transition
参考文档。 - 自定义标签支持库 添加了对在辅助工具栏中使用
RemoteViews
的支持。现有的setToolbarItem()
方法现已弃用。 AppCompatResources
添加了通过使用新的getDrawable()
方法从资源 ID 加载<vector>
(在 API 级别 9 及更高版本上)或<animated-vector>
(在 API 级别 11 及更高版本上)的功能。CoordinatorLayout
现在支持定义内嵌视图,并指定其他视图应避开内嵌视图。这允许应用程序复制类似于FloatingActionButton
如何避开Snackbar
的行为模式,但适用于任何任意视图子项。有关更多信息,请参阅LayoutParams.insetEdge
和LayoutParams.dodgeInsetEdges
参考文档。- 新的
DiffUtil
类可以计算两个集合之间的差异,并且可以分派适合由RecyclerView.Adapter
使用的更新操作列表。 -
RecyclerView.OnFlingListener
已添加以支持对弹动做出自定义行为。SnapHelper
类提供了一个专门用于捕捉子视图的实现,并且LinearSnapHelper
类扩展了此实现以提供类似于ViewPager
的居中对齐捕捉行为。 - 自定义标签库现在允许客户端通过调用
CustomTabsIntent.setAlwaysUseBrowserUI()
请求标准浏览器 UI 而不是自定义标签 UI。此行为在浏览器默认为自定义标签 UI 但用户已表示偏好标准浏览器 UI 的情况下很有用。
行为更改
- 如果您使用 appcompat 库的昼夜功能,则系统现在会在昼夜模式更改时(无论是由于时间变化还是由于调用
AppCompatDelegate.setLocalNightMode()
)自动重新创建您的活动。 Snackbar
现在如果状态栏是半透明的,则会在导航栏后面绘制。
MediaRouter 库
蓝牙设备不再被列为媒体路由。现在仅在 Android 系统级别控制音频到蓝牙设备的路由。
弃用
已弃用的类和方法可能会在将来的版本中删除。您应尽快迁移到这些 API 之外。
- 以下几个类上的方法仅适用于 API 8 及更低版本,并且不应再使用。而是使用框架实现。
android.support.v4.view.KeyEventCompat
:替换为KeyEvent
android.support.v4.view.MotionEventCompat
:使用MotionEvent
android.support.v4.view.ViewCompat
:使用View
android.support.v4.view.ViewConfigurationCompat
:使用ViewConfiguration
-
AccessibilityServiceInfoCompat.getDescription()
已弃用,取而代之的是AccessibilityServiceInfoCompat.loadDescription()
,它返回正确本地化的描述。 - 您不应直接实例化
ActivityCompat
类。非静态getReferrer(Activity)
方法将在即将发布的版本中变为静态。 CoordinatorLayout.Behavior.isDirty()
已弃用,不再由CoordinatorLayout
调用。应删除任何实现以及对此方法的任何调用。MediaSessionCompat.obtain()
已弃用,并替换为名称更合适的fromMediaSession()
方法。MediaSessionCompat.QueueItem.obtain()
已弃用,并替换为名称更合适的fromQueueItem()
方法。- 一些抽象类已被弃用,并替换为更贴近其框架等效项的接口。
AccessibilityStateChangeListenerCompat
已被AccessibilityManagerCompat.AccessibilityStateChangeListener
接口取代。OnCloseListenerCompat
已被SearchViewCompat.OnCloseListener
接口取代。OnQueryTextListenerCompat
已被SearchViewCompat.OnQueryTextListener
接口取代。
CustomTabsSession.setToolbarItem()
已弃用,并替换为基于 RemoteViews 的setSecondaryToolbarViews()
。
错误修复
以下已知问题已在 24.2.0 版中修复
- 确保在第一次测量传递之前调用
setRefreshing(true)
时显示SwipeRefreshLayout
指示器(AOSP 问题 77712) - 防止在更改页面时
TabLayout
闪烁(AOSP 问题 180454) - 在 API 级别 11 及更低版本上解组
SavedState
时避免ClassNotFoundException
(AOSP 问题 196430)
可以在 AOSP 问题跟踪器 上找到完整的公共错误修复列表。
修订版 24.1.1
2016 年 7 月
已修复的问题
- 修复了 24.1.0 版中影响支持库之间共享的资源 ID 的问题。此问题导致依赖于具有资源(例如设计和 appcompat)的支持库的应用程序遇到由资源 ID 不匹配导致的问题。
修订版 24.1.0
2016 年 7 月
- 针对 v4 支持库 的更改
-
NotificationCompat.Action.WearableExtender
具有新的getHintDisplayActionInline()
和setHintDisplayActionInline()
方法,以与 Android Wear 2.0 预览版 兼容。这些方法允许应用程序指定应在通知内联显示操作。- 调用
Fragment.setUserVisbileHint()
将不再导致片段启动,如果提示已添加到尚未提交的FragmentTransaction
中。这会影响覆盖setUserVisbileHint()
并假设在调用super.setUserVisibleHint()
后片段的特定生命周期状态的FragmentPagerAdapter
用户。有关更多信息,请参阅Fragment.setUserVisbileHint()
的文档参考页面。
已修复的问题
- TabLayout.setCustomView(null) 导致 NullPointerException(AOSP 问题 214753)
- TabLayout 错误地突出显示自定义选项卡(AOSP 问题 214316)
- AppCompatTextHelper 使用排序错误的属性数组(AOSP 问题 214366)
- 在使用自定义 ContextWrapper 时无法从 drawable 容器 XML 中引用 VectorDrawable(AOSP 问题 214055)
- ViewDragHelper.saveLastMotion() 抛出 ArrayIndexOutOfBoundsException(AOSP 问题 212945)
- 在使用 setState(STATE_EXPANDED) 时,BottomSheetBehavior 扩展到旧的内容高度(AOSP 问题 213660)
- CollapsingToolbarLayout 不处理具有顶部或底部边距的可固定子项(AOSP 问题 213001)
- Leanback 浏览标题不支持 RTL 对齐(AOSP 问题 213461)
- PagerTabStrip 由于缺少继承的注释而消失(AOSP 问题 213359)
- 在使用布尔值设置条件标志时,数据绑定抛出 NullPointerException(AOSP 问题 191841)
- CoordinatorLayout 对 setFitsSystemWindows() 没有响应(AOSP 问题 212720)
- 在设置初始状态时,BottomSheetBehavior 崩溃(AOSP 问题 203114)
- 如果页面索引是较大的值,ViewPager 会跳过页面(AOSP 问题 211734)
- BottomSheetBehavior 不适用于动态布局(AOSP 问题 205226)
修订版 24.0.0
2016 年 6 月
- 针对 v4 支持库 的更改
-
- 添加了
Fragment.commitNow()
以进行同步提交 - 添加了
NotificationCompat.MessagingStyle
用于多方对话 - 添加了
NotificationManagerCompat.areNotificationsEnabled()
和getImportance()
MediaSessionCompat
现在镜像了MediaSession
的功能,并且不再自动调用setMediaButtonReceiver()
注意: 仅
MediaBrowserServiceCompat
24.0.0 版本与 API 24 及更高版本的 Android 未来版本向前兼容。如果您使用的是早期版本,请更新到此版本以确保兼容性。 - 添加了
- 针对 v7 appcompat 库 的更改
-
- 添加了从 XML 引用主题化
ColorStateList
对象的支持
- 添加了从 XML 引用主题化
- 针对 设计支持库 的更改
-
- 改进了
AppBarLayout
使用StateListAnimator
处理高度的处理方式
- 改进了
- 针对 v17 Leanback 库 的更改
-
- 添加了
OnboardingFragment
以提供首次运行的欢迎和设置流程
- 添加了
- 针对 自定义标签 的更改
-
- 添加了为辅助工具栏提供
RemoteViews
层次结构的支持 - 添加了
CustomTabsClient.connectAndInitialize()
用于一键预热
- 添加了为辅助工具栏提供
版本 23.4.0
2016 年 5 月
- 针对 v4 支持库 的更改
- 针对 v7 appcompat 库 的更改
-
- 添加了
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
方法,以在运行 Android 4.4(API 级别 19)及以下版本的设备上重新启用在DrawableContainer
对象中使用矢量可绘制对象的功能。有关更多信息,请参阅 AppCompat v23.2 - 矢量时代。 - 修复了 API 23 中
AppCompatDelegate.setDefaultNightMode()
在 API 级别 23 中未加载正确资源的问题。(问题 206573) - 修复了可能导致
NullPointerException
的问题。(问题 207638)
- 添加了
- 针对 设计支持库 的更改
-
- 修复了在 API 级别 21 - 22 上
TextInputLayout
在setErrorEnabled(false)
后未清除错误色调的问题。(问题 202829) - 修复了在禁用动画时
FloatingActionButton
未返回的问题。(问题 206416) - 修复了
AppBarLayout
与
滚动标志一起使用时的捕捉功能问题。(问题 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- 修复了在 API 级别 21 - 22 上
- 针对矢量可绘制对象库
-
- 修复了在 API 级别 23 上
VectorDrawableCompat
在TextView
中渲染不正确的问题。(问题 206227)
- 修复了在 API 级别 23 上
版本 23.3.0
2016 年 4 月
- 针对 v4 支持库 的更改
-
- 添加了
AppLaunchChecker
以帮助跟踪用户过去如何启动您的应用。hasStartedFromLauncher()
可让您知道用户之前是否从主屏幕启动过您的应用,或者它是否仅通过其他方式(例如,查看特定网页 URL)启动。 - 修复了
MediaBrowserServiceCompat.mConnections
中的内存泄漏。(问题 205220) - 修复了
ViewPager
翻页时未考虑页面边距的问题。(问题 203816) Fragment.onRequestPermissionsResult()
现在传递给子片段。
- 添加了
- 针对 v7 appcompat 库 的更改
-
- 修复了
AppCompatSpinner
中可能导致出现多个弹出窗口的问题。(问题 205052) - 修复了无边框按钮着色的问题。(问题 202967)
- 修复了
AppCompatDialogFragment
和AlertDialog
之间的兼容性问题。(问题 204805) - 恢复了对
TintResources
的更改,这些更改导致内存和配置问题。(问题 205236)
- 修复了
- 针对 v7 mediarouter 库 的更改
-
- 修复了
MediaRouteControllerDialog
音量滑块的行为。(问题 202299)
- 修复了
- 针对 v7 首选项 库的更改
-
- 修复了如果指定了
dividerHeight
,PreferenceFragmentCompat
会崩溃的问题。(问题 204778)
- 修复了如果指定了
- 针对 v7 recyclerview 库 的更改
-
- 修复了如果可见项目范围缩小,
RecyclerView
不会调用滚动回调的问题。(问题 200987) - 修复了如果
RecyclerView
处于线性布局中,加权且包含图像,则会冻结的问题。(问题 203276) - 修复了
OrientationHelper.getStartAfterPadding()
中的崩溃。(问题 180521) - 修复了使用
android:nestedScrollingEnabled
导致的崩溃。(问题 197932)
- 修复了如果可见项目范围缩小,
- 针对 设计支持库 的更改
版本 23.2.1
2016 年 3 月
- 针对 v4 支持库 的更改
-
- 修复了 API 级别 17 到 19 上
DrawableCompat.wrap()
和LayerDrawable
中的异常。(问题 201817) - 修复了
ViewDragHelper.shouldInterceptTouchEvent()
中的ArrayIndexOutOfBoundsException
。(问题 182262) - 修复了与大小更改相关的
ViewPager
中的错误。 - 修复了在没有设置
DrawerLayout.DrawerListener
的情况下调用DrawerLayout.removeDrawerListener()
时发生的NullPointerException
。(问题 202478) - 修复了
ViewPager
在滚动时未正确设置AccessibilityEvent
参数的错误。 - 修复了使用
Drawable.wrap()
时设备旋转期间导致延迟的问题。(问题 201924)
- 修复了 API 级别 17 到 19 上
- 针对 v7 appcompat 库 的更改
-
- 恢复了对矢量资源的依赖,以便使用 appcompat 库 的开发者无需强制使用
VectorDrawable
及其关联的构建标志。 - 修复了夜间模式与 API 级别 23 的兼容性问题。(问题 201910)
- 修复了
SwitchCompat
与 API 级别 7 的兼容性问题。(问题 201942) - 修复了在 Resources 对象中传播配置值的问题 问题 201928
- 修复了
android.support.v7.app.NotificationCompat.MediaStyle
取消按钮在 API 级别 21 及以下版本上变为不可见的兼容性问题。(问题 202156) - 修复了
AppCompatSpinner
在 API 级别 21 及以下版本上的兼容性崩溃。(问题 202246) - 修复了
app:textAllCaps = "false"
样式不起作用的问题。(问题 202117) - 修复了恢复
SearchView
时的崩溃。(问题 201836) - 修复了使用 AppCompat 着色可绘制资源时发生的内存泄漏。(问题 202379)
- 修复了 API 级别 11 及以下版本中
KeyEvent
的问题。(问题 202939)
- 恢复了对矢量资源的依赖,以便使用 appcompat 库 的开发者无需强制使用
- 针对 v7 cardview 库 的更改
- 针对 v7 recyclerview 库 的更改
-
- 修复了与各种 measure-spec 方法相关的错误。(问题 201856)
- 减少了
RecyclerView
在计算布局或滚动时不允许适配器更改的锁定时间段。(问题 202046) - 修复了在超出视图范围的项目上调用
notifyItemChanged()
时发生的崩溃。(问题 202136) - 修复了当
RecyclerView.LayoutManager
在同一测量过程中添加和删除视图时发生的崩溃。(问题 193958)
- 针对 v7 mediarouter 库 的更改
-
- 修复了在 API 级别 17 上调用
MediaRouter.getInstance()
时发生的崩溃。(问题 180654)
- 修复了在 API 级别 17 上调用
- 针对 v17 Leanback 库 的更改
-
- 修复了
GridLayout.onAddFocusables()
中导致选择错误项的问题。 - 修复了
GuidedStepFragment
操作在操作折叠后消失的问题。
- 修复了
- 针对 设计支持库 的更改
-
- 修复了由选项卡池化导致的
TabLayout
崩溃。(问题 201827) - 修复了
NavigationView
中导致选择错误颜色的错误。(问题 201951) - 修复了一个错误,该错误导致
setBackgroundTintList()
无法再更改背景颜色。(问题 201873) - 修复了一个问题,该问题导致
AppBarLayout
与android:fitsSystemWindows = “true”
一起使用时没有完全滚动到视图之外。(问题 201822) - 修复了一个问题,该问题导致
BottomSheetDialog
未正确显示较短的内容视图。(问题 201793) - 修复了一个问题,该问题导致
BottomSheetDialogFragment
在内部内容更改时随机移动。(问题 202125) - 修复了 TextInputLayout 计数器中的崩溃 链接
- 修复了当
TextInputLayout.getCounterMaxLength()
恢复保存的状态时发生的崩溃。(问题 202375) - 修复了在使用不是
CoordinatorLayout
的视图的保存状态恢复CoordinatorLayout
时发生的ClassCastException
。
- 修复了由选项卡池化导致的
- 针对 VectorDrawableCompat 的更改
-
- 修复了一个错误,该错误导致读取了
android:tintMode
的错误变量。(问题 201907)
- 修复了一个错误,该错误导致读取了
版本 23.2.0
2016 年 2 月
- 针对 v4 Support 库 的更改
-
- 添加了
MediaBrowserCompat
以支持MediaBrowser
,以及MediaBrowserServiceCompat
以支持MediaBrowserService
。这在将媒体应用的后台服务与 UI 组件连接以及与 Android Auto 和 Android Wear 集成时非常有用,而无需 API 级别 21 或更高版本。 - 系统现在会为嵌套的
FragmentActivity
调用onActivityResult()
。
- 添加了
- 针对 v7 AppCompat 库 的更改
-
- 将夜间模式功能添加到 API 级别 14 及更高版本。根据一天中的时间或特定于应用程序的设置,在 Material 浅色主题和 Material 深色主题 之间切换。
-
- 日间和夜间主题可以在此处找到:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
AppCompatDelegate.setDefaultNightMode()
:通过传递以下常量之一来设置应用程序的默认模式-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
:覆盖本地应用程序组件的夜间模式设置。AppCompatDelegate.getDefaultNightMode()
:返回默认的夜间模式。
- 日间和夜间主题可以在此处找到:
- 针对 v7 mediarouter 库 的更改
-
MediaRouteControllerDialog
现在可以正确应用自定义应用程序主题颜色。
- 针对 Design Support 库 的更改
-
- 添加了对 底部工作表 的支持。交互插件
BottomSheetBehavior
允许CoordinatorLayout
的子视图充当底部工作表。基类BottomSheetCallback
提供回调以监视底部工作表事件。
- 添加了对 底部工作表 的支持。交互插件
- 针对 CustomTabs Support 库 的更改
-
- Chrome 自定义选项卡 现在允许应用程序除了现有的顶部操作按钮外,还包括带有操作按钮的底部栏。
CustomTabsIntent.Builder.addToolBarItem()
:向自定义选项卡添加操作按钮。您可以使用此方法添加多个按钮。CustomTabsSession.setToolBarItem()
:更新工具栏项目的视觉效果。仅当提供有效的 ID 并且浏览器会话处于前台时,此方法才会成功。
- 添加了 VectorDrawable 支持库
-
- 添加的类
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- 为在 API 级别 7 或更高版本上运行的应用程序添加了对
VectorDrawable
资产的支持。在 API 级别 11 或更高版本上也支持AnimatedVectorDrawable
资产。矢量资产可能比图像资产小得多,并且应该通过减少支持多个设备屏幕所需的资产数量来帮助减小应用程序的大小。 - 此库现在是 v7 AppCompat 库 的依赖项,允许开发人员和 AppCompat 轻松使用矢量可绘制对象。要在
ImageButton
或ImageView
中使用VectorDrawableCompat
,请使用app:srcCompat
XML 属性或setImageResource()
方法。 - 要继续在 API 级别 20 或更低版本上引用属性 ID,请将以下
appt
标志添加到您的build,gradle
文件中 -
- 如果您使用的是 Android Plugin for Gradle 1.5.0 或更低版本,请将以下内容添加到您的
build.gradle
文件中 -
android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }
- 如果您使用的是 Android Plugin for Gradle 2.0.0 或更高版本,请将以下内容添加到您的
build.gradle
文件中 -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- 如果您使用的是 Android Plugin for Gradle 1.5.0 或更低版本,请将以下内容添加到您的
- 针对 v17 Leanback 库 的更改
-
- 为
GuidedStepFragment
添加了新功能,它是一个引导用户完成决策或一系列决策的组件 -
- 为
GuidedAction
添加了按钮操作 GuidedStepFragment.setButtonActions()
:设置用户可以从“操作”视图中选择的GuidedAction
按钮列表。- 描述字段现在可编辑
-
GuidedAction.Builder.descriptionEditable()
:当传递true
时,将操作的描述设置为可编辑。GuidedAction.getEditDescription()
:将可编辑描述作为CharSequence
返回。
- 添加了子操作的下拉列表
-
GuidedAction.setSubActions()
:将GuidedAction
列表设置为子操作的下拉菜单。
- 为
- 添加了用于
DatePicker
功能的GuidedDatePickerAction
小部件 -
- 日期使用年、月和日列进行选择,并具有可自定义的范围。
GuidedDatePickerAction.Builder
:GuidedDatePickerAction
对象的构建器类。GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
:通过传递适当的三字符String
(例如“YMD”
或“MDY”
)来设置所需的日期格式。或者,使用datePickerFormat
XML 属性。
- 为
- 针对 v7 RecyclerView 库 的更改
-
RecyclerView
现在有一个可选功能,称为 *AutoMeasure*,它允许RecyclerView.LayoutManager
轻松地包裹内容或处理RecyclerView
父级提供的各种测量规格。它支持RecyclerView
的所有现有动画功能。-
- 如果您有自定义的
RecyclerView.LayoutManager
,请调用setAutoMeasureEnabled(true)
以开始使用新的 AutoMeasure API。所有内置的RecyclerView.LayoutManager
对象默认启用自动测量。 RecyclerView.LayoutManager
不再忽略某些RecyclerView.LayoutParams
设置,例如滚动方向上的MATCH_PARENT
。注意: 这些解除的限制可能会导致布局出现意外行为。请确保您指定了正确的布局参数。
- 如果您有自定义的
- 当使用有效负载信息更新
RecyclerView.ViewHolder
时,DefaultItemAnimator
现在会禁用更改动画。 - 您现在可以修改
ItemTouchHelper
的逃逸速度以控制滑动灵敏度。要使其更容易或更难滑动,请覆盖getSwipeEscapeVelocity(float defaultValue)
并修改defaultValue
。
修订版 23.1.1
2015 年 11 月
- 针对 v7 recyclerview 库 的更改:
-
- 修复了在执行
ItemTouchHelper
实用程序类提供的滑动以关闭操作,然后添加项目时发生的崩溃问题。(问题 190500)
- 修复了在执行
- 针对 v7 preference 库 的更改:
-
- 修复了 ProGuard 使用方面的问题。(问题 183261)
- 针对 v17 Leanback 支持库 的更改:
-
- 修复了此库中的许多内部问题。
- 针对 设计支持库 的更改:
-
- 向
NavigationView
类添加了getHeaderView
方法。 - 修复了在运行 Android 4.0(API 级别 15)及更低版本的设备上,
FloatingActionButton
对象的透明背景问题。(问题 183315)
- 向
修订版 23.1.0
2015 年 10 月
- 针对 v4 支持库 的更改:
-
- 向
NestedScrollView
控件添加了OnScrollChangedListener
接口支持。它允许您在滚动 X 或 Y 位置发生变化时接收回调。 - 添加了
MediaButtonReceiver
类,以将接收到的播放控件转发到管理MediaSessionCompat
类的服务。MediaSessionCompat
类有一个构造函数,可以在清单中自动查找媒体按钮接收器。媒体按钮接收器是 处理来自硬件或蓝牙控件的播放控件 的关键部分。
- 向
- 针对 v7 appcompat 库 的更改:
-
- 添加了材质设计
Seekbar
和ImageButton
控件。 - 更新了
ImageView
控件以支持色调功能。 - 更新了
SwitchCompat
控件的外观。
- 添加了材质设计
- 针对 v7 mediarouter 库 的更改:
-
- 向
MediaRouteChooserDialog
类添加了以下功能 - 在发现媒体路由提供程序时显示加载页面。
- 包含设备类型图标,以便于识别设备。
- 根据当前应用中使用的频率对路由进行排序。
- 支持横向模式。
- 向
MediaRouteControllerDialog
类添加了以下功能 - 识别屏幕投射并提供适当的描述。
- 支持各种专辑封面大小和纵横比,并异步加载封面。
- 根据应用的主要颜色自动选择内容颜色。
- 根据设备上可用的屏幕空间调整对话框布局。
- 支持横向模式。
- 向
- 针对 v7 palette 库 的更改:
-
- 添加了
setRegion()
方法,以支持从Bitmap
对象的特定区域提取颜色。
- 添加了
- 针对 v7 recyclerview 库 的更改:
-
- 向
ItemAnimator
类添加了改进的动画 API,以实现更好的自定义功能 - 更改动画不再强制使用
ViewHolder
对象的两个副本,这使得项目内容动画成为可能。此外,ItemAnimator
对象决定它是否要重用相同的ViewHolder
对象或创建一个新的对象。 - 新的信息记录 API 使
ItemAnimator
类能够在布局生命周期的正确点灵活地收集数据。此信息稍后将传递到动画回调中。
- 为这种向后不兼容的 API 更改提供了简单的过渡方案
- 如果您以前扩展了
ItemAnimator
类,您可以将基类更改为SimpleItemAnimator
,并且您的代码应该像以前一样工作。SimpleItemAnimator
类通过包装新 API 提供旧 API。 - 某些方法已从
ItemAnimator
类中移除。以下代码将不再编译
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
您可以用它替换
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- 向
- 针对 v7、v14 和 v17 首选项支持库的更改
-
- 删除了用于控制
EditText
对话框的 API。
- 删除了用于控制
- 针对 v17 Leanback 支持库 的更改:
-
- 添加了支持库的
GuidedStepFragment
类版本(扩展android.support.v4.app.Fragment
),并改进了动画和过渡。 - 更新了
GuidedStepFragment
类,以便可以将其放置在现有内容的顶部。 - 向
SearchFragment
类添加了注释不同类型的搜索完成的功能。 - 向
VerticalGridFragment
类添加了交错滑动过渡支持。
- 添加了支持库的
- 针对 设计支持库 的更改:
-
- 向
TextInputLayout
控件添加了 字符计数 支持。 - 通过添加
SCROLL_FLAG_SNAP
常量,向AppBarLayout
类添加了边缘捕捉支持。滚动结束时,如果视图仅部分可见,则会捕捉视图并将其滚动到其最近的边缘。 - 通过使用
app:actionLayout
属性或MenuItemCompat.setActionView()
方法,向NavigationView
类添加了对自定义视图的支持。
- 向
- 针对 自定义标签支持库 的更改:
-
- 向
CustomTabsIntent
类添加了enableUrlBarHiding()
方法。它允许客户端自定义是否应在向下滚动时自动隐藏 URL 栏。 - 向
CustomTabsSession
类添加了setActionButton()
方法。它允许客户端更改已启动的自定义标签中自定义操作按钮的图标。 - 添加了
TAB_SHOWN
和TAB_HIDDEN
常量作为CustomTabsCallback
类的onNavigationEvent
方法的新事件。
- 向
修订版 23.0.1
2015 年 9 月
- 针对 v7 和 v14 首选项支持库的更改
-
- 添加了材质设计布局和样式文件。(问题 183376)
- 针对 v7 appcompat 库 的更改:
- 针对 设计支持库 的更改:
-
- 修复了
AppBarLayout
类,使其现在在旋转后能够正确绘制。(问题 183109) - 修复了
TabLayout
类,使其现在在用户在滑动后点击时能够正确运行。(问题 183123)
- 修复了
- 针对 自定义标签支持库 的更改:
-
- 将
minSdkVersion
值从 16 降至 15 以支持版本。 - 添加了一种从意图生成
CustomTabsSessionToken
的方法。
- 将
修订版 23
2015 年 8 月
有关支持库更改的完整列表,请参阅 支持库 API 差异报告。
修订版 22.2.1
2015 年 7 月
- 针对 设计支持库 的更改:
-
- 向
FloatingActionButton
类添加了hide()
和show()
方法,用于以编程方式触发动画。 - 向
Snackbar
类添加了LENGTH_INDEFINITE
常量,用于显示 Snackbar 直到其被解除或显示另一个 Snackbar。此外,还添加了setActionTextColor(int)
和setActionTextColor(ColorStateList)
方法。 - 向
TabLayout
类添加了getSelectedTabPosition()
方法,用于检索当前选定的选项卡。 - 为
android.support.v7.app.NotificationCompat.MediaStyle
类提供了完全流畅的 API,用于方法链。 - 向
RecyclerView
添加了便利方法,用于批量插入项目。
- 向
有关支持库更改的完整列表,请参阅 支持库 API 差异报告。
版本 22.2.0
2015 年 5 月
- 添加了 设计支持库:
-
- 添加了
TextInputLayout
,用于将EditText
的提示和错误文本显示为浮动标签。 - 添加了
FloatingActionButton
,用于在界面上实现主要操作作为浮动操作按钮,支持默认或迷你尺寸。 - 添加了
Snackbar
,用于提供轻量级反馈,并在动画 Snackbar 中提供可选操作。 - 添加了
TabLayout
,用于实现固定和可滚动的 选项卡,以及与ViewPager
的轻松集成。 - 添加了
NavigationView
,用于实现 导航抽屉 内容,包括通过 菜单资源 填充菜单项的功能。 - 添加了
CoordinatorLayout
,这是一种通用布局,用于在同级视图之间构建依赖关系,并允许通过CoordinatorLayout.Behavior
在组件之间轻松进行滚动反应。许多设计库组件依赖于作为CoordinatorLayout
的子项。 - 添加了
AppBarLayout
,这是一个用于Toolbar
和其他视图(如TabLayout
)的容器,用于通过滚动屏幕外、在向下滚动时变为可见或在滚动屏幕外/屏幕上之前折叠/展开来对滚动事件做出反应。 - 添加了
CollapsingToolbarLayout
,用于控制Toolbar
如何折叠。工具栏可以通过以下方式折叠:在工具栏折叠时将组件固定到屏幕顶部,引入组件(如ImageView
)的视差滚动,或在视图部分折叠时添加内容遮罩颜色。
- 添加了
- v4 支持库的更改:
-
- 向
AccessibilityEventCompat
类添加了getContentChangeTypes()
和setContentChangeTypes()
方法以及相关的更改类型字段,用于辅助功能事件处理。 - 向
PlaybackStateCompat
类添加了getActiveQueueItemId()
、getCustomActions()
和getExtras()
方法以及相关的状态字段,用于从队列中获取自定义操作。 - 向
PlaybackStateCompat.Builder
类添加了addCustomAction()
、setActiveQueueItemId()
和setExtras()
方法,用于向播放状态添加自定义操作。 - 向
PlaybackStateCompat.CustomAction
类添加了fromCustomAction()
和getCustomAction()
方法,用于从队列中获取自定义操作。 - 向
ViewCompat
类添加了isAttachedToWindow()
、offsetLeftAndRight()
和offsetTopAndBottom()
方法,用于处理视图。 - 向
ViewPager
类添加了addOnPageChangeListener()
、clearOnPageChangeListeners()
和removeOnPageChangeListener()
方法,用于响应页面更改。已弃用
ViewPager.setOnPageChangeListener()
方法。 - 向
ViewParentCompat
类添加了notifySubtreeAccessibilityStateChanged()
方法,用于通知视图父级其后代之一的可访问性状态已更改。 - 向
ViewPropertyAnimatorCompat
类添加了translationZ()
、translationZBy()
、z()
和zBy()
方法,用于添加动画。
- 向
- v7 appcompat 库的更改
-
- 向
AppCompatActivity
、AppCompatCallback
和AppCompatDialog
类添加了onWindowStartingSupportActionMode()
方法,用于处理从当前窗口启动的操作模式。 - 向
AppCompatDelegate
类添加了isHandleNativeActionModesEnabled()
和setHandleNativeActionModesEnabled()
方法,用于处理本机操作模式。
- 向
有关支持库更改的完整列表,请参阅 支持库 API 差异报告。
版本 22.1.0
2015 年 4 月
- 注释库的更改:
-
- 添加了注释库,以提供对增强代码检查的支持。注释作为元数据标签添加,您可以将其附加到变量、参数和返回值,以检查方法返回值、传递的参数以及局部变量和字段。
- v4 支持库的更改:
-
- 添加了
ColorUtils
类,以提供一组与颜色相关的实用程序方法。 - 向
DrawableCompat
类添加了unwrap()
和wrap()
方法,允许您在所有 API 级别 4 或更高版本的设备上使用setTint()
、setTintList()
和setTintMode()
。 - 添加了
TraceCompat
类,用于将跟踪事件写入系统跟踪缓冲区,然后可以使用 Systrace 工具收集和可视化这些事件。 - 添加了
CircularIntArray
类,用于创建循环整数数组数据结构。 - 向
CircularArray
类添加了clear()
、removeFromStart()
和removeFromEnd()
方法。此外,还将此类中的现有方法更改为非最终方法。 - 添加了
InputDeviceCompat
作为辅助类,用于访问InputDeviceCompat
类中的数据。 - 添加了
LayoutInflaterCompat
类作为辅助类,用于访问LayoutInflaterCompat
类中的数据,并添加了LayoutInflaterFactory
接口。 - 添加了类、方法和接口以支持嵌套滚动。
- 添加了
NestedScrollingChildHelper
和NestedScrollingParentHelper
辅助类,用于实现嵌套滚动父级和子级视图。 - 添加了
NestedScrollingChild
接口,供View
子类实现。 - 添加了
NestedScrollingParent
和ScrollingView
接口以支持滚动操作并提供与滚动相关的 API。 - 向
ViewGroupCompat
类添加了getNestedScrollAxes()
方法。 - 向
ViewParentCompat
类添加了方法以支持嵌套滚动。 - 添加了
NestedScrollView
类以在 Android 的新旧版本上都支持嵌套滚动父级和子级。
- 添加了
- 在
MotionEventCompat
类中添加了用于获取轴值和事件源的方法和常量。 - 更新了
AccessibilityNodeInfoCompat
类,添加了用于错误、内容失效和标签的方法。 - 为动画添加了以下插值类:
FastOutLinearInInterpolator
、FastOutSlowInInterpolator
、LinearOutSlowInInterpolator
、LinearOutSlowInInterpolator
和PathInterpolatorCompat
。 - 添加了
Space
类,用于在通用布局中的组件之间创建间隙。此类在 gridlayout 库中已弃用。 - 添加了
TextViewCompat
类,用于访问TextView
中的功能。 - 在
EdgeEffectCompat
类的onPull()
方法中添加了位移参数。
- 添加了
- v7 appcompat 库的更改
-
- 为 appcompat 小部件添加了着色支持,包括
AppCompatAutoCompleteTextView
、AppCompatButton
、AppCompatCheckBox
、AppCompatCheckedTextView
、AppCompatEditText
、AppCompatMultiAutoCompleteTextView
、AppCompatRadioButton
、AppCompatRatingBar
、AppCompatSpinner
和AppCompatTextView
。 - 更新了
AppCompatActivity
,将其作为使用支持库操作栏功能的 Activity 的基类。此类替换了已弃用的ActionBarActivity
。 - 添加了
AppCompatCallback
接口,以便 AppCompat 可以执行回调。 - 添加了
AppCompatDelegate
抽象类,作为您可以用来将 AppCompat 的支持扩展到任何 Activity 的委托。 - 添加了
AppCompatDialog
类,作为 AppCompat 主题对话框的基类。 - 添加了微调器样式
AlertDialog
和AlertDialog.Builder
类,以提供一个 AppCompat 主题的AlertDialog
。 - 添加了
Palette.Builder
类,用于生成Palette
实例。- 在
Palette
类中添加了from(Bitmap)
方法,以使用返回的Palette.Builder
实例开始生成 Palette。 - 已弃用
Palette.generate()
和Palette.generateAsync()
方法。
- 在
- 在
GridLayout.Spec
类中添加了getAbsoluteAlignment()
方法。 - 已弃用使用
app:theme
为Toolbar
设置样式。您现在可以在所有 API 级别 7 及更高版本的设备上使用android:theme
为工具栏设置样式,并且可以在所有 API 级别 11 及更高版本的设备上使用android:theme
支持所有小部件。
- 为 appcompat 小部件添加了着色支持,包括
- 针对 v17 leanback 库 的更改
-
- 添加了
GuidedStepFragment
、GuidanceStylist
和GuidedActionsStylist
以支持创建多步骤决策流程。
- 添加了
- 针对 v7 recyclerview 库 的更改
-
- 添加了
SortedList
类,以按列表顺序显示项目并提供列表更改的通知。 - 添加了
SortedListAdapterCallback
类,该类可以将排序列表绑定到RecyclerView.Adapter
类。
- 添加了
- 针对 v8 renderscript 库 的更改
-
- 添加了
ScriptIntrinsicHistogram
类,用作直方图滤镜。 - 添加了
ScriptIntrinsicResize
类,用于执行 2D 分配的调整大小操作。
- 添加了
- v4 支持库的更改:
-
- 更新了
getDrawable()
方法,以返回指定特定资源 ID、屏幕密度和主题的 Drawable 对象。 - 添加了
setImportantForAccessibility()
方法,以便您可以指示视图是否应触发辅助功能事件。 - 添加了
getStatusBarBackgroundDrawable()
方法,以便您可以获取状态栏背景 Drawable。 - 添加了
NotificationCompat.CarExtender.UnreadConversation
类的方法,以便 Android Auto 消息应用可以检索其他通知数据。 - 添加了
getProgressCircleDiameter()
方法,以返回圆形布局的直径。 - 将默认的
DrawerLayout
状态栏颜色更改为colorPrimaryDark
。
- 更新了
- v7 appcompat 库的更改
- 针对 v17 leanback 库 的更改
-
- 添加了
getRecycledPoolSize()
和setRecycledPoolSize()
方法,以允许自定义回收池大小。 - 将
WRAP_CONTENT
属性添加到布局宽度设置中,以支持标题图标的换行内容。 - 在 XML 中定义了
R.transition
以改进过渡更新。 - 启用了从右到左布局的支持。
- 在
PlaybackOverlayFragment
类中添加了播放和暂停媒体键事件的支持。 - 在
BrowseFragment
类和DetailsFragment
类中添加了进入和返回过渡。 - 添加了
replace()
方法以替换对象适配器数组中的项目。
- 添加了
- 针对 v7 mediarouter 库 的更改
-
- 更新了 Google Cast 图标,以使用 Material Design 样式。
- 更新了
MediaRouter
对话框中使用的所有图标,以使用 Material Design 样式。
- 针对 v7 recyclerview 库 的更改
-
- 在
RecyclerView
类中添加了getLayoutPosition()
和getAdapterPosition()
方法。 - 已弃用
getChildPosition()
和findViewHolderForPosition()
方法(位于RecyclerView
类中)。 - 已弃用
getPosition()
方法(位于RecyclerView.ViewHolder
类中)。 - 已弃用
getViewPosition()
方法(位于RecyclerView.LayoutParams
类中)。
- 在
- v4 支持库的更改:
- v4 支持库的更改:
-
- 添加了
NotificationCompat.CarExtender
类以支持 Android Auto 对通知的扩展。
- 添加了
- v7 appcompat 库的更改
-
- 添加了
PopupMenu
构造函数以支持新的弹出菜单。 - 在
Toolbar
类中添加了对折叠图标说明的支持。 - 更新了
SearchView
小部件以支持显示commitIcon
。 - 从
Toolbar
类中删除了buttonGravity
属性。
- 添加了
- 针对 v7 cardview 库 的更改
-
- 添加了
setCardBackgroundColor(ColorStateList)
API 以支持更改CardView
的背景颜色。 - 更改了
CardView
以更准确地将其不透明度值报告为TRANSLUCENT
。
- 添加了
- 针对 v7 recyclerview 库 的更改
-
- 在
RecyclerView
类中添加了TOUCH_SLOP_DEFAULT
和TOUCH_SLOP_PAGING
常量,以支持分页的触摸容差配置。
- 在
- 针对 v17 leanback 库 的更改
-
- 添加了生成 v4 代码片段的支持。
- 更改了
CardView
上的辅助文本颜色。
- v4 支持库的更改:
-
- 为运行 Android 5.0(API 级别 21)的设备添加了对
Fragment
过渡的支持。请注意,过渡对运行 Android 4.4 及更低版本的设备无效。 - 添加了
DocumentFile
以简化在处理文档树时从File
的过渡。但是,与 Android 4.4(API 级别 19)中添加的平台DocumentsContract
API 相比,此类需要更多的处理开销。因此,在 Android 4.4 及更高版本上运行时,您应该切换到使用DocumentsContract
。
- 为运行 Android 5.0(API 级别 21)的设备添加了对
- v7 appcompat 库的更改
-
- 添加了对 Material Design 用户界面的支持。
- 添加了
Toolbar
,它将ActionBar
的功能泛化,以便在应用布局中使用。 - 更新了
ActionBarDrawerToggle
,其中包含菜单到箭头的动画。 - 更新了常见的用户界面小部件,以便在预 Android 5.0 设备上运行时,可以通过主题属性进行着色。
- 添加了
SwitchCompat
,这是 Android 4.0(API 级别 14)中添加的Switch
小部件的移植。
- 新的 v7 cardview 库
-
- 添加了
CardView
小部件,它提供了一个与 Material Design 兼容的实现,用于显示数据项。
- 添加了
- 新的 v7 recyclerview 库
-
- 添加了
RecyclerView
小部件,它提供了一个灵活的列表视图,用于提供对大型数据集的有限窗口。
- 添加了
- 新的 v7 palette 库
-
- 添加了
Palette
类,它允许您从图像中提取突出的颜色。
- 添加了
- 新的 v17 leanback 库
-
- 添加了对构建电视用户界面的支持,包括
BrowseFragment
、DetailsFragment
和PlaybackOverlayFragment
。有关使用这些用户界面小部件的更多信息,请参阅 构建电视播放应用。
- 添加了对构建电视用户界面的支持,包括
- v4 support library 的更改
-
- 在
NotificationCompat.WearableExtender
中添加了对 Android Wear 的扩展通知支持,它允许您在通知中指定特定于可穿戴设备的功能。 - 添加了
NotificationCompat.Action.WearableExtender
,它允许在可穿戴设备通知中添加操作。 - 添加了
NotificationManagerCompat
,它允许您发出正确支持可穿戴设备功能的通知。 - 添加了
RemoteInput
,它允许手持设备接收出现在可穿戴设备上的通知中的语音输入。 - 改进了
SwipeRefreshLayout
中触觉反馈的处理。
- 在
- v4 support library 的更改
-
- 添加了
SwipeRefreshLayout
类,它使用户能够通过垂直滑动手势刷新视图的内容。 - 修复了导航抽屉的可访问性问题。
- 添加了
- v7 appcompat library 的更改
-
- 修复了操作栏的背景问题。
- v4 support library 的更改
-
- 通过添加打印的异步处理改进了
PrintHelper
。 - 修复了
DrawerLayout
类对addChildrenForAccessibility()
方法的近似值。 - 修复了
ActionBarDrawerToggle
中的可绘制滑动镜像。 - 修复了从集合迭代器中删除项目时出现的越界问题。
- 通过添加打印的异步处理改进了
- v7 mediarouter library 的更改
-
- 通过在
MediaRouteProvider.ProviderMetadata
中使用完整组件名称改进了路由识别。 - 更新了
MediaRouteChooserDialog
以隐藏禁用的路由。
- 通过在
- 针对 v8 renderscript 库 的更改
-
- 为 RenderScript 转换层添加了错误传播。
- v4 support library 的更改
-
- 使用
getObbDirs()
、getExternalFilesDirs()
、getExternalCacheDirs()
和getStorageState()
添加了对外部存储 API 的支持。这些辅助方法始终在运行 Android 4.3(API 级别 18)及更低版本的设备上返回单个文件对象。在 Android 4.4(API 级别 19)及更高版本上运行时,这些方法可能会返回多个文件对象。 - 添加了
PrintHelper
类,该类与打印 API 配合使用,可以最少使用代码来打印图像。 - 添加了弹出菜单的拖动以打开用户界面支持。有关更多信息,请参阅
PopupMenuCompat
和ListPopupWindowCompat
。 - 通过在
AccessibilityNodeProviderCompat
中添加findFocus()
方法以及在AccessibilityNodeInfoCompat
中添加getLiveRegion()
方法改进了可访问性支持。 - 添加了辅助类
ScaleGestureDetectorCompat
,用于访问新的缩放手势方法。 - 修复了在从右到左的语言显示中
ActionBarDrawerToggle
出现的问题。 - 修改了
AutoScrollHelper
选项以使用触摸事件或允许它们传递到其他视图。
- 使用
- v7 mediarouter library 的更改
-
- 添加了对媒体播放队列、设置 HTTP 标头值和媒体播放持续时间的支持。
- 添加了显式启动、获取和结束会话操作,以显式管理媒体路由器上的媒体播放会话。
- v4 support library 的更改
-
- 用户界面
- 添加了
BidiFormatter
用于处理结合从右到左和从左到右格式化文本的文本字符串。 - 修改了
ViewPager
以更好地处理分页器在初始布局处理中具有零测量宽度的情况。 - 修改了
DrawerLayout
和SlidingPaneLayout
以便在项目代码正在编辑时不抛出测量异常。
- 添加了
- 可访问性
- 添加了
ExploreByTouchHelper
以简化自定义视图的可访问性实现。 - 修复了
ViewPager
错误地填充TYPE_VIEW_SCROLLED
可访问性事件的问题。 - 修复了
ViewPager
在填充可访问性事件时出现的空指针异常。 - 通过将
CharSequence
输入更改为String
对象简化了AccessibilityNodeInfoCompat
。 - 弃用了使用
Object
作为输入的AccessibilityRecordCompat
构造函数。
- 添加了
- 媒体
- 添加了
TransportMediator
辅助类来管理媒体传输控制,例如播放、暂停、跳过和其他媒体操作。 - 添加了
DisplayManagerCompat
用于将显示输出管理到一个或多个设备显示器。
- 添加了
- 其他更改
- 添加了
WakefulBroadcastReceiver
辅助类,用于实现检测设备唤醒事件并将工作传递给Service
的常见模式,同时确保设备在交接完成之前不会返回睡眠状态。 - 在
AsyncTaskLoader
中添加了两个新 API,commitContentChanged()
和rollbackContentChanged()
,以帮助处理随后取消的数据更改的后台更新。
- 添加了
- 用户界面
- 新的 v7 appcompat 库
- 新的 v7 mediarouter 库
-
添加了一个新的 mediarouter 库,该库提供对 Google Cast 开发者预览版 的支持。v7 mediarouter 库 API 提供了一种控制媒体通道和流从当前设备到外部屏幕、扬声器和其他目标设备的路由的方法,并向后兼容到 Android 2.1(API 级别 7)。有关更多信息,请参阅 V7 mediarouter 库。
Support Library r18 中引入的 v7 mediarouter 库 API 可能会在 Support Library 的后续版本中发生更改。目前,我们建议仅在与 Google Cast 开发者预览版 结合使用时使用该库。
- v4 support library 的更改
-
- 添加了
DrawerLayout
用于创建 导航抽屉,该抽屉可以从窗口边缘拉入。 - 添加了
SlidingPaneLayout
组件,用于创建链接的摘要和详细信息视图,这些视图可以适当地适应各种屏幕尺寸。 - 添加了
ActionBarDrawerToggle
作为一种将DrawerLayout
和ActionBar
的功能联系起来的方式。 - 添加了
ViewDragHelper
作为一种新的通用组件,用于在父视图中拖动视图。 - 添加了
ScrollerCompat
以提供Scroller
和OverScroller
兼容性支持。 - 添加了
FileProvider
以允许应用程序之间共享私有文件。 - 更新了
ViewPager
,如果关联的PagerAdapter
类在没有调用notifyDataSetChanged()
的情况下被修改,则会抛出异常。 - 修复了
ViewPager
子项绘制排序顺序的问题。 - 修复了
GestureDetectorCompat
,以便在点击超时和长按事件之间分派缺少的onSingleTapConfirmed(MotionEvent)
调用。
- 添加了
- 新的 v7 gridlayout 库
-
- 添加了
GridLayout
以提供对GridLayout
布局对象的支持。 - 添加了
android.support.v7.widget.Space
,可用于在GridLayout
布局对象中创建空白区域。
- 添加了
- v4 support library 的更改
-
- 改进了
ViewPager
的交互行为。 - 修复了一个可能导致
ViewPager
选择错误页面的错误。 - 修复了在
ViewPager
的布局期间使用removeView()
方法的问题。 - 修复了
SearchViewCompat
中的一个问题,即使用后退按钮关闭搜索时不会清除搜索文本。此修复程序仅适用于主机 API 级别 14 及更高版本。
- 改进了
- v4 support library 的更改
-
- 用户界面
- 添加了对嵌套
Fragment
类的支持。 - 改进了
FragmentManager
调试。 - 修复了
FragmentTabHost
中的一个问题,其中片段和选项卡交互可能导致ListView
状态丢失。 - 修复了
FragmentStatePagerAdapter
中用户可见提示的问题。 - 将
PageTransformer
接口添加到ViewPager
,以允许应用程序为滚动提供自定义过渡行为。 - 将新功能和修复程序添加到
TaskStackBuilder
中,来自当前版本。 - 修复了
PagerTitleStrip
以正确跟踪当前使用的PagerAdapter
。 - 修复了
PagerTitleStrip
的显示闪烁、定位和文本裁剪问题。 - 修复了
PagerTabStrip
以在绘制下划线时正确遵守填充。
- 添加了对嵌套
- 可访问性
- 在
AccessibilityEventCompat
中添加了对新的辅助功能手势和触摸事件类型的支持。 - 在
ViewCompat
中添加了对新的辅助功能 API 的支持。 - 在
ViewCompat
中添加了对performAccessibilityAction()
方法的支持。
- 在
- 添加了对使用
GestureDetectorCompat
进行手势的支持。 - 添加了对使用新的
AtomicFile
类对文件执行原子操作的支持。 - 添加了对
make
方法的完整集在IntentCompat
中的支持。 - 在
LruCache
实用程序类中添加了trimToSize()
方法。 - 更新了
ConnectivityManagerCompat
以从CONNECTIVITY_ACTION
广播获取 NetworkInfo。
- 用户界面
- v4 support library 的更改
-
- 通过在
NotificationCompat
中添加内容,添加了对 Android 4.1(API 级别 16)中引入的通知功能的支持。
- 通过在
- v4 support library 的更改
-
- 用户界面支持
- 添加了
PagerTabStrip
支持,提供了超出PagerTitleStrip
的增强功能。 - 修复了
PagerTitleStrip
和PagerTabStrip
的各种错误,包括setAllCaps
选项、标题对齐、外观改进、最小宽度约束和触摸导航问题。 - 添加了对
ViewPager
页面间隙的支持,这有助于ViewPager
类为具有较大水平滚动范围的内容(例如地图)提供分页支持。 - 修复了
ViewPager
的许多错误,包括大小和数据集更改问题、页面定位、用户交互、滚动跟踪和键盘导航问题。 - 修复了
Fragment
的许多错误,包括在目标片段不再存在时正确处理onActivityResult()
、将选择事件分派到不可见的片段、改进FragmentTransaction.replace()
行为以及为移出视图的片段添加了更好的状态处理。 - 在
ViewCompat
中添加了对postOnAnimation()
方法的支持。 - 更新了
NavUtils
,以便在可用时使用 Android 4.1(API 级别 16)的“向上”导航功能。
- 添加了
- 可访问性
- 更新了辅助功能支持类,包括
AccessibilityNodeInfoCompat
,以遵循 Android 4.1(API 级别 16)中进行的修复。 - 添加了对
ViewPager
中辅助功能滚动操作的支持。
- 更新了辅助功能支持类,包括
- 一般改进
- 更新了
TaskStackBuilder
以反映 Android 4.1(API 级别 16)中的 API 更改。 - 增强了
TaskStackBuilder
以允许从服务中使用它。 - 在
ShareCompat
中添加了对EXTRA_HTML_TEXT
的支持。 - 更新了
NotificationCompat.Builder
以支持setNumber()
方法。 - 在
ConnectivityManagerCompat
中添加了对isActiveNetworkMetered()
方法的支持。
- 更新了
- 用户界面支持
- v4 support library 的更改
-
- 修复了
TaskStackBuilder
生成的PendingIntent
对象的意图标志。 - 从 gridlayout 库项目中删除了未使用的属性,以确保该库可以使用 API 级别 7 及更高版本构建。
- 为 gridlayout 库项目添加了
.classpath
和.project
文件。
- 修复了
- v4 support library 的更改
-
- 添加了
ShareCompat
,它提供了用于发送和接收社交分享应用程序内容的辅助类,包括用于将共享数据归因于源应用程序的新元数据。此类还提供了与 Android 4.0 中新的ShareActionProvider
的兼容集成。 - 添加了
NavUtils
和TaskStackBuilder
以提供对实现 Android 设计 指南中导航的支持。这些新增功能包括一种跨版本实现操作栏的“向上”按钮的方法。有关此模式的示例实现,请参阅 (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
) 中的 AppNavigation 示例。 - 添加了
NotificationCompat.Builder
以提供 Android 3.0 的Notification.Builder
辅助类的兼容性实现,用于创建标准化的系统通知。
- 添加了
- v4 support library 的更改
-
- ViewPager 的更改
- 为
ViewPager
添加了额外的装饰视图支持。装饰视图可以作为分页器在 XML 布局中的子视图提供。 - 添加了
PagerAdapter.getPageTitle()
用于提供页面的标题字符串,默认情况下每个页面都没有标题。 - 添加了
PagerTitleStrip
,一个非交互式标题条,可以作为 ViewPager 的子项添加。开发者可以提供文本外观和颜色,以及布局大小和重力信息。 - 更新了
PagerAdapter
方法,使其采用 ViewGroup 对象而不是 View,以避免适配器实现中的类转换。 - 更新了
ViewPager
以使用 Launcher 样式的抛掷行为。 - 修复了用户界面交互和测试自动化的错误。
- 为
- 支持 Fragment
- 将
setStartDeferred()
方法更改为setUserVisibleHint(boolean)
。 - 为屏幕外的页面添加了延迟启动以提高性能。
- 将
- 支持辅助功能 API
- 更新了
AccessibilityDelegateCompat
方法,使其返回空列表而不是 null。 - 添加了 v4 示例所需的新的 API。
- 更新了
- ViewPager 的更改
- v4 support library 的更改
-
- 支持辅助功能 API
- 添加了
AccessibilityDelegateCompat
以支持View.AccessibilityDelegate
。 - 添加了
AccessibilityEventCompat
以支持AccessibilityEvent
。 - 添加了
AccessibilityManagerCompat
以支持AccessibilityManager
。 - 添加了
AccessibilityNodeInfoCompat
以支持AccessibilityNodeInfo
。 - 添加了
AccessibilityRecordCompat
以支持AccessibilityRecord
。 - 添加了
AccessibilityServiceInfoCompat
以支持AccessibilityServiceInfo
。 - 添加了
ViewGroupCompat
以支持ViewGroup
中的辅助功能。 - 修改了
ViewCompat
以支持View
中的辅助功能。
- 添加了
- ViewPager 的更改
- 添加了对页面之间边距的支持。可以提供一个可选的
Drawable
来填充边距。 - 添加了对
EdgeEffect
的支持。 - 添加了对键盘导航的支持
- 添加了支持以控制保留在当前页面两侧的页面数量。
- 改进了触摸物理特性。
- 修复了用户界面行为的错误。
- 添加了对页面之间边距的支持。可以提供一个可选的
- 支持辅助功能 API
- v4 support library 的更改
-
- 添加了
EdgeEffectCompat
以支持EdgeEffect
。 - 添加了
LocalBroadcastManager
以允许应用程序轻松地在单个应用程序内注册和接收意图,而无需在全局范围内广播它们。 - 在
ViewCompat
中添加了支持,以便在 Android 2.3 及更高版本上检查和设置View
的滚动超出边界模式。 - 对 Fragment API 的更改
- 添加了新的 API 来控制新菜单的可见性。
- 添加了自定义动画 API。
- 在
FragmentActivity
中添加了 API 以保留自定义的、非配置的实例数据。 - 各种错误修复。
- 修复了一个
Loader
错误,该错误在 Froyo 和更旧版本的平台上取消AsyncTask
时会导致问题。支持代码现在使用其自己的AsyncTask
版本以在所有平台版本上保持相同行为。
- 添加了
- v4 support library 的更改
-
- 添加了对
Fragment.SavedState
的支持 - 添加了
MotionEventCompat
以支持较新的MotionEvent
API - 添加了
VelocityTrackerCompat
以支持较新的VelocityTracker
API - 添加了
ViewConfigurationCompat
以支持较新的ViewConfiguration
API - 所有新的 API(仅在支持库中可用),允许您创建具有水平分页的 UI,允许用户在内容视图之间左右滑动。支持此功能的类包括
ViewPager
:一个ViewGroup
,它管理子视图的布局,用户可以在这些视图之间滑动。PagerAdapter
:一个适配器,使用表示每个页面的视图填充ViewPager
。FragmentPagerAdapter
:PagerAdapter
的扩展,用于在片段之间翻转。FragmentStatePagerAdapter
:PagerAdapter
的扩展,用于在片段之间翻转,并使用库对Fragment.SavedState
的支持。
- 添加了对
- 新的 v13 支持库
-
- 包括
FragmentPagerAdapter
和FragmentStatePagerAdapter
以支持水平分页。这些与添加到 v4 支持库中的 API 完全相同,但依赖于 Android 3.2 中的其他平台组件。如果您正在开发针对 Android 3.2 及更高版本的应用程序,请使用此库而不是 v4(v4 库中的所有其他 API 已经在 API 级别 13 中可用)。
- 包括
- v4 库的更改
-
- 支持片段动画
- 修复
Fragment.onActivityResult()
错误
修订版 22
2015 年 3 月
修订版 21.0.3
2014 年 12 月
修订版 21.0.2
2014 年 11 月
修订版 21.0.1
2014 年 11 月
修订版 21
2014 年 10 月
修订版 20
2014 年 7 月
修订版 19.1.0
2014 年 3 月
修订版 19.0.1
2013 年 12 月
修订版 19
2013 年 10 月
修订版 18
2013 年 7 月
修订版 13
2013 年 5 月
修订版 12
2013年2月
修订版 11
2012年11月
修订版 10
2012年8月
修订版 9
2012年6月
修订版 8
2012年4月
修订版 7
2012年3月
修订版 6
2011年12月
注意:支持库 API 的参考现在可与框架参考一起使用,例如:android.support.v4.app
。
版本 5
2011年12月
版本 4
2011 年 10 月
版本 3
2011 年 7 月
版本 2
2011 年 5 月
版本 1
2011 年 3 月
使用 v4 库的初始版本。