Miglioramenti ai widget di Android 12

Android 12 (livello API 31) rinnova l'API Widget esistente per migliorare l'esperienza di utenti e sviluppatori sulla piattaforma e in Avvio app. Utilizza questa guida per scoprire come garantire la compatibilità del tuo widget con Android 12, nonché come riferimento per le API per aggiornare il widget esistente.

Testo alternativo

Assicurati che il widget sia compatibile con Android 12

I widget in Android 12 hanno gli angoli arrotondati. Quando il widget di un'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 da avere angoli arrotondati.

In questo scenario, il widget potrebbe non essere visualizzato correttamente in nessuna delle seguenti condizioni:

  • Il widget ha contenuti negli angoli: alcuni contenuti nell'area degli angoli potrebbero essere ritagliati.

  • Il widget utilizza uno sfondo non soggetto a ritaglio. Sono inclusi uno sfondo trasparente, visualizzazioni o layout vuoti o qualsiasi altro tipo di sfondo speciale che potrebbe non essere ritagliato. 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 elenco di esempio.

Implementa 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 meteo Tokyo
Figura 1: ambienti arrotondati in un widget e una vista all'interno del widget

1 Angolo del widget.

2 Angolo di una visualizzazione all'interno del widget.

Per maggiori dettagli, vedi Implementare gli angoli arrotondati.

Aggiungi tematizzazione del dispositivo

A partire da Android 12, un widget può usare 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 i diversi widget.

Per ulteriori informazioni, vedi Aggiungere temi relativi al dispositivo.

Widget con tema in modalità Luce
Figura 2: widget con tema chiaro
Widget con il tema modalità Buio
Figura 3: widget con tema scuro

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 aggiunge il widget alla schermata Home.

Android 12 aggiunge nuove opzioni per offrire una migliore esperienza di configurazione agli utenti. Per maggiori dettagli, vedi 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.

Figura 4. Widget di esempio con caselle di controllo

Per maggiori dettagli, vedi Assistenza per il comportamento stateful.

Usa API migliorate per dimensioni e layout dei widget

A partire da Android 12, puoi sfruttare attributi di dimensioni più perfezionati e layout più flessibili, specificando ulteriori vincoli di dimensioni dei widget e fornendo layout adattabili e layout esatti.

Per maggiori dettagli, consulta Fornire layout dei widget flessibili.

Migliora l'esperienza di selezione widget della tua app

Android 12 consente di migliorare l'esperienza del selettore widget per la tua app aggiungendo anteprime e descrizioni dei widget dinamici. Per i dettagli, consulta Aggiungere anteprime di widget scalabili al selettore widget e Aggiungere una descrizione per il widget.

Consenti transizioni più fluide

A partire da Android 12, l'Avvio app offre una transizione più fluida quando un utente avvia la tua app da un widget. Consulta Consentire transizioni più fluide per maggiori dettagli.

Utilizza le raccolte RemoteViews semplificate

Android 12 aggiunge il metodo setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items), che consente alla tua app di trasmettere direttamente una raccolta durante la compilazione di un ListView. In precedenza, quando si utilizzava un ListView, era necessario implementare e dichiarare un RemoteViewsService da 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 del 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.