微件是自定义主屏幕的一个重要方面。您可以将微件想象成“一目了然”的视图,它们让最重要的应用数据和功能一览无余,从用户的主屏幕即可进行访问。用户可以在其主屏幕面板上移动 widget,并且如果支持,还可以调整 widget 的大小,以根据自己的偏好调整 widget 中的信息量。
本文档介绍了您可以创建的不同类型的微件以及要遵循的设计原则。如需使用 Remote View API 和 XML 布局构建应用 widget,请参阅创建简单的 widget。如需使用 Kotlin 和 Compose 样式 API 构建 widget,请参阅 Jetpack Glance。
微件类型
在规划 widget 时,请考虑要构建哪种类型的 widget。widget 通常属于以下某个类别:
信息微件
信息微件通常会显示关键信息元素,并跟踪该信息随时间变化的情况。信息微件的示例包括天气微件、时钟微件或体育比分跟踪微件。点按信息微件通常会启动关联的应用,并打开微件信息的详细视图。
集合微件
集合 widget 专门用于显示同一类型的多个元素,例如图库应用中的一组图片、新闻应用中的一组文章,或通讯应用中的一组电子邮件或消息。集合 widget 可以垂直滚动。
集合 widget 通常侧重于以下用例:
- 浏览合集。
- 在关联的应用中打开相应集合元素的详情视图。
- 与元素互动(例如将其标记为已完成),并支持 Android 12(API 级别 31)中的复合按钮。
控制微件
控制微件的主要用途是显示常用功能,以便用户可直接从主屏幕触发这些功能,而不必先打开应用。您可以将其视为应用的遥控器。控制微件的示例包括家居控制微件,可让用户开启或关闭住宅中的灯具。
与控制 widget 互动可能会在应用中打开关联的详情视图。具体取决于控制 widget 的函数是否输出任何数据(例如,在使用搜索 widget 时)。
混合微件
虽然有些微件代表前面部分中的信息、集合或控件类型之一,但许多微件是将不同类型的元素组合在一起的混合微件。例如,音乐播放器微件主要是一个控制微件,但它还会像信息微件一样向用户显示当前正在播放的曲目。
在规划 widget 时,请围绕其中一种基本类型进行设计,并根据需要添加其他类型的元素。
将 widget 与 Google 助理集成
Google 助理可以显示任何类型的 widget 来响应用户语音指令。您可以将 widget 配置为执行应用操作,让用户能够在 Android 和 Android Auto 等 Google 助理平台上接收快速解答和互动式应用体验。如需详细了解 Google 助理的微件执行方式,请参阅将与应用有关的 Action 与 Android 微件集成。
微件限制
虽然您可以将微件理解为“迷你应用”,但在设计微件之前,务必了解一些限制。
手势
由于 widget 位于主屏幕上,因此它们必须与在主屏幕上建立的导航共存。与全屏应用相比,这会限制 widget 中可用的手势支持。虽然应用可能会允许用户在屏幕之间水平导航,但该手势已在主屏幕上用于在主屏幕之间导航。
只能对微件使用以下手势:轻触和垂直滑动。
元素
鉴于微件可用的手势存在限制,一些依赖于受限手势的界面构建基块不适用于微件。如需查看支持的构建基块的完整列表并详细了解布局限制,请参阅创建微件布局和提供灵活的微件布局。
设计准则
微件内容
借助微件,您可以通过“宣传”应用中提供的新有趣内容来吸引用户使用您的应用。
就像报纸头版上的宣传语一样,微件应整合和浓缩应用的信息,然后提供与应用中更丰富的详情的连接;换句话说:微件是信息“零食”,而应用则是“大餐”。确保应用显示的有关信息项的详情比微件显示的信息要多。
微件导航
除了纯粹的信息内容之外,还可以考虑让 widget 提供指向应用中常用区域的导航链接。这样可以让用户更快地完成任务,并将应用的功能范围扩展到主屏幕。
适合在微件上显示的导航链接的合适候选对象如下:
生成性功能:这些功能可让用户为应用创建新内容,如创建新文档或新消息。
在顶层打开应用:点按信息元素通常会将用户导航到较低层级的详情屏幕。提供对应用顶层的访问可以提高导航的灵活性,并且可以取代用户用来从主屏幕导航到应用的专用应用快捷方式。此外,将应用图标用于此功能还可以为微件提供明确的标识,以防您显示的数据含糊不清。
微件大小调整
轻触并按住某个可调整大小的 widget,然后释放它,会使该 widget 进入调整大小模式。用户可以使用拖动手柄或微件的角设置首选大小。
大小调整允许用户在主屏幕放置网格的限制范围内调整微件的高度和宽度。您可以决定微件是可以自由调整大小,还是仅限于在水平或垂直方向上改变大小。如果 widget 本身是固定大小,则无需支持调整大小。
允许用户调整微件的大小具有以下重要优势:
- 他们可以微调要在每个微件上看到多少信息。
- 他们可以更好地改变其主屏幕面板上的微件和快捷方式的布局。
根据要创建的 widget 类型为 widget 规划大小调整策略。基于列表或网格的集合微件通常很简单,因为调整微件的大小只会扩展或收缩垂直滚动区域。无论微件有多大,用户仍可将所有信息元素滚动到视图中。
信息微件需要多一点实操规划,因为它们不可滚动,并且给定的大小必须容纳得下所有内容。您必须将微件的内容和布局动态调整到用户通过大小调整操作定义的大小。
在以下示例中,用户可以通过 3 个步骤调整天气微件的大小,并随着微件的扩展在当前位置显示更丰富的天气信息。
针对各种微件大小,确定显示多少应用信息。如果微件较小,应集中显示基本信息,然后随着微件在水平和垂直方向上扩展而添加相关信息。
布局注意事项
您往往倾向于根据您开发时用到的设备的放置网格尺寸来布置微件。这是一个有用的初始近似值,但请注意以下几点:
- 跨“大小范围”(而不是可变的网格尺寸)规划 widget 大小调整策略,即可获得最可靠的结果。
- 单元格的数量、大小和间距可能因设备的不同而有很大的差异。因此,微件一定要非常灵活,能够容纳比预期更多或更少的空间。
- 当用户调整微件的大小时,系统会以一个 dp 大小范围(微件可以在此范围内自行重新绘制)做出响应。
- 从 Android 12 开始,您可以提供更精细的尺寸属性和更灵活的布局。其中包括:
- 指定微件大小限制。例如,您可以在网格单元格中指定 widget 的目标大小以及可能的最大大小。
- 提供自适应布局,该布局会根据 widget 的大小而变化。
- 提供确切尺寸的布局,使启动器能够根据纵向和横向模式、手机或可折叠设备的 4 种尺寸来做出响应。
- 使用更新后的指南和新 API 确定微件的适当尺寸。
用户配置的微件
有时,用户需要先设置微件,然后它才能发挥作用。 以电子邮件微件为例,用户需要先选择邮件文件夹,然后才能显示收件箱;再以静态照片微件为例,用户必须指定要从图库中显示的图片。用户将 Android 微件放到主屏幕上之后,微件会立即显示其配置选项。
微件设计核对清单
- 在微件上重点显示小部分一目了然的信息。在应用中扩展信息。
- 根据用途选择合适的微件类型。
- 规划微件的内容应如何适应不同的大小。
- 通过确保布局能够拉伸和收缩,使微件布局与屏幕方向和设备无关。
- 考虑您的微件是否需要进行任何其他配置。