注意:随着 Android 9.0(API 级别 28)的发布,支持库出现了一个新版本,称为 AndroidX,它是 Jetpack 的一部分。AndroidX 库包含现有的支持库,还包括最新的 Jetpack 组件。
您可以继续使用支持库。历史工件(版本 27 及更早版本,并打包为 android.support.*
)将保留在 Google Maven 上。但是,所有新的库开发都将在 AndroidX 库中进行。
我们建议在所有新项目中使用 AndroidX 库。您还应该考虑 迁移 现有项目到 AndroidX。
支持库提供了广泛的类,用于构建应用,从基本的应用组件到用户界面小部件,再到媒体处理和电视应用组件。许多类都是向后兼容的实现,但有些类本身就是新功能。
本文档概述了支持库中提供的重要的功能类别,以及在构建应用时应了解的特定类。
有关如何将支持库代码添加到您的应用开发项目的信息,请参阅 支持库设置。有关如何在项目中包含特定支持库包的信息,请参阅 支持库包。
应用组件
这些支持库类提供了重要核心平台功能的向后兼容实现。这些实现通常扩展早期版本的类以处理在平台的较新版本中添加的新方法和功能。其中一些类是框架 API 的完整静态实现。
- 活动
ActivityCompat
- 包括对活动最新关键功能的向后兼容实现,例如 运行时权限 和动画过渡。FragmentActivity
- 为活动使用支持库版本的Fragment
和Loader
API 提供向后兼容实现。AppCompatActivity
- 为早期设备提供材质颜色主题、小部件着色和 应用栏 支持。使用此类需要您使用Theme.AppCompat
主题以实现一致的视觉效果。
Fragment
- 提供框架Fragment
类的独立实现。此类必须与FragmentActivity
一起使用。ContextCompat
- 支持在Context
类的较新版本中引入的功能,包括权限支持、文件访问和颜色信息。IntentCompat
- 支持在Intent
类的较新版本中引入的功能,包括用于选择和启动特定活动的方法。Loader
- 提供框架Loader
类的静态实现,并且是AsyncTaskLoader
和CursorLoader
支持类的基类。Preference
- 此类及其子类以向后兼容的方式提供应用设置用户界面的实现。ContentResolverCompat
- 提供对ContentResolver
类中较新版本引入的功能的支持,特别是支持取消正在进行的查询的query()
方法。
用户界面
这些支持库类提供了关键用户界面窗口小部件和行为的实现,并帮助您在较旧的设备上创建更现代的应用程序界面。其中一些窗口小部件仅通过支持库才能使用。
通用布局容器
这些支持类提供可以适应不同设计用例的用户界面容器。
RecyclerView
- 创建一个用于显示长列表的布局,使用一种策略来避免高内存消耗。此类允许您创建对更大数据集的有限窗口视图,从而避免在显示列表时消耗大量内存。有关使用RecyclerView
的更多信息,请参阅 Recycler View 指南。ViewPager
- 提供一个布局,允许用户左右翻页浏览数据。GridLayout
- 提供一个布局,其子项位于矩形网格中,支持任意跨度连续单元格和灵活的空间分配。此类提供了 Android 4.0(API 级别 14)中引入的GridLayout
类的向后兼容版本。PercentFrameLayout
和PercentRelativeLayout
- 提供支持其子视图和内容的基于百分比的尺寸和边距的布局。
注意:ViewPager
、RecyclerView
、PercentFrameLayout
和 PercentRelativeLayout
类仅可从支持库中获得。
专用布局容器
这些支持类提供了特定布局模式的兼容实现,例如可以从屏幕边缘拉出的抽屉视图、滑动面板以及列表中的嵌套列表。
DrawerLayout
- 创建一个布局,允许交互式 抽屉视图 从视图窗口的边缘拉出。SlidingPaneLayout
- 提供一个水平的多面板布局,用于在应用程序用户界面的顶层使用,用于创建可以在许多不同屏幕尺寸上平滑适应的布局,在较大屏幕上展开并在较小屏幕上折叠以适应。NestedScrollView
- 一个滚动布局,支持嵌套其他滚动视图,允许您创建列表,其中项目包含附加的子列表。这些嵌套列表可以包含水平或垂直滚动的项目,与父列表分开。SwipeRefreshLayout
- 提供一个布局来支持使用手指滑动手势刷新列表或其他布局的数据。
视图、对话框和小部件
支持库提供许多用于在布局中显示内容和提供用户交互元素的类。
CardView
- 一个支持库自定义类,用于创建 Material Design 风格的显示卡片。此类基于具有圆角和投影阴影的 FrameLayout。AppCompatDialogFragment
- 通过扩展DialogFragment
并使用AppCompatDialog
提供一致风格的对话框。NotificationCompat
- 以向后兼容的方式为较新的通知样式提供支持。SearchView
- 提供一个类,供用户输入搜索查询并向搜索提供程序提交请求,主要用于应用程序栏中。
Material Design
支持库提供许多用于实现 Material Design 用户界面建议的类。
CoordinatorLayout
- 为包含 Material Design 组件和行为的布局提供顶级容器。此类也可用于与一个或多个子视图进行特定交互。AppBarLayout
- 提供 Material Design 的 应用栏概念 的许多滚动功能的实现。FloatingActionButton
- 创建浮动按钮以显示一种特殊类型的推广操作。此 Material Design 用户界面元素显示为一个浮动在应用程序用户界面上方的圆形图标。有关更多信息,请参阅 添加浮动操作按钮。DrawerLayout
- 创建导航抽屉 — 一个显示应用程序主导航菜单的 UI 面板。当用户从屏幕左侧边缘滑动手指或点击应用程序栏中的抽屉图标时,它会显示。有关更多信息,请参阅 创建导航抽屉。TabLayout
- 提供一个用于显示选项卡页面的布局。此窗口小部件设计用于与ViewPager
类一起使用。Snackbar
- 提供一个窗口小部件,用于使用 snackbar 弹出窗口 显示有关操作的轻量级反馈。
图形
android.support.graphics.drawable
包提供对 矢量绘图 的支持。通过使用矢量绘图,您可以用一个在 XML 中定义的矢量图形替换多个 PNG 资源。
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
- 为媒体播放提供远程控制接口,支持与媒体控制器、音量键、媒体按钮以及其他应用程序或单独设备上的传输控制进行交互。
电视应用
Android SDK 提供库来支持大屏幕等外形尺寸及其相关的控制器。应用程序可以依赖适当的支持库,以跨广泛的平台版本提供功能,并可以在外部屏幕、扬声器和其他目标设备上提供内容。
可穿戴应用
Android SDK 提供库来支持手表。这些库为应用程序提供功能,无论何时用户佩戴手表,这些功能都可供用户使用。
实用程序
Android 支持库提供框架中未内置的许多功能。这些库提供了一系列应用程序可以使用的实用程序。