Support Library 功能指南

注意:随着 Android 9.0(API 级别 28)的发布,Support Library 有了一个新版本,名为 AndroidX,它是 Jetpack 的一部分。AndroidX 库包含现有的 Support Library,也包含最新的 Jetpack 组件。

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

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

Support Library 提供了丰富的类,用于构建应用,涵盖基本应用组件、用户界面微件、媒体处理、TV 应用组件等。许多类都是向后兼容的实现,但其中一些本身就是新功能。

本文概述了 Support Library 中重要的功能类别,以及在构建应用时应了解的特定类。

有关如何将 Support Library 代码添加到应用开发项目的信息,请参阅Support Library 设置。有关如何在项目中包含特定的 Support Library 软件包的信息,请参阅 Support Library 软件包

应用组件

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

用户界面

这些 Support Library 类提供了关键用户界面微件和行为的实现,可帮助您在较早的设备上创建更现代的应用界面。其中一些微件只能通过 Support Library 使用。

通用布局容器

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

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

注意:ViewPagerRecyclerViewPercentFrameLayoutPercentRelativeLayout 类仅在 Support Library 中提供。

专用布局容器

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

  • DrawerLayout - 创建一个布局,允许将交互式抽屉式视图从视图窗口边缘拉出。
  • SlidingPaneLayout - 提供一种水平多窗格布局,可在应用用户界面的顶层使用,用于创建可平稳适应各种屏幕尺寸的布局,在较大屏幕上展开,在较小屏幕上折叠以适应空间。
  • NestedScrollView - 支持嵌套其他滚动视图的滚动布局,可让您创建包含额外子列表的列表。这些嵌套列表中的项目可以水平或垂直滚动,与父列表独立。
  • SwipeRefreshLayout - 提供一个布局,支持通过手指滑动操作刷新列表或其他布局中的数据。

视图、对话框和微件

Support Library 提供了许多类,用于在布局中显示内容和提供用户交互元素。

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

Material Design

Support Library 提供了许多类,用于实现 Material Design 用户界面建议。

  • CoordinatorLayout - 为包含 Material Design 组件和行为的布局提供顶级容器。此类还可用作与一个或多个子视图进行特定交互的容器。
  • AppBarLayout - 提供 Material Design 应用栏概念中许多滚动功能的实现。
  • FloatingActionButton - 创建一个浮动按钮,用于显示一种特殊的推广操作。这个 Material Design 用户界面元素显示为一个圆形图标,悬浮在应用用户界面上方。有关更多信息,请参阅添加浮动操作按钮
  • DrawerLayout - 创建一个导航抽屉——一个显示应用主导航菜单的 UI 面板。当用户从屏幕左边缘滑动手指或点按应用栏中的抽屉图标时,它就会出现。有关更多信息,请参阅创建导航抽屉
  • TabLayout - 提供用于显示分页布局的布局。此微件设计用于与 ViewPager 类一起使用。
  • Snackbar - 提供一个微件,用于使用Snackbar 弹窗显示关于操作的轻量级反馈。

图形

android.support.graphics.drawable 软件包支持矢量 Drawable。通过使用矢量 Drawable,您可以用 XML 中定义的单个矢量图形替换多个 PNG 资源。

VectorDrawableCompat 支持 API 级别 9 及更高版本上的矢量 Drawable。AnimatedVectorDrawableCompat 支持 API 级别 11 及更高版本上的动画矢量 Drawable。

无障碍功能

android.support.v4.view.accessibility 软件包提供了兼容类,用于实现 API 级别 14 及更高版本中引入的无障碍功能,这些功能允许无障碍服务观察和识别用户与屏幕上显示的项目之间的交互。

媒体播放

Android Support Library 将媒体路由器功能移植到运行 Android 4.1(API 级别 16)之前平台版本的设备上。这些类允许控制连接的 Android 设备上的媒体播放。

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

TV 应用

Android SDK 提供了库来支持大屏及其关联控制器等外形规格。应用可以依赖相应的 Support Library 在广泛的平台版本中提供功能,并可以在外部屏幕、扬声器和其他目标设备上提供内容。

Wear 应用

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

实用工具

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