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