Android 12(API 级别 31)重新设计了现有的 小部件 API,以改善平台和启动器中的用户和开发者体验。使用本指南了解如何确保您的 Widget 与 Android 12 兼容,以及作为刷新现有 Widget 的 API 参考。
确保您的 Widget 与 Android 12 兼容
Android 12 中的小部件具有圆角。当在运行 Android 12 或更高版本的设备上使用应用小部件时,启动器会自动识别小部件的背景并将其裁剪为圆角。
在这种情况下,您的 Widget 在以下任一情况下可能无法正确显示
Widget 包含角部内容:这可能会导致角部区域的一些内容被裁剪。
Widget 使用不受裁剪影响的背景。这包括透明背景、空视图或布局,或任何其他不易裁剪的特殊背景。系统可能无法正确识别要使用的背景。
如果您的 Widget 会受到此更改的影响,我们建议使用圆角对其进行刷新(如以下部分所述),以确保其正确显示。
使用示例
要查看所有这些 API 的实际应用,请查看我们的 示例列表 Widget。
实现圆角
Android 12 引入了 system_app_widget_background_radius
和 system_app_widget_inner_radius
系统参数来设置 Widget 圆角的半径。
1 Widget 的角。
2 Widget 内视图的角。
有关详细信息,请参阅 实现圆角。
添加设备主题
从 Android 12 开始,Widget 可以使用设备主题颜色用于按钮、背景和其他组件,包括浅色和深色主题。这使得在不同 Widget 之间实现更平滑的过渡和一致性。
有关更多信息,请参阅 添加设备主题。
简化 Widget 个性化
如果使用 configure
属性的 appwidget-provider
指定配置活动,则应用小部件主机会在用户将小部件添加到主屏幕后立即启动该活动。
Android 12 添加了新的选项,让您可以为用户提供更好的配置体验。有关详细信息,请参阅 启用用户配置 Widget。
添加新的复合按钮
Android 12 添加了对使用以下现有组件的状态行为的新支持
Widget 仍然是无状态的。您的应用必须存储状态并注册状态更改事件。
有关详细信息,请参阅 状态行为支持。
使用改进的 Widget 大小和布局 API
从 Android 12 开始,您可以通过指定其他 Widget 大小约束以及提供响应式布局和精确布局,利用更精细的大小属性和更灵活的布局。
详情请参阅 提供灵活的 Widget 布局。
提升应用的 Widget 选择器体验
Android 12 允许您通过添加动态 Widget 预览和 Widget 描述来提升应用的 Widget 选择器体验。有关详细信息,请参阅 向 Widget 选择器添加可缩放的 Widget 预览 和 为您的 Widget 添加描述。
启用更流畅的过渡
从 Android 12 开始,当用户从 Widget 启动您的应用时,启动器会提供更流畅的过渡。有关详细信息,请参阅 启用更流畅的过渡。
使用简化的 RemoteViews
集合
Android 12 添加了 setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
方法,该方法允许您的应用在填充 ListView
时直接传递集合。以前,在使用 ListView
时,必须实现并声明 RemoteViewsService
以返回 RemoteViewsFactory
。
有关详细信息,请参阅 使用 RemoteViews
集合。
使用 RemoteViews
的运行时修改
Android 12 添加了几个 RemoteViews
方法,允许对 RemoteViews
属性进行运行时修改。有关添加方法的完整列表,请参阅 RemoteViews
API 参考。
有关详细信息,请参阅 使用 RemoteViews
的运行时修改。