Android 12 (livello API 31) rinnova l'API Widgets esistente per migliorare l'esperienza utente e degli sviluppatori nella piattaforma e nei lanci. Utilizza questa guida per scoprire come assicurarti che il tuo widget sia compatibile con Android 12 e come riferimento per le API per aggiornare il widget esistente.
Assicurati che il widget sia compatibile con Android 12
I widget in Android 12 hanno gli angoli arrotondati. Quando un widget dell'app viene utilizzato su un dispositivo con Android 12 o versioni successive, il programma di avvio identifica automaticamente lo sfondo del widget e lo ritaglia in modo che abbia i bordi arrotondati.
In questo caso, il widget potrebbe non essere visualizzato correttamente in nessuna delle seguenti condizioni:
Il widget contiene contenuti negli angoli: alcuni contenuti nell'area degli angoli potrebbero essere ritagliati.
Il widget utilizza uno sfondo non suscettibile di ritaglio. Sono inclusi 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 tuo widget sarà interessato da questa modifica, ti consigliamo di aggiornarlo con i bordi arrotondati (come descritto nella sezione seguente) per assicurarti che venga visualizzato correttamente.
Utilizzare il Sample
Per vedere tutte queste API in azione, dai un'occhiata al nostro widget di elenco di esempio.
Implementa angoli arrotondati
Android 12 introduce i parametri di sistema system_app_widget_background_radius
e system_app_widget_inner_radius
per impostare i raggi dei bordi arrotondati del widget.
1 Angolo del widget.
2 Angolo di una visualizzazione all'interno del widget.
Per maggiori dettagli, vedi Implementare gli angoli arrotondati.
Aggiungere temi al 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. In questo modo, le transizioni sono più fluide e la coerenza è garantita tra i diversi widget.
Per ulteriori informazioni, consulta Aggiungere temi ai dispositivi.
Semplificare la personalizzazione dei widget
Se specifichi un'attività di configurazione con l'attributo configure
di
appwidget-provider
,
l'attività viene avviata dall'host del widget dell'app immediatamente dopo che un utente aggiunge il
widget alla schermata iniziale.
Android 12 aggiunge nuove opzioni per consentirti di offrire agli utenti un'esperienza di configurazione migliore. Per maggiori dettagli, vedi Consentire agli utenti di configurare i widget.
Aggiungere nuovi pulsanti composti
Android 12 aggiunge il nuovo supporto per il comportamento con stato utilizzando i seguenti componenti esistenti:
Il widget è ancora senza stato. L'app deve memorizzare lo stato e registrarsi per gli eventi di modifica dello stato.
Per maggiori dettagli, vedi Supporto per il comportamento con stato.
Utilizza API migliorate per le dimensioni e i layout dei widget
A partire da Android 12, puoi usufruire di attributi delle dimensioni più raffinati e layout più flessibili, specificando ulteriori vincoli di dimensionamento dei widget e fornendo layout adattabili e layout esatti.
Per maggiori dettagli, consulta Fornire layout dei widget flessibili.
Migliorare l'esperienza del selettore di widget dell'app
Android 12 ti consente di migliorare l'esperienza di selezione dei widget per la tua app aggiungendo descrizioni e anteprime dinamiche dei widget. Per maggiori dettagli, consulta Aggiungere anteprime dei widget scalabili al selettore dei widget e Aggiungere una descrizione al widget.
Attiva transizioni più fluide
A partire da Android 12, i lanciatori offrono una transizione più fluida quando un utente avvia la tua app da un widget. Per maggiori dettagli, vedi Abilitare transizioni più fluide.
Utilizzare raccolte RemoteViews
semplificate
Android 12 aggiunge il metodo
setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, che consente alla tua app di trasmettere una raccolta direttamente durante il completamento di 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 di runtime di RemoteViews
Android 12 aggiunge diversi metodi RemoteViews
che consentono la modifica dinamica degli attributi RemoteViews
. Consulta il RemoteViews
riferimento API
per l'elenco completo dei metodi aggiunti.
Per maggiori dettagli, vedi Utilizzare la modifica di runtime di
RemoteViews
.