Android 12 (livello API 31) rinnova l'API Widgets esistente per migliorare l'esperienza utente e sviluppatore nella piattaforma e nei launcher. 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, l'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 contiene contenuti negli angoli: ciò potrebbe causare il ritaglio di alcuni contenuti nell'area degli angoli.
Il widget utilizza uno sfondo che non è soggetto a ritaglio. Sono inclusi 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 tuo 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 di 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.
1 Angolo del widget.
2 Angolo di una visualizzazione all'interno del widget.
Per maggiori dettagli, consulta Implementa gli angoli arrotondati.
Aggiungi i 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. In questo modo, le transizioni sono più fluide e la coerenza tra i diversi widget è maggiore.
Per saperne di più, consulta Aggiungi i temi del dispositivo.
Semplifica la personalizzazione dei widget
Se specifichi un'attività di configurazione con l'attributo configure di
appwidget-provider,
l'host del widget dell'app avvia l'attività immediatamente dopo che un utente aggiunge il
widget alla schermata Home.
Android 12 aggiunge nuove opzioni per consentirti di offrire un'esperienza di configurazione migliore agli utenti. Per maggiori dettagli, consulta Consenti 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 memorizzare lo stato e registrarsi per gli eventi di modifica dello stato.
Per maggiori dettagli, vedi Supporto per il comportamento stateful.
Utilizza API migliorate per le dimensioni e i layout dei widget
A partire da Android 12, puoi sfruttare attributi di dimensione più precisi e layout più flessibili specificando ulteriori vincoli di dimensionamento dei widget e fornendo layout adattabili e layout esatti.
Per maggiori dettagli, consulta Fornisci layout dei widget flessibili.
Migliora l'esperienza del selettore di widget della tua app
Android 12 ti consente di migliorare l'esperienza del selettore di widget per la tua app aggiungendo anteprime e descrizioni dinamiche dei widget. Per maggiori dettagli, consulta Aggiungi anteprime dei widget scalabili al selettore di widget e Aggiungi una descrizione per il widget.
Attiva transizioni più fluide
A partire da Android 12, i launcher offrono una transizione più fluida quando un utente avvia la tua app da un widget. Per maggiori dettagli, consulta Attiva 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 durante la compilazione di un
ListView. In precedenza, quando utilizzavi un
ListView, era necessario implementare e dichiarare un
RemoteViewsService per restituire
RemoteViewsFactory.
Per maggiori dettagli, vedi Utilizza le raccolte di RemoteViews.
Utilizza la modifica del runtime di RemoteViews
Android 12 aggiunge diversi metodi RemoteViews che consentono la modifica
runtime degli attributi RemoteViews. Consulta il riferimento API RemoteViews per l'elenco completo dei metodi aggiunti.
Per maggiori dettagli, consulta Utilizza la modifica in fase di runtime di RemoteViews.