支持库修订归档

本页面提供有关较旧的支持库软件包版本的信息。如需了解最新的支持库版本,请参阅最新支持库修订版本

修订版本 26.0.0 Beta 2

(2017 年 6 月)

请注意,26.0.0-beta2 是预发布版本。其 API Surface 可能会发生变化,并且不一定包含支持库最新稳定版本中的功能或 bug 修复。

重要提示: 支持库现在可通过 Google 的 Maven 代码库获取。您无需从 SDK 管理器下载支持代码库。如需了解详情,请参阅支持库设置

新 API

API 差异

Bug 修复

  • Android O SDK 更新导致 TextView 中的斜体丢失
  • 连接到 MediaBrowserServiceCompat 时出现空指针异常
  • TextInputLayout 必须在 onProvideAutofillStructure() 上设置提示
  • 在 O 上使用 TextView autosize 时出现堆栈溢出

修订版本 26.0.0 Beta 1

(2017 年 5 月)

请注意,26.0.0-beta1 是预发布版本。其 API Surface 可能会发生变化,并且不一定包含支持库最新稳定版本中的功能或 bug 修复。

重要提示: 支持库现在可通过 Google 的 Maven 代码库获取。您无需从 SDK 管理器下载支持代码库。如需了解详情,请参阅支持库设置

重要更改

  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController() 已移除。请使用新的静态 MediaControllerCompat.setMediaController()MediaControllerCompat.getMediaController() 方法。
  • BottomNavigationView 现在在已选中的项目被再次选中时调用 onNavigationItemReselected(),而不是调用 onNavigationItemSelected()
  • 所有 findViewById() 方法的实例现在返回 <T extends View> T 而不是 View。此更改具有以下影响
    • 这可能导致现有代码现在具有歧义的返回类型,例如,如果同时存在接受 findViewById() 调用结果的 someMethod(View)someMethod(TextView)
    • 使用 Java 8 源代码时,当返回类型不受约束时(例如,assertNotNull(findViewById(...)).someViewMethod())),这需要明确地转换为 View
    • 覆盖非 final 的 findViewById() 方法(例如,Activity.findViewById())需要更新其返回类型。

新 API

  • FragmentManagerFragment 有一个 isStateSaved() 方法,可以查询是否允许进行事务而不丢失状态。这在处理 onClick() 事件并执行任何事务之前进行检查时特别有用。
  • AnimatedVectorDrawableCompat 支持路径运动。路径运动允许一个对象动画师根据一个路径同时更改两个属性;该路径在动画师的 XML 中指定为 android:pathData)。
  • 基于物理的动画:
    • 新的 FlingAnimation 支持以初始速度进行动画并平滑减速。
    • DynamicAnimation 的子类支持为任何对象进行自定义属性动画。
    • 现在 SpringAnimationFlingAnimation 都可以为 float 值进行动画,而无需关联 ViewObject

    如需了解详情,请参阅弹性动画飞掷动画预览页面。

  • XML 中的字体支持:
    • ResourcesCompat.getFont 允许加载字体资源(包括字体族 XML),这些资源可与 TextView.setTypeface() 一起使用。
    • 使用 AppCompat 时,TextView 支持通过 android:fontFamily XML 属性指定字体资源或字体族 XML。
    • 使用 XML 字体族创建具有样式和粗细变化的字体系列。(如果使用支持库类完成此操作,请同时使用 app: 属性和 android: 属性。)
  • 可下载字体
    • 新的 FontsContractCompat 允许您从字体提供程序请求字体,而不是将其捆绑到您的应用中。
    • 也可以在 XML 中请求字体并在布局中使用。
  • 表情符号兼容性库:
    • EmojiCompat 可以处理给定的 CharSequence 并添加 EmojiSpans
    • EmojiTextView 和其他用于显示表情符号的微件。
    • FontRequestEmojiCompatConfig 用于从字体提供程序请求表情符号字体。
  • 自动调整大小的 TextView:
    • TextViewCompat 中的新方法以及用于控制 TextView 中自动调整大小的 XML 属性。
  • 支持seek功能的 Leanback 播放控件
    • 新的 PlaybackTransportRowPresenter,可呈现带有 SeekBar 的播放控件。
    • 新的 PlaybackTransportControlGlue,可与 PlaybackTransportRowPresenter 配合使用并支持 seek。
    • 新的基类 PlaybackSeekDataProvider,用于应用向 PlaybackTransportControlGlue 提供 seek 缩略图。
  • 偏好设置数据存储
    • PreferenceDataStore 现在允许您实现自己的偏好设置存储,使用 PreferencePreferenceManager 中的新方法进行设置。

已知问题

  • 可下载字体和表情符号兼容性与 Google Play 服务集成仅适用于 Google Play 服务 v11+,目前可通过 Google Play 服务 beta 计划获取。

Bug 修复

  • MediaBrowserCompat.search() API 不工作 (AOSP issue 262170)
  • ViewCompat.postInvalidateOnAnimation() 抛出异常 (AOSP issue 80146)
  • 在被销毁的 Activity 中的 fragment 会调用 onActivityCreated()
  • 在预取期间,RecyclerView.isComputingLayout() 应该返回 true
  • Fade 过渡被中断和反转时,View 从头开始动画。(修复从 Android Framework 移植而来。)
  • Transition.Fade 忽略 View 的初始 alpha 值 (AOSP issue 221820)

修订版本 26.0.0 Alpha 1

(2017 年 3 月)

请注意,26.0.0-alpha1 是预发布版本。其 API Surface 可能会发生变化,并且不一定包含支持库最新稳定版本中的功能或 bug 修复。

