The Android Developer Challenge is back! Submit your idea before December 2.

支持库功能指南

注意:Android 9.0(API 级别 28)发布后,新版支持库 AndroidX 也随之诞生,它属于 Jetpack。除了现有的支持库,AndroidX 库还包含最新的 Jetpack 组件。

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

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

支持库提供了各种用于构建应用的类,从基础应用组件到界面微件、媒体处理,再到 TV 应用组件。许多类都是向后兼容的实现,但其中一些本身就是新功能。

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

要了解如何将支持库代码添加到应用开发项目,请参阅支持库设置。要了解如何在项目中包含特定的支持库软件包,请参阅支持库软件包

应用组件

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

界面

这些支持库类提供关键界面微件和行为的实现,并帮助您在较低版本的设备上创建更现代的应用界面。其中一些微件只能通过支持库获取。

通用布局容器

这些支持类提供了可针对不同设计用例进行调整的界面容器。

  • RecyclerView - 创建用于显示长列表的布局,并通过策略避免过高的内存消耗。借助此类,您可以针对较大的数据集创建有限的窗口视图,从而避免在显示列表时消耗大量内存。要详细了解如何使用 RecyclerView,请参阅 Recycler 视图指南。
  • ViewPager - 提供一种布局,允许用户左右翻阅数据页面。
  • GridLayout - 提供一种布局,其子级项位于矩形网格中,支持任意跨度的连续单元格和灵活的空间分布。此类提供了在 Android 4.0(API 级别 14)中引入的 GridLayout 类的向后兼容版本。
  • PercentFrameLayoutPercentRelativeLayout - 提供各种布局,支持适用于其子视图和内容的基于百分比的尺寸和边距。

注意ViewPagerRecyclerViewPercentFrameLayoutPercentRelativeLayout 类只能从支持库中获取。

专用布局容器

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

  • DrawerLayout - 创建一种布局,允许从视图窗口的边缘拉出互动式的抽屉导航栏视图
  • SlidingPaneLayout - 提供一种水平的多窗格布局,可以在应用界面的顶层用于创建各种布局,以便顺畅地适应多种不同屏幕尺寸、在较大屏幕中展开以及通过折叠适应较小屏幕。
  • NestedScrollView - 支持嵌套其他滚动视图的滚动布局,让您能够创建各种列表,并且列表项包含其他子列表。这些嵌套列表可以包含独立于父列表横向或纵向滚动的项目。
  • SwipeRefreshLayout - 提供支持通过手指滑动手势刷新列表数据的布局或其他布局。

视图、对话框和微件

支持库提供了许多用于在布局中显示内容以及提供用户互动元素的类。

  • CardView - 一种支持库的自定义类,用于创建 Material Design 样式的显示卡片。此类基于包含圆角和阴影的 FrameLayout。
  • AppCompatDialogFragment - 通过扩展 DialogFragment 以及使用 AppCompatDialog 提供样式一致的对话框。
  • NotificationCompat - 以向后兼容的方式为较新的通知样式提供支持。
  • SearchView - 提供一个类,以供用户输入搜索查询并向搜索提供程序提交请求,主要用于在应用栏中使用。

Material Design

支持库提供了许多用于实现 Material Design 界面建议的类。其中许多类都是在 android.support.design 软件包中提供的。

  • CoordinatorLayout - 为整合 Material Design 组件和行为的布局提供顶级容器。此类还可以用作与一个或多个子视图进行特定交互的容器。
  • AppBarLayout - 提供 Material Design 的应用栏概念的许多滚动功能的实现。
  • FloatingActionButton - 创建浮动按钮,用于显示您希望用户执行的特殊类型操作。此 Material Design 界面元素显示为浮在应用界面上方的圆形图标。有关详情,请参阅添加浮动操作按钮
  • DrawerLayout - 创建抽屉式导航栏,即显示应用的主导航菜单的界面面板。当用户从屏幕左边缘滑动手指或点按应用栏中的抽屉式导航栏图标时,此导航栏就会显示。有关详情,请参阅创建抽屉式导航栏
  • TabLayout - 提供一种显示标签式页面的布局。此微件应与 ViewPager 类一起使用。
  • 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 - 提供针对媒体播放的远程控制界面,以实现与其他应用或单独设备中的媒体控制器、音量键、媒体按钮和传输控件进行交互。

TV 应用

Android SDK 提供了各种库以支持大屏幕等设备类型以及相关的控制器。应用可以通过相应的支持库为各种平台版本提供功能,并且可以在外部屏幕、扬声器和其他目标设备中提供内容。

Wear 应用

Android SDK 提供了支持手表的库。这些库为应用提供了当用户佩戴手表时可用的功能。

实用工具

Android 支持库提供了许多未内置于框架的功能。这些库提供了一系列应用可以使用的实用工具。