支持库功能指南

注意:随着 Android 9.0 (API 级别 28) 的发布,支持库的新版本称为 AndroidX,它是 Jetpack 的一部分。AndroidX 库包含现有的支持库,还包括最新的 Jetpack 组件。

您可以继续使用支持库。历史工件(版本 27 及更早版本,并打包为 android.support.*)将在 Google Maven 上保持可用。但是,所有新的库开发都将在 AndroidX 库中进行。

建议在所有新项目中使用 AndroidX 库。您还应该考虑 迁移 现有项目到 AndroidX。

支持库提供广泛的类用于构建应用程序,从基本应用程序组件到用户界面小部件,再到媒体处理以及电视应用程序组件。许多类是向后兼容的实现,但其中一些是它们自己的新功能。

本文档概述了支持库中可用的重要功能类别,以及在构建应用程序时应了解的特定类。

有关如何将支持库代码添加到您的应用程序开发项目的信息,请参阅 支持库设置。有关如何在项目中包含特定支持库包的信息,请参阅 支持库包

应用程序组件

这些支持库类提供了重要核心平台功能的向后兼容实现。这些实现通常扩展了类的早期版本以处理在平台的较新版本中添加的新方法和功能。其中一些类是框架 API 的完整静态实现。

用户界面

这些支持库类提供了关键用户界面小部件和行为的实现,并帮助您在早期设备上创建更现代的应用程序界面。其中一些小部件仅通过支持库提供。

通用布局容器

这些支持类提供了用户界面容器,这些容器可以适应不同的设计用例。

  • RecyclerView - 创建用于显示长列表的布局,使用策略避免高内存消耗。此类允许您创建对更大数据集的有限窗口视图,从而避免在显示列表时消耗大量内存。有关使用 RecyclerView 的更多信息,请参阅 回收视图 指南。
  • ViewPager - 提供允许用户左右翻页数据的布局。
  • GridLayout - 提供一个布局,其子元素位于矩形网格中,支持任意跨越连续单元格和灵活的空间分配。此类提供了 GridLayout 类的向后兼容版本,该版本在 Android 4.0 (API 级别 14) 中引入。
  • PercentFrameLayoutPercentRelativeLayout - 提供支持其子视图和内容的百分比尺寸和边距的布局。

注意: ViewPagerRecyclerViewPercentFrameLayoutPercentRelativeLayout 类仅在支持库中可用。

特殊用途布局容器

这些支持类提供了特定布局模式的兼容实现,例如可以从屏幕边缘拉出的抽屉视图、滑动面板以及在列表中嵌套列表。

  • 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 及更高版本中引入的辅助功能,这些功能允许辅助功能服务观察和识别用户与屏幕上显示的项目的交互。

媒体播放

Android 支持库提供了 媒体路由器 功能的回传,适用于运行早于 Android 4.1(API 级别 16)的平台版本的设备。这些类允许控制跨连接的 Android 设备的媒体播放

  • MediaRouter - 使应用程序能够控制媒体通道和流从当前设备到外部扬声器和目标设备的路由。
  • MediaControllerCompat - 允许应用程序与正在进行的媒体会话进行交互。应用程序可以通过此机制提供媒体控制按钮,并将其他播放命令发送到会话。
  • MediaSessionCompat - 为媒体播放提供远程控制界面,允许与其他应用程序或单独设备中的媒体控制器、音量键、媒体按钮和传输控件进行交互。

电视应用程序

Android SDK 提供了库来支持大屏幕等外形尺寸及其相关的控制器。应用程序可以依赖适当的支持库来跨广泛的平台版本提供功能,并且可以在外部屏幕、扬声器和其他目标设备上提供内容。

可穿戴应用程序

Android SDK 提供了库来支持手表。这些库为应用程序提供功能,这些功能在用户佩戴手表时可供用户使用。

实用程序

Android 支持库提供了一些框架中没有内置的功能。这些库提供了一系列应用程序可以使用的实用程序。