重要更改

注意:最低 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 差异报告

Bug 修复

  • 在某些情况下,简单的 AutoTransition 动画可能会被视图“跳跃”中断。(AOSP issue 221816)

修订版本 25.4.0

(2017 年 6 月)

重要提示: 支持库现在可通过 Google 的 Maven 代码库获取。您无需从 SDK 管理器下载支持代码库。如需了解详情,请参阅支持库设置

重要更改

  • FragmentManager 状态更改期间,不允许调用 executePendingTransactions()commitNow()popBackStackImmediate() 和类似的事务调用。事务的重入执行是不安全的,并且 FragmentManager 现在在其状态更改期间强制执行此规则。
  • 在发布此支持库版本的同时,我们还发布了 multidex 版本 1.0.2。此版本包括以下重要更改
    • 允许对 Instrumentation APK 进行 multidexing。
    • 弃用 MultiDexTestRunner(应改用 AndroidJUnitRunner)。
    • 提供更好的保护,防止应用出现一些不良的存档提取管理。
    • 修复了可能导致临时文件被遗弃的 bug。
    • 在并发进程中安装时速度更快。
    • 修复了 API 19 和 20 上的安装 bug。

新增和修改的 API

AnimatedVectorDrawableCompat 支持路径变形和路径插值。路径变形允许形状从一个路径(指定为 android:valueFrom)更改为另一个路径(指定为 android:valueTo),以提供复杂且吸引人的视觉效果。路径插值允许将 AnimatedVectorDrawableCompat 的插值器指定为路径(在插值器的 XML 中指定为 android:pathData)。

API 差异

已修复问题

  • 连接到 MediaBrowserServiceCompat 时出现空指针异常
  • MediaBrowserCompat.search() API 不工作 (AOSP issue 262170)
  • 25.3.0 中 BrowseFragment onItemClicked 回调损坏
  • 在 25.3.1 的 VerticalGridView 中向上和向下滚动时出现 NullPointerException
  • SimpleArrayMap.allocArrays() 中出现 ClassCastException

修订版本 25.3.1

(2017 年 3 月)

已修复问题

修订版本 25.3.0

(2017 年 3 月)

重要更改

从 Gradle 构建时,支持库版本元数据将自动添加到 AndroidManifest.xml 中,这简化了在公共构建中跟踪版本。例如

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

弃用

此版本中已弃用多个方法和类。这些已弃用的 API 将在未来版本中移除,开发者应迁移不再使用它们。有关如何迁移不再使用特定 API 的详情,请参阅其文档。

ExifInterface
boolean 方法 getLatLong(float[]) 已弃用。请改用不带参数并返回 double[] 的新方法 getLatLong()
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() 参考。

已修复问题

修订版本 25.2.0

(2017 年 2 月)

重要更改

已修复问题

  • 此版本修复了一个严重的 mediarouter 问题,即使用 A2DP 设备和媒体路由 API 可能导致设备无响应,需要重新启动。
  • FragmentManager.FragmentLifecycleCallbacks 类现在是静态的。

已修复问题

  • 使用屏幕镜像显示幻灯片演示文稿会导致设备断开 Wi-Fi 连接
  • 媒体按钮无法正确处理未向 setMediaButtonReceiver() 注册自身的媒体应用
  • VectorDrawable 错误与字符串资源相关 (AOSP issue 232407)
  • 如果文本通过 XML 设置,TextInputLayout 会覆盖提示和文本 (AOSP issue 230171)
  • MediaControllerCompat 中的内存泄漏 (AOSP issue 231441)
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() 崩溃
  • RecyclerView 在回收视图持有者时崩溃 (AOSP issue 225762)
  • 对于 WearableExtender 中的操作,getAllowGeneratedReplies() 错误地返回 false

修订版本 25.1.1

(2017 年 1 月)

重要提示:支持库修订版本 25.1.1 和 25.1.0 中的 android.support.v7.media.MediaRouter 类存在已知 bug。如果您的应用使用 v7 MediaRouter,则应更新到 支持库修订版本 25.2.0,该版本修复了此 bug。

重要更改

  • 现在可以在事务内部和跨事务优化 Fragment 事务。优化 Fragment 事务操作可以消除取消的操作。例如,假设两个事务一起执行,一个添加 Fragment A,第二个将 Fragment A 替换为 Fragment B。在这种情况下,第一个操作可能会被取消,只添加 Fragment B。这意味着 Fragment A 可能不会经历创建/销毁生命周期。

    此优化的副作用是 Fragment 的状态更改可能会超出预期顺序。例如,假设一个事务添加 Fragment A,第二个添加 Fragment B,然后第三个移除 Fragment A。如果不进行优化,Fragment B 可能期望在创建时 Fragment A 也将存在,因为 Fragment A 将在 Fragment B 添加后被移除。进行优化后,Fragment B 不能确定在创建时 Fragment A 将存在,因为 Fragment A 的创建和销毁可能被优化移除。

    默认情况下,此优化处于禁用状态。要启用优化,请调用 FragmentTransaction.setAllowOptimization(true)

  • Fragment 现在可以使用 Fragment.postponeEnterTransition()Fragment.startPostponedEnterTransition() 推迟其过渡和动画,直到准备就绪。此 API 类似于与 Activity Transitions 一起使用的 Activity.postponeEnterTransition()Activity.startPostponedEnterTransition()

已修复问题

修订版本 25.1.0

(2016 年 12 月)

重要提示:支持库修订版本 25.1.1 和 25.1.0 中的 android.support.v7.media.MediaRouter 类存在已知 bug。如果您的应用使用 v7 MediaRouter,则应更新到 支持库修订版本 25.2.0,该版本修复了此 bug。

