Android 12 (niveau d'API 31) réorganise l'API Widgets existante pour améliorer l'expérience des utilisateurs et des développeurs sur la plate-forme et les lanceurs d'applications. Utilisez ce guide pour savoir comment vous assurer que votre widget est compatible avec Android 12. Il peut également servir de référence pour les API permettant d'actualiser votre widget existant.
Vérifier que votre widget est compatible avec Android 12
Les widgets d'Android 12 ont des coins arrondis. Lorsqu'un widget d'application est utilisé sur un appareil équipé d'Android 12 ou version ultérieure, le lanceur identifie automatiquement l'arrière-plan du widget et le recadre pour que ses coins soient arrondis.
Dans ce scénario, votre widget risque de ne pas s'afficher correctement dans l'une des conditions suivantes:
Le widget comporte du contenu dans les coins: cela peut entraîner le recadrage de certains contenus dans les angles.
Le widget utilise un arrière-plan qui n'est pas sensible au recadrage. Cela inclut un arrière-plan transparent, des vues ou des mises en page vides, ou tout autre type d'arrière-plan spécial non sujet au recadrage. Le système peut ne pas être en mesure d'identifier correctement l'arrière-plan à utiliser.
Si votre widget est concerné par cette modification, nous vous recommandons de l'actualiser avec des angles arrondis (comme décrit dans la section suivante) pour qu'il s'affiche correctement.
Utiliser l'exemple
Pour voir toutes ces API en action, consultez notre widget de liste d'exemples.
Implémenter des angles arrondis
Android 12 introduit les paramètres système system_app_widget_background_radius
et system_app_widget_inner_radius
pour définir les rayons des coins arrondis de votre widget.
1 Coin du widget
2 Angle d'une vue dans le widget.
Pour en savoir plus, consultez Implémenter des angles arrondis.
Ajouter un thème d'appareil
À partir d'Android 12, un widget peut utiliser les couleurs du thème de l'appareil pour les boutons, les arrière-plans et d'autres composants, y compris les thèmes clair et sombre. Cela permet des transitions plus fluides et une cohérence entre les différents widgets.
Pour en savoir plus, consultez Ajouter une thématisation par appareil.
Faciliter la personnalisation des widgets
Si vous spécifiez une activité de configuration avec l'attribut configure
de appwidget-provider
, l'hôte du widget d'application lance cette activité immédiatement après qu'un utilisateur a ajouté le widget à son écran d'accueil.
Android 12 ajoute de nouvelles options pour vous permettre d'offrir une meilleure expérience de configuration aux utilisateurs. Pour en savoir plus, consultez la section Autoriser les utilisateurs à configurer des widgets.
Ajouter des boutons composés
Android 12 prend en charge le comportement avec état à l'aide des composants existants suivants:
Le widget est toujours sans état. Votre application doit stocker l'état et s'enregistrer aux événements de changement d'état.
Pour en savoir plus, consultez Compatibilité avec le comportement avec état.
Utiliser des API améliorées pour les tailles et les mises en page de widgets
À partir d'Android 12, vous pouvez bénéficier d'attributs de taille plus précis et de mises en page plus flexibles, en spécifiant des contraintes de dimensionnement de widget supplémentaires, et en fournissant des mises en page responsives et exactes.
Pour en savoir plus, consultez Fournir des mises en page de widget flexibles.
Améliorer l'expérience du sélecteur de widgets dans votre application
Android 12 vous permet d'améliorer l'expérience du sélecteur de widgets pour votre application en ajoutant des aperçus et des descriptions de widgets dynamiques. Pour en savoir plus, consultez Ajouter des aperçus de widget évolutifs au sélecteur de widgets et Ajouter une description de votre widget.
Rendre les transitions plus fluides
À partir d'Android 12, les lanceurs offrent une transition plus fluide lorsqu'un utilisateur lance votre application à partir d'un widget. Pour en savoir plus, consultez la section Activer des transitions plus fluides.
Utiliser des collections RemoteViews
simplifiées
Android 12 ajoute la méthode setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, qui permet à votre application de transmettre directement une collection lorsqu'elle renseigne un ListView
. Auparavant, lorsque vous utilisiez un ListView
, il était nécessaire d'implémenter et de déclarer un RemoteViewsService
pour renvoyer RemoteViewsFactory
.
Pour en savoir plus, consultez Utiliser les collections RemoteViews
.
Utiliser la modification de l'environnement d'exécution de RemoteViews
Android 12 ajoute plusieurs méthodes RemoteViews
qui permettent de modifier les attributs RemoteViews
au moment de l'exécution. Consultez la documentation de référence de l'API RemoteViews
pour obtenir la liste complète des méthodes ajoutées.
Pour en savoir plus, consultez Utiliser la modification de l'environnement d'exécution de RemoteViews
.