Android 12 (livello API 31) rinnova l'API Widgets esistente per migliorare l'esperienza di utenti e sviluppatori nella piattaforma e in Avvio app. Utilizza questa guida per scoprire come assicurarti che il widget sia compatibile con Android 12, nonché come riferimento per le API per aggiornare il widget esistente.
Assicurati che il widget sia compatibile con Android 12
I widget di Android 12 hanno gli angoli arrotondati. Quando un widget dell'app viene utilizzato su un dispositivo con Android 12 o versioni successive, Avvio app identifica automaticamente lo sfondo del widget e lo ritaglia in modo che abbia angoli arrotondati.
In questo scenario, il widget potrebbe non essere visualizzato correttamente in una delle seguenti condizioni:
Il widget ha contenuti negli angoli: in questo modo, alcuni contenuti nell'area degli angoli potrebbero essere ritagliati.
Il widget utilizza uno sfondo non soggetto al ritaglio. Ciò include uno sfondo trasparente, visualizzazioni o layout vuoti o qualsiasi altro tipo di sfondo speciale non soggetto a ritaglio. Il sistema potrebbe non essere in grado di identificare correttamente lo sfondo da utilizzare.
Se il widget sarà interessato da questa modifica, ti consigliamo di aggiornarlo con angoli arrotondati (come descritto nella sezione seguente) per assicurarti che venga visualizzato correttamente.
Utilizza l'esempio
Per vedere tutte queste API in azione, dai un'occhiata al nostro widget per l'elenco di esempi.
Implementare gli angoli arrotondati
Android 12 introduce i parametri di sistema system_app_widget_background_radius
e system_app_widget_inner_radius
per impostare i raggi degli angoli arrotondati del widget.
![Widget per il meteo di Tokyo](https://developer.android.com/static/images/appwidgets/widget-weather.png?authuser=6&hl=it)
1 Angolo del widget.
2 Angolo di una visualizzazione all'interno del widget.
Per maggiori dettagli, vedi Implementare gli angoli arrotondati.
Aggiungi temi del dispositivo
A partire da Android 12, un widget può utilizzare i colori del tema del dispositivo per pulsanti, sfondi e altri componenti, inclusi i temi chiaro e scuro. Ciò consente transizioni più fluide e coerenza tra widget diversi.
Per ulteriori informazioni, vedi Aggiungere temi del dispositivo.
![Widget in modalità Luce](https://developer.android.com/static/images/appwidgets/example-lightmode.png?authuser=6&hl=it)
![Widget in modalità Buio](https://developer.android.com/static/images/appwidgets/example-darkmode.png?authuser=6&hl=it)
Semplifica la personalizzazione dei widget
Se specifichi un'attività di configurazione con l'attributo configure
di
appwidget-provider
,
l'host del widget app avvia l'attività subito dopo che un utente ha aggiunto il
widget alla schermata Home.
Android 12 aggiunge nuove opzioni per consentirti di offrire una migliore esperienza di configurazione agli utenti. Per maggiori dettagli, consulta Consentire agli utenti di configurare i widget.
Aggiungi nuovi pulsanti composti
Android 12 aggiunge un nuovo supporto per il comportamento stateful utilizzando i seguenti componenti esistenti:
Il widget è ancora stateless. L'app deve archiviare lo stato e registrarsi per gli eventi di modifica dello stato.
![](https://developer.android.com/static/images/appwidgets/home.png?authuser=6&hl=it)
Per maggiori dettagli, vedi Supporto per il comportamento stateful.
Usa API migliorate per dimensioni e layout dei widget
A partire da Android 12, puoi sfruttare attributi relativi alle dimensioni più perfezionati e layout più flessibili, specificando ulteriori vincoli per le dimensioni dei widget e fornendo layout adattabili e layout esatti.
Per maggiori dettagli, consulta Fornire layout flessibili dei widget.
Migliora l'esperienza del selettore widget della tua app
Android 12 ti consente di migliorare l'esperienza del selettore widget per la tua app aggiungendo anteprime e descrizioni dei widget dinamiche. Per i dettagli, consulta Aggiungere anteprime scalabili di widget al selettore di widget e Aggiungere una descrizione al widget.
Consenti transizioni più fluide
A partire da Android 12, Avvio app offrono una transizione più fluida quando un utente avvia la tua app da un widget. Per maggiori dettagli, consulta Consentire transizioni più fluide.
Utilizza le raccolte RemoteViews
semplificate
Android 12 aggiunge il metodo
setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, che consente alla tua app di trasmettere una raccolta direttamente quando compili un
ListView
. In precedenza, quando si utilizzava un ListView
, era necessario implementare e dichiarare un RemoteViewsService
per restituire RemoteViewsFactory
.
Per maggiori dettagli, vedi Utilizzare le raccolte RemoteViews
.
Utilizza la modifica del runtime di RemoteViews
Android 12 aggiunge diversi metodi RemoteViews
che consentono la modifica
in fase di runtime degli attributi RemoteViews
. Consulta il riferimento dell'API RemoteViews
per l'elenco completo dei metodi aggiunti.
Per maggiori dettagli, consulta Utilizzare la modifica del runtime di RemoteViews
.