注意:Android 9.0(API 级别 28)发布后,新版支持库 AndroidX 也随之诞生,它属于 Jetpack 的一部分。除了现有的支持库,AndroidX 库还包含最新的 Jetpack 组件。
您可以继续使用此支持库。以往的工件(这里指的是打包为 android.support.*
的 27 版及更早版本)在 Google Maven 中仍然可用。不过,所有新库的开发都将在 AndroidX 库中进行。
我们建议在所有新项目中使用 AndroidX 库。您还应该考虑将现有项目迁移到 AndroidX。
支持库提供了各种用于构建应用的类,从基本应用组件、界面微件、媒体处理到 TV 应用组件,不一而足。许多类都是向后兼容的实现,但其中一些本身就是新功能。
本文档简要介绍了支持库中提供的重要功能类别,以及您在构建应用时应了解的特定类。
如需了解如何将支持库代码添加到应用开发项目,请参阅支持库设置。如需了解如何在项目中添加特定的支持库软件包,请参阅 支持库软件包。
应用组件
这些支持库类提供重要的核心平台功能的向后兼容实现。这些实现通常会扩展类的早期版本,以处理在较新版本的平台中添加的新方法和功能。其中一些类是框架 API 的完整静态实现。
- activity
ActivityCompat
- 包含对最近的关键 activity 功能(例如 运行时权限和动画过渡)的向后兼容实现。FragmentActivity
- 提供 Activity 的向后兼容实现,以使用Fragment
和Loader
API 的支持库版本。AppCompatActivity
- 为较低版本的设备提供 Material 颜色主题、微件色调调节和应用栏支持。使用此类要求您使用Theme.AppCompat
主题以实现一致的视觉呈现效果。
Fragment
- 提供框架Fragment
类的独立实现。此类必须与FragmentActivity
搭配使用。ContextCompat
- 为较新版本的Context
类中引入的功能提供支持,包括权限支持、文件访问权限和颜色信息。IntentCompat
- 支持较新版本的Intent
类中引入的功能,包括用于选择和启动特定 Activity 的方法。Loader
- 提供框架Loader
类的静态实现,并且是AsyncTaskLoader
和CursorLoader
支持类的基类。Preference
- 此类及其子类以向后兼容的方式提供应用设置界面的实现。ContentResolverCompat
- 支持较新版本的ContentResolver
类中引入的功能,特别是支持取消正在进行的查询的query()
方法。
界面
这些支持库类提供关键界面 widget 和行为的实现,并帮助您在较低版本的设备上创建更现代的应用界面。其中一些 widget 只能通过支持库获取。
通用布局容器
这些支持类提供了可针对不同设计用例进行调整的界面容器。
RecyclerView
- 创建用于显示长列表的布局,并通过策略避免过高的内存消耗。 借助此类,您可以针对较大的数据集创建有限的窗口视图,从而避免在显示列表时消耗大量内存。 如需详细了解如何使用RecyclerView
,请参阅 Recycler 视图指南。ViewPager
- 提供一种布局,允许用户左右翻阅数据页面。GridLayout
- 提供一种子项位于矩形网格中的布局,支持任意跨度的连续单元格和灵活的空间分布。此类提供了在 Android 4.0(API 级别 14)中引入的GridLayout
类的向后兼容版本。PercentFrameLayout
和PercentRelativeLayout
- 提供相应的布局,该布局支持子视图和内容的基于百分比的尺寸和外边距。
注意:ViewPager
、RecyclerView
、PercentFrameLayout
和 PercentRelativeLayout
类只能从支持库中获取。
专用布局容器
这些支持类提供特定布局模式的兼容实现,例如可以从屏幕边缘拉出的抽屉式导航栏视图、滑动面板以及在列表中嵌套列表。
DrawerLayout
- 创建一种布局,允许从视图窗口的边缘拉出交互式 抽屉式导航栏视图。SlidingPaneLayout
- 提供一种水平的多窗格布局,可在应用界面的顶层用于创建各种布局,这些布局可以顺畅地适应许多不同的屏幕尺寸、在较大的屏幕上展开即可及通过收起来适应较小的屏幕。NestedScrollView
- 一种滚动布局,支持嵌套其他滚动视图,可让您创建列表项(其项中包含额外的子列表)。这些嵌套列表可以包含独立于父列表横向或纵向滚动的项。SwipeRefreshLayout
- 提供一种布局,支持通过手指滑动手势刷新列表或其他布局的数据。
视图、对话框和 widget
这些支持库提供了许多用于在布局中显示内容和提供用户互动元素的类。
CardView
- 一个支持库的自定义类,用于创建 Material Design 样式的显示卡片。此类基于具有圆角和阴影的 FrameLayout。AppCompatDialogFragment
- 通过扩展DialogFragment
和使用AppCompatDialog
提供样式一致的对话框。NotificationCompat
- 以向后兼容的方式为较新的通知样式提供支持。SearchView
- 提供一个类,以供用户输入搜索查询并向搜索提供程序提交请求,主要用于在应用栏中使用。
Material Design
支持库提供了许多用于实现 Material Design 界面建议的类。
CoordinatorLayout
- 为整合 Material Design 组件和行为的布局提供顶级容器。此类还可以用作与一个或多个子视图进行特定交互的容器。AppBarLayout
- 提供 Material Design 应用栏概念的许多滚动功能的实现。FloatingActionButton
- 创建浮动按钮,用于显示您希望用户执行的特殊类型操作。此 Material Design 界面元素显示为悬浮在应用界面上方的圆圈图标。如需了解详情,请参阅添加悬浮操作按钮。DrawerLayout
- 创建抽屉式导航栏,即显示应用的主导航菜单的界面面板。当用户从屏幕左边缘滑动手指或点按应用栏中的抽屉式导航栏图标时,此导航栏就会显示。 如需了解详情,请参阅创建抽屉式导航栏。TabLayout
- 提供一种用于显示标签页式页面的布局。此 widget 可与ViewPager
类一起使用。Snackbar
- 提供一个 widget,用于使用信息提示控件弹出式窗口显示有关操作的精简反馈。
图形
android.support.graphics.drawable
软件包提供对矢量可绘制对象的支持。通过使用矢量可绘制对象,您可以将多个 PNG 资源替换为在 XML 中定义的单个矢量图形。
VectorDrawableCompat
为 API 级别 9 及更高级别上的矢量可绘制对象提供支持。AnimatedVectorDrawableCompat
在 API 级别 11 及更高级别上提供对动画矢量可绘制对象的支持。
无障碍功能
android.support.v4.view.accessibility
软件包提供了兼容性类,用于实现 API 级别 14 及更高版本中引入的无障碍功能,使无障碍服务能够观察和识别用户与屏幕上显示的项目的互动。
ExploreByTouchHelper
- 在表示类似于视图的逻辑项集合的自定义 View 中提供无障碍功能支持。
媒体播放
Android 支持库可将媒体路由器功能向后移植到搭载 Android 4.1(API 级别 16)之前平台版本的设备。这些类允许在已连接的 Android 设备上控制媒体播放:
MediaRouter
- 允许应用控制从当前设备到外部扬声器和目标设备的媒体渠道和流的路由。MediaControllerCompat
- 允许应用与进行中的媒体会话进行交互。应用可以通过此机制提供媒体控制按钮,并将其他播放命令发送到会话。MediaSessionCompat
- 提供用于播放媒体的远程控制界面,让用户能够与其他应用或独立设备上的媒体控制器、音量键、媒体按钮和传输控件进行交互。
TV 应用
Android SDK 提供了一些库来支持大屏设备及其关联控制器等外形规格。应用可以依赖相应的支持库为各种平台版本提供功能,并且可以在外部屏幕、扬声器和其他目标设备上提供内容。
Wear 应用
Android SDK 提供了支持手表的库。这些库为应用提供了当用户佩戴手表时可用的功能。
- android.support.wear.* 软件包
实用工具
Android 支持库提供了许多未内置于框架的功能。这些库提供了一系列应用可以使用的实用程序。