重要更改

  • 嵌套 RecyclerView 微件的客户端(例如,水平滚动列表的垂直滚动列表)可以通过向内部 RecyclerView 微件的布局管理器提示在屏幕上滚动之前需要准备多少项来获得显著的性能优势。调用 LinearLayoutManager.setInitialPrefetchItemCount(N),其中 N 是每个内部项可见的视图数量。例如,如果您的内部水平列表一次显示至少三个半项视图,您可以通过调用 LinearLayoutManager.setInitialPrefetchItemCount(4) 来提高性能。这样做允许 RecyclerView 在外部 RecyclerView 滚动时尽早创建所有相关的视图,这显著减少了滚动期间的卡顿量。
  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController() 已弃用。请使用新的静态 MediaControllerCompat.setMediaController()MediaControllerCompat.getMediaController() 方法。
  • 当客户端通过 appcompat tinting 指定微件 tint 时(例如,appcompat:buttonTint),客户端负责提供所有必要的状态(例如,“禁用”、“按下”等)。这与使用框架 tinting 指定微件 tint 的方式一致。

新增和修改的 API

已修复问题

  • 密码可见性切换未能通过无障碍测试。
  • Appcompat 在 pre-L 设备上不遵循 state_enabled
  • RecyclerView 添加了焦点恢复机制。这还修复了在 Android TV 设备等上使用 DPAD 导航时,支持偏好设置 fragment 焦点损坏的问题。
  • Leanback:当禁用 header 且 adapter 为空时,BrowseFragment 崩溃。
  • Appcompat:AlertDialog 过宽。
  • InputContentInfoCompat 在应该调用 releasePermission() 时调用了 requestPermission()
  • MediaBrowserCompat 崩溃。
  • 当可见性设置为 GONE 时,CoordinatorLayout 会测量/布局视图。
  • 在 API level 24 以下无法对 AnimatedVectorDrawableCompat 进行染色
  • Leanback 库触发了虚假的 lint 错误
  • Palette 库导致在每个 API level 上测试失败
  • Leanback 上 RecyclerView 测试失败
  • RecyclerView 在回收视图持有者时崩溃 (AOSP issue 225762)
  • 后退栈中的 fragment 未调用 Fragment.onDestroy()
  • 折叠时未绘制 CollapsingToolbarLayout scrim
  • CoordinatorLayout.offsetChildByInset() 抛出 IllegalArgumentException
  • RecyclerView 项进行动画会分离内部的 RecyclerView,阻止未来的预取
  • 已附加的 RecyclerView 项无法嵌套预取
  • 在第一次布局期间,嵌套 RecyclerView 项的预取数据被丢弃
  • 如果两个拖动事件到达同一位置,RecyclerView 预取失败
  • 在 RenderThread 渲染时,RecyclerView 应推测性地布局
  • 夜间模式配置的颜色资源转换为 Drawables 后并非总是能从 Resources 缓存中正确清除
  • FloatingActionButton:以编程方式设置 BackgroundTintList 无法正常工作 (AOSP issue 227428)
  • TextInputLayout:未为 ErrorView 设置字体 (AOSP issue 227803)
  • 低于 API 23 时,TextInputLayout 总是回退到浅色错误颜色 (AOSP issue 221992)
  • 当指针离开时,FloatingActionButton 显示为按下状态

公开的 bug 修复完整列表可在 AOSP Issue Tracker 上找到。

弃用

此版本中已弃用多个方法和类。这些已弃用的 API 将在未来版本中移除,开发者应迁移不再使用它们。有关如何迁移不再使用特定 API 的详情,请参阅其文档。

修订版本 25.0.1

(2016 年 11 月)

已修复问题

公开的 bug 修复完整列表可在 AOSP Issue Tracker 上找到。

修订版本 25.0.0

(2016 年 10 月)

重要更改

  • ContextCompat 构造函数已设置为 protected。此类别不应公开实例化,但可通过支持库进行扩展,以用于更高的 API 级别。
  • ActivityCompat 构造函数已设置为 protected。此类别不应公开实例化,但可通过支持库进行扩展,以用于更高的 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 level 13 后引入的 android.view.inputmethod.InputConnection 功能。
  • android.v7.widget.RecyclerView.DividerItemDecoration 类为项目之间的垂直或水平分隔线提供了一个基础实现。
  • android.support.v7.app.NotificationCompat 中新增的装饰样式 DecoratedCustomViewStyleDecoratedMediaCustomViewStyle,是平台 API 24 中新增类的镜像。

已修复问题

公共错误修正的完整列表可在 AOSP Issue Tracker 上查阅。

修订版本 24.2.1

2016 年 9 月

已修复问题

公共错误修正的完整列表可在 AOSP Issue Tracker 上查阅。

修订版本 24.2.0

2016 年 8 月

版本 24.2.0 包含以下变更:

注意:版本 24.2.0 不再支持 Android 2.2 (API level 8) 及更低版本。仅用于服务于这些系统版本的类和方法现已标记为 deprecated,不应再使用。这些 deprecated 的类和方法可能会在未来的版本中移除。

v4 支持库拆分

在此版本中,v4 支持库已拆分为几个更小的模块:

support-compat
为新的框架 API 提供兼容性包装器,例如 Context.getDrawable()View.performAccessibilityAction()
support-core-utils
提供了一些工具类,例如 AsyncTaskLoaderPermissionChecker
support-core-ui
实现各种与 UI 相关的组件,例如 ViewPagerNestedScrollViewExploreByTouchHelper
support-media-compat
向下移植媒体框架的一部分,包括 MediaBrowserMediaSession
support-fragment
向下移植 Fragment 框架。此模块依赖于 support-compatsupport-core-utilssupport-core-uisupport-media-compat

为了向后兼容,如果您在 Gradle 脚本中列出 support-v4,您的 APK 将包含所有这些模块。但是,为了减小 APK 大小,建议您仅列出应用所需的特定模块。

API 更新

行为变更

  • 如果您使用 appcompat 库的昼夜功能,系统现在会在昼夜模式更改时自动重新创建您的活动(无论是由于时间变化,还是由于调用了 AppCompatDelegate.setLocalNightMode())。
  • 如果状态栏是半透明的,Snackbar 现在会在导航栏下方绘制。

MediaRouter 库

蓝牙设备不再列为媒体路由。音频路由到蓝牙设备现在完全由 Android 系统级别控制。

弃用

Deprecated 的类和方法在未来的版本中可能会被移除。您应尽快迁移,停止使用这些 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() 已 deprecated,并推荐使用 AccessibilityServiceInfoCompat.loadDescription(),该方法返回正确的本地化描述。
  • 您不应直接实例化 ActivityCompat 类。非静态方法 getReferrer(Activity) 在即将发布的版本中将变为静态方法。
  • CoordinatorLayout.Behavior.isDirty() 已 deprecated,不再由 CoordinatorLayout 调用。任何实现以及对此方法的调用都应移除。
  • MediaSessionCompat.obtain() 已 deprecated,并替换为名称更恰当的方法 fromMediaSession()
  • MediaSessionCompat.QueueItem.obtain() 已 deprecated,并替换为名称更恰当的方法 fromQueueItem()
  • 几个抽象类已 deprecated,并替换为更能反映其框架等价物的接口。
  • CustomTabsSession.setToolbarItem() 已 deprecated,并替换为基于 RemoteViews 的 setSecondaryToolbarViews()

Bug 修复

以下已知问题已在版本 24.2.0 中修复:

  • 确保在第一次测量通过之前调用 setRefreshing(true) 时显示 SwipeRefreshLayout 指示器 (AOSP 问题 77712)
  • 防止 TabLayout 在更改页面时闪烁 (AOSP 问题 180454)
  • 在 API level 11 及更低版本上,解封 SavedState 时避免出现 ClassNotFoundException (AOSP 问题 196430)

公共错误修正的完整列表可在 AOSP Issue Tracker 上查阅。

修订版本 24.1.1

2016 年 7 月

已修复问题

  • 修复了 24.1.0 版本中影响支持库之间共享资源 ID 的问题。此问题导致依赖于包含资源(如 design 和 appcompat)的支持库的应用遇到资源 ID 不匹配引起的问题。

修订版本 24.1.0

2016 年 7 月

v4 支持库的变更

已修复问题

修订版本 24.0.0

2016 年 6 月

v4 支持库的变更
  • 添加了 Fragment.commitNow() 用于同步提交
  • 为多方对话添加了 NotificationCompat.MessagingStyle
  • 添加了 NotificationManagerCompat.areNotificationsEnabled()getImportance()
  • MediaSessionCompat 现在镜像 MediaSession 的功能,不再自动调用 setMediaButtonReceiver()

注意:只有版本 24.0.0 中的 MediaBrowserServiceCompat 才能向前兼容 API 24 以后的未来 Android 版本。如果您使用的是早期版本,请更新到此版本以确保兼容性。

v7 appcompat 库的变更
  • 添加了支持从 XML 引用带主题的 ColorStateList 对象的功能
Design Support Library 的变更
v17 Leanback 库的变更
  • 添加了 OnboardingFragment,用于提供首次运行时的欢迎和设置流程
custom tabs 的变更
  • 添加了对为辅助工具栏提供 RemoteViews 层次结构的支持
  • 添加了 CustomTabsClient.connectAndInitialize() 用于一行代码实现预热

修订版本 23.4.0

2016 年 5 月

v4 支持库的变更
  • 修复了 Fragment 添加顺序错误的问题。(AOSP 问题 206901)
  • 修复了应用栏滚动出屏幕后不绘制的问题。(AOSP 问题 178037)
v7 appcompat 库的变更
Design Support Library 的变更
变更内容Vector Drawable 库

修订版本 23.3.0

2016 年 4 月

v4 支持库的变更
  • 添加了 AppLaunchChecker,用于帮助跟踪用户过去如何启动您的应用。hasStartedFromLauncher() 会告知您用户之前是否从主屏幕启动过您的应用,或者它是否仅通过其他方式启动(例如,查看特定网页 URL)。
  • 修复了 MediaBrowserServiceCompat.mConnections 中的内存泄漏问题。(AOSP 问题 205220)
  • 修复了 ViewPager 在翻页时未考虑页面边距的问题。(AOSP 问题 203816)
  • Fragment.onRequestPermissionsResult() 现在会传递给子 Fragment。
v7 appcompat 库的变更
v7 mediarouter library 的变更
v7 Preference 库的变更
v7 recyclerview library 的变更
Design Support Library 的变更
  • 修复了隐藏的底部工作表会处理触摸事件的错误。(AOSP 问题 203654)
  • 修复了当 fitsSystemWindows 为 true 时 BottomSheetBehavior 的布局问题。(AOSP 问题 203057)
  • 修复了 Snackbar 的辅助功能问题。(AOSP 问题 182145)
  • 修复了 Snackbar 滑动时的崩溃问题。(AOSP 问题 203924)
  • 修复了 AppBarLayoutenterAlways 结合使用时的错误。(AOSP 问题 203661)
  • 修复了 TextInputLayout 不必要地清除了 EditText 对象的背景颜色过滤器的问题。(AOSP 问题 203357)

修订版本 23.2.1

2016 年 3 月

v4 支持库的变更
v7 appcompat 库的变更
  • 还原了对矢量资源的依赖,以便使用 appcompat library 的开发者不会被迫使用 VectorDrawable 及其相关的构建标志。
  • 修复了 Night Mode 和 API level 23 的兼容性问题。(AOSP 问题 201910)
  • 修复了 SwitchCompat 和 API level 7 的兼容性问题。(AOSP 问题 201942)
  • 修复了在 Resources 对象中传播配置值的问题 Issue 201928
  • 修复了在 API level 21 及以下版本中,android.support.v7.app.NotificationCompat.MediaStyle 取消按钮变为不可见的兼容性问题。(AOSP 问题 202156)
  • 修复了在 API level 21 及以下版本中,AppCompatSpinner 的兼容性崩溃问题。(AOSP 问题 202246)
  • 修复了 app:textAllCaps = "false" 样式不起作用的问题。(AOSP 问题 202117)
  • 修复了恢复 SearchView 时导致的崩溃问题。(AOSP 问题 201836)
  • 修复了使用 AppCompat 对 drawable 资源进行着色时发生的内存泄漏问题。(AOSP 问题 202379)
  • 修复了在 API level 11 及以下版本中,KeyEvent 的问题。(AOSP 问题 202939)
v7 cardview library 的变更
v7 recyclerview library 的变更
  • 修复了与各种测量规范方法相关的错误。(AOSP 问题 201856)
  • 缩短了 RecyclerView 在计算布局或滚动时不允许适配器更改的锁定周期。(AOSP 问题 202046)
  • 修复了对视野外的项目调用 notifyItemChanged() 时发生的崩溃问题。(AOSP 问题 202136)
  • 修复了 RecyclerView.LayoutManager 在同一测量通过中添加和移除视图时发生的崩溃问题。(AOSP 问题 193958)
v7 mediarouter library 的变更
v17 Leanback Library 的变更
  • 修复了 GridLayout.onAddFocusables() 中导致选择错误项目的问题。
  • 修复了 GuidedStepFragment 操作在折叠后消失的问题。
Design Support Library 的变更
  • 修复了由选项卡池化导致的 TabLayout 崩溃问题。(AOSP 问题 201827)
  • 修复了 NavigationView 中导致选择了错误颜色的错误。(AOSP 问题 201951)
  • 修复了 setBackgroundTintList() 不再能够更改背景颜色的错误。(AOSP 问题 201873)
  • 修复了当与 android:fitsSystemWindows = “true” 一起使用时,AppBarLayout 没有完全滚动出视图的问题。(AOSP 问题 201822)
  • 修复了 BottomSheetDialog 未正确显示短内容视图的问题。(AOSP 问题 201793)
  • 修复了当内部内容更改时 BottomSheetDialogFragment 会不规则移动的问题。(AOSP 问题 202125)
  • 修复了 TextInputLayout 计数器中的崩溃 link
  • 修复了 TextInputLayout.getCounterMaxLength() 恢复已保存状态时发生的崩溃问题。(AOSP 问题 202375)
  • 修复了在使用非 CoordinatorLayout 视图的已保存状态恢复 CoordinatorLayout 时发生的 ClassCastException
VectorDrawableCompat 的变更
  • 修复了读取 android:tintMode 时读取了错误变量的错误。(AOSP 问题 201907)

修订版本 23.2.0

2016 年 2 月

v4 支持库的变更
  • 添加了 MediaBrowserCompat 用于 MediaBrowser 支持,以及 MediaBrowserServiceCompat 用于 MediaBrowserService 支持。这对于连接媒体应用的后台服务与 UI 组件,以及集成 Android Auto 和 Android Wear 而无需 API level 21 或更高版本非常有用。
  • 系统现在会为嵌套的 FragmentActivity 调用 onActivityResult()
v7 AppCompat library 的变更
  • 为 API level 14 及更高版本添加了 Night Mode 功能。根据一天中的时间或应用特定设置在 Material Light 和 Material Dark 主题之间切换。
    • 昼夜主题可以在这里找到:<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 library 的变更
Design support library 的变更
  • 添加了对底部工作表的支持。一个交互插件 BottomSheetBehavior 允许 CoordinatorLayout 的子视图充当底部工作表。基类 BottomSheetCallback 提供回调以监控底部工作表事件。
CustomTabs support library 的变更
  • Chrome Custom Tabs 现在允许应用除了现有的顶部操作按钮外,还在底部栏包含操作按钮。
  • CustomTabsIntent.Builder.addToolBarItem():向自定义标签页添加一个操作按钮。您可以使用此方法添加多个按钮。
  • CustomTabsSession.setToolBarItem():更新工具栏项目的视觉效果。此方法仅在给定有效 ID 且浏览器会话位于前台时才会成功。
添加了 VectorDrawable 支持库
  • 添加了类
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • 为运行在 API level 7 或更高版本上的应用添加了对 VectorDrawable 资源的支持。API level 11 或更高版本还支持 AnimatedVectorDrawable 资源。矢量资源可能比图像资源小得多,应通过减少支持多种设备屏幕所需的资源数量来帮助减小应用大小。
  • 此库现在是 v7 AppCompat 库的依赖项,允许开发者和 AppCompat 轻松使用矢量 drawable。要在 ImageButtonImageView 中使用 VectorDrawableCompat,请使用 app:srcCompat XML 属性或 setImageResource() 方法。
  • 要在 API level 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
        }
      }
v17 Leanback Library 的变更
  • GuidedStepFragment 添加了新功能,该组件引导用户完成决策或一系列决策
    • GuidedAction 添加了按钮操作
      • GuidedStepFragment.setButtonActions():设置用户可以从 Actions 视图中选择的 GuidedAction 按钮列表。
    • 描述字段现在可编辑
      • GuidedAction.Builder.descriptionEditable():传入 true 时,将操作的描述设置为可编辑。
      • GuidedAction.getEditDescription():将可编辑的描述作为 CharSequence 返回。
    • 添加了下拉子操作列表
      • GuidedAction.setSubActions():将 GuidedAction 列表设置为子操作的下拉菜单。
  • 添加了 GuidedDatePickerAction 小部件用于 DatePicker 功能
    • 使用年、月、日列选择日期,并具有可自定义的范围。
    • GuidedDatePickerAction.BuilderGuidedDatePickerAction 对象的构建器类。
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat):通过传递适当的三字符 String(例如 “YMD”“MDY”)设置所需的日期格式。或者,使用 datePickerFormat XML 属性。
v7 RecyclerView library 的变更

修订版本 23.1.1

2015 年 11 月

v7 recyclerview library 的变更:
  • 修复了在执行 ItemTouchHelper 实用类提供的滑动移除操作然后添加项目时发生的崩溃问题。(问题 190500
v7 preference library 的变更:
v17 Leanback Support library 的变更:
  • 修复了此库中的一些内部问题。
Design Support library 的变更:
  • NavigationView 类添加了 getHeaderView 方法。
  • 修复了在运行 Android 4.0 (API level 15) 及更低版本的设备上 FloatingActionButton 对象透明背景的问题。(问题 183315

修订版本 23.1.0

2015 年 10 月

v4 Support library 的变更:
  • NestedScrollView 小部件添加了 OnScrollChangedListener 接口支持。它允许您在滚动 X 或 Y 位置更改时接收回调。
  • 添加了 MediaButtonReceiver 类,用于将接收到的播放控制转发到管理 MediaSessionCompat 类的服务。MediaSessionCompat 类有一个构造函数,可以自动在清单中找到媒体按钮接收器。媒体按钮接收器是处理硬件或蓝牙控制的播放控制的关键部分。
v7 appcompat library 的变更:
  • 添加了 Material Design SeekbarImageButton 小部件。
  • 更新了 ImageView 小部件以支持着色功能。
  • 更新了 SwitchCompat 小部件的外观。
v7 mediarouter library 的变更:
  • MediaRouteChooserDialog 类添加了以下功能
    • 在发现媒体路由提供程序时显示加载页面。
    • 包含设备类型图标,以便更轻松地识别设备。
    • 根据当前应用中的使用频率对路由进行排序。
    • 支持横屏模式。
  • MediaRouteControllerDialog 类添加了以下功能
    • 识别屏幕投射并提供适当的描述。
    • 支持各种专辑封面大小和纵横比,并异步加载封面。
    • 根据应用的主色自动选择内容颜色。
    • 根据设备上可用的屏幕空间调整对话框布局。
    • 支持横屏模式。
v7 palette library 的变更:
  • 添加了 setRegion() 方法,以支持从 Bitmap 对象的特定区域提取颜色。
v7 recyclerview library 的变更:
  • 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);
      }
v7v14v17 Preference Support library 的变更
  • 移除了控制 EditText 对话框的 API。
v17 Leanback Support library 的变更:
  • 为支持库添加了 GuidedStepFragment 类的一个版本(继承自 android.support.v4.app.Fragment),并改进了动画和过渡。
  • 更新了 GuidedStepFragment 类,使其可以放置在现有内容之上。
  • 添加了对 SearchFragment 类中不同类型的搜索补全进行注解的功能。
  • VerticalGridFragment 类添加了错位滑动过渡支持。
Design Support library 的变更:
  • TextInputLayout 小部件添加了字符计数支持。
  • 通过添加 SCROLL_FLAG_SNAP 常量,为 AppBarLayout 类添加了边缘捕捉支持。当滚动结束时,如果视图仅部分可见,则视图会被捕捉并滚动到其最近的边缘。
  • 通过使用 app:actionLayout 属性或 MenuItemCompat.setActionView() 方法,为 NavigationView 类添加了对自定义视图的支持。
Custom Tabs Support library 的变更:
  • CustomTabsIntent 类添加了 enableUrlBarHiding() 方法。它允许客户端自定义在向下滚动时是否应自动隐藏 URL 栏。
  • CustomTabsSession 类添加了 setActionButton() 方法。它允许客户端在已启动的自定义选项卡中更改自定义操作按钮的图标。
  • CustomTabsCallback 类的 onNavigationEvent 方法添加了 TAB_SHOWNTAB_HIDDEN 常量作为新事件。

修订版本 23.0.1

2015 年 9 月

v7v14 Preference Support library 的变更
  • 添加了 Material Design 布局和样式文件。(问题 183376
v7 appcompat library 的变更:
  • 通过限制硬件层的使用仅限于 Android 4.1 (API level 16) 及更高版本,修复了 Fragment 类的崩溃问题。(问题 183896
  • 修复了活动通过使用 setSupportActionBar() 方法将 Toolbar 类设置为 ActionBar 后硬件按钮不起作用的问题。(问题 183334
  • 更新了 AppCompatDialogFragment 类,使其不再抛出 Windows feature must be requested before adding content 错误。(问题 183186
Design Support library 的变更:
Custom Tabs Support library 的变更:

修订版本 23

2015 年 8 月

添加了新的支持库

有关支持库变更的完整列表,请参阅支持库 API 差异报告

修订版本 22.2.1

2015 年 7 月

Design Support library 的变更:
  • 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 月

添加了Design Support library
  • 添加了 TextInputLayout,用于将 EditText 提示和错误文本显示为浮动标签。
  • 添加了 FloatingActionButton,用于将界面上的主要操作实现为浮动操作按钮,支持默认大小或迷你尺寸。
  • 添加了 Snackbar,用于在动画 Snackbar 中提供带有可选操作的轻量级反馈。
  • 添加了 TabLayout,用于实现固定和可滚动的选项卡,并易于与 ViewPager 集成。
  • 添加了 NavigationView,用于实现导航抽屉内容,包括通过菜单资源 inflated 菜单项的能力。
  • 添加了 CoordinatorLayout,一个通用布局,用于构建兄弟视图之间的依赖关系,并允许通过 CoordinatorLayout.Behavior 轻松实现组件之间的滚动响应。许多 Design Library 组件都依赖于作为 CoordinatorLayout 的子项。
  • 添加了 AppBarLayout,一个用于 Toolbar 和其他视图(例如 TabLayout)的容器,用于通过滚动出屏幕、在向下滚动时变为可见或在滚动出/入屏幕前折叠/展开来响应滚动事件。
  • 添加了 CollapsingToolbarLayout,用于控制 Toolbar 如何折叠。Toolbar 可以通过以下方式折叠:在折叠时将组件固定到屏幕顶部,引入组件(如 ImageView)的视差滚动,或在视图部分折叠时添加内容 scrim 颜色。
v4 support library 的变更:
v7 appcompat library 的变更

有关支持库变更的完整列表,请参阅支持库 API 差异报告

修订版本 22.1.0

2015 年 4 月

annotations library 的变更:
  • 添加了 Annotations 库,以提供对增强的代码检查的支持。注解作为元数据标签附加到变量、参数和返回值,以检查方法返回值、传递的参数以及局部变量和字段。
v4 support library 的变更:
v7 appcompat library 的变更
v17 leanback 库的变更
v7 recyclerview 库的变更
v8 renderscript 库的变更

修订版本 22

2015 年 3 月

v4 support library 的变更:
v7 appcompat library 的变更
v17 leanback 库的变更
v7 mediarouter library 的变更
v7 recyclerview 库的变更

修订版本 21.0.3

2014 年 12 月

v4 support library 的变更:

修订版本 21.0.2

2014 年 11 月

v4 support library 的变更:
v7 appcompat library 的变更
  • 添加了 PopupMenu 构造函数以支持新的弹出菜单。
  • Toolbar 类添加了折叠图标描述的支持。
  • 更新了 SearchView 控件以支持显示 commitIcon
  • Toolbar 类中移除了 buttonGravity 属性。
v7 cardview 库的变更
v7 recyclerview 库的变更
v17 leanback 库的变更
  • 添加了对生成 v4 代码片段的支持。
  • 更改了 CardView 的次要文本颜色。

修订版本 21.0.1

2014 年 11 月

添加了 multidex 支持库,以支持 Android 5.0 之前的多 Dalvik 可执行 (DEX) 文件,用于多 dex 文件支持。

修订版本 21

2014 年 10 月

v4 support library 的变更:
  • 添加了对运行 Android 5.0(API 级别 21)设备的 Fragment 过渡支持。请注意,过渡对运行 Android 4.4 及更低版本的设备没有影响。
  • 添加了 DocumentFile,以在使用文档树时简化从 File 的过渡。然而,与 Android 4.4(API 级别 19)中添加的平台 DocumentsContract API 相比,此类需要更多的处理开销。因此,当在 Android 4.4 及更高版本上运行时,您应切换到使用 DocumentsContract
v7 appcompat library 的变更
  • 添加了对 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 库

修订版本 20

2014 年 7 月

v4 支持库的变更

修订版本 19.1.0

2014 年 3 月

v4 支持库的变更
  • 添加了 SwipeRefreshLayout 类,使用户能够通过垂直滑动手势刷新视图内容。
  • 修复了导航抽屉的无障碍功能问题。
v7 appcompat 库的变更
  • 修复了操作栏的背景问题。

修订版本 19.0.1

2013 年 12 月

v4 支持库的变更
v7 mediarouter 库的变更
v8 renderscript 库的变更
  • 添加了 RenderScript thunking 层错误传播的支持。

修订版本 19

2013 年 10 月

v4 支持库的变更
v7 mediarouter 库的变更
  • 添加了对媒体播放队列、设置 HTTP 头部值和媒体播放时长的支持。
  • 添加了明确的开始、获取和结束会话操作,用于通过媒体路由器明确管理媒体播放会话。

修订版本 18

2013 年 7 月

v4 支持库的变更
新的 v7 appcompat 库
  • 添加了 ActionBar,允许在 Android 2.1(API 级别 7)及更高版本上实现操作栏用户界面设计模式。使用此类需要您通过扩展新的 ActionBarActivity 类来实现您的 Activity。
新的 v7 mediarouter 库

添加了一个新的 mediarouter 库,为 Google Cast 开发者预览版提供支持。v7 mediarouter 库 API 提供了一种控制从当前设备到外部屏幕、扬声器和其他目标设备的媒体频道和流的路由方式,兼容 Android 2.1(API 级别 7)及更高版本。更多信息请参阅v7 mediarouter 库

Support Library r18 中引入的 v7 mediarouter 库 API 在后续修订版本中可能会发生变化。目前,我们建议仅结合Google Cast 开发者预览版使用此库。

修订版本 13

2013 年 5 月

v4 支持库的变更
新的 v7 gridlayout 库
  • 添加了 GridLayout,以提供对 GridLayout 布局对象的支持。
  • 添加了 android.support.v7.widget.Space,可用于在 GridLayout 布局对象中创建空白区域。

修订版本 12

2013 年 2 月

v4 支持库的变更
  • 改进了 ViewPager 的交互行为。
  • 修复了可能导致 ViewPager 选择错误页面的错误。
  • 修复了在 ViewPager 布局期间使用 removeView() 方法的问题。
  • 修复了 SearchViewCompat 的问题,即使用返回按钮关闭不会清除搜索文本。此修复仅适用于主机 API 级别 14 及更高版本。

修订版本 11

2012 年 11 月

v4 支持库的变更

修订版本 10

2012 年 8 月

v4 支持库的变更
  • 通过对 NotificationCompat 的补充,添加了对 Android 4.1(API 级别 16)中引入的通知功能的支持。

修订版本 9

2012 年 6 月

v4 支持库的变更

修订版本 8

2012 年 4 月

v4 支持库的变更
  • 修复了 TaskStackBuilder 生成的 PendingIntent 对象的 Intent 标志问题。
  • 从 gridlayout 库项目中移除了未使用的属性,以确保该库可以在 API 级别 7 及更高版本上构建。
  • 为 gridlayout 库项目添加了 .classpath.project 文件。

修订版本 7

2012 年 3 月

v4 支持库的变更
  • 添加了 ShareCompat,它为社交分享应用程序提供了发送和接收内容的辅助类,包括用于将共享数据归因于源应用的新元数据。此类还提供了与 Android 4.0 中新增的 ShareActionProvider 的兼容集成。
  • 添加了 TaskStackBuilder,以提供对实现Android 设计导航指南的支持。这些新增内容包括在各个版本中实现操作栏“向上”按钮的方法。有关此模式的示例实现,请参阅 (/samples//AppNavigation) 中的 AppNavigation 示例。
  • 添加了 NotificationCompat.Builder,以提供 Android 3.0 的 Notification.Builder 辅助类的兼容实现,用于创建标准化的系统通知。

修订版本 6

2011 年 12 月

注意:支持库 API 的引用现已随框架引用提供,例如:android.support.v4.app

v4 支持库的变更
  • ViewPager 的变更
    • 添加了对 ViewPager 的额外装饰视图支持。装饰视图可以在 XML 布局中作为页面的子视图提供。
    • 添加了 PagerAdapter.getPageTitle(),用于为页面提供标题字符串,默认情况下每个页面都没有标题。
    • 添加了 PagerTitleStrip,一个非交互式标题带,可以作为 ViewPager 的子级添加。开发者可以提供文本外观和颜色,以及布局大小和重力信息。
    • 更新了 PagerAdapter 方法以采用 ViewGroup 对象而不是 View,以避免适配器实现中的类转换。
    • 更新了 ViewPager 以使用 Launcher 风格的滑动行为。
    • 用户界面交互和测试自动化错误修复。
  • 对片段的支持
  • 对无障碍功能 API 的支持

修订版本 5

2011 年 12 月

v4 支持库的变更

修订版本 4

2011 年 10 月

v4 支持库的变更
  • 添加了 EdgeEffectCompat 以支持 EdgeEffect
  • 添加了 LocalBroadcastManager,允许应用程序在不进行全局广播的情况下轻松在一个应用程序内注册和接收意图。
  • ViewCompat 中添加了支持,用于检查和设置 Android 2.3 及更高版本 View 的过度滚动模式。
  • 片段 API 的变更
    • 添加了新的 API 以控制新菜单的可见性。
    • 添加了自定义动画 API。
    • FragmentActivity 中添加了 API,以保留自定义的、非配置实例数据。
    • 各种错误修复。
  • 修复了 Loader 的错误,该错误导致在运行 Froyo 及更旧平台版本时取消 AsyncTask 时出现问题。支持代码现在使用其自己的 AsyncTask 版本,以在所有平台版本上保持相同的行为。

修订版本 3

2011 年 7 月

v4 支持库的变更
  • 添加了对 Fragment.SavedState 的支持
  • 添加了 MotionEventCompat 以支持较新的 MotionEvent API
  • 添加了 VelocityTrackerCompat 以支持较新的 VelocityTracker API
  • 添加了 ViewConfigurationCompat 以支持较新的 ViewConfiguration API
  • 所有新的 API(仅在支持库中可用)允许您创建具有水平分页的用户界面,允许用户在内容视图之间左右滑动。支持此功能的类包括:
    • ViewPager:一个 ViewGroup,用于管理用户可以滑动切换的子视图的布局。
    • PagerAdapter:一个适配器,用于使用代表每个页面的视图填充 ViewPager
    • FragmentPagerAdapterPagerAdapter 的扩展,用于在片段之间翻页。
    • FragmentStatePagerAdapterPagerAdapter 的扩展,用于在片段之间翻页,该扩展使用了库对 Fragment.SavedState 的支持。
新的 v13 支持库
  • 包括 FragmentPagerAdapterFragmentStatePagerAdapter 以支持水平分页。

    这些 API 与 v4 支持库中添加的 API 完全相同,但依赖于 Android 3.2 中的其他平台组件。如果您正在为 Android 3.2 及更高版本开发(v4 库中的所有其他 API 在 API 级别 13 中已可用),请使用此库而不是 v4。

修订版本 2

2011 年 5 月

v4 库的变更

修订版本 1

2011 年 3 月

随 v4 库一起首次发布。