Le anteprime dei widget generati ti consentono di creare anteprime dinamiche e personalizzate per i tuoi widget che riflettono con precisione il modo in cui appariranno nella schermata Home di un utente. Vengono fornite tramite un'API push, il che significa che la tua app fornisce l'anteprima in qualsiasi momento del suo ciclo di vita senza ricevere una richiesta esplicita dall'host del widget.
Questa guida spiega come fornire anteprime per i widget basati su Glance. Se il tuo
widget è implementato con RemoteViews, consulta Aggiungere anteprime al selettore
di widget.
Per migliorare l'esperienza di selezione dei widget dell'app per i widget Glance, fornisci un'anteprima del widget generata utilizzando GlanceAppWidget.providePreview sui dispositivi Android 15 e versioni successive e specifica un previewImage per le versioni precedenti e come fallback su Android 15+ se un'anteprima generata non è disponibile.
Per saperne di più, guarda il video Arricchisci la tua app con aggiornamenti live e widget su YouTube.
Configurare l'app per le anteprime dei widget generati
Per mostrare le anteprime dei widget generati su un dispositivo Android 15 o versioni successive, imposta prima il valore di
compileSdk su 35 o versioni successive nel file del modulo build.gradle per avere la
possibilità di fornire RemoteViews al selettore di widget
Le app possono quindi utilizzare setWidgetPreview in GlanceAppWidgetManager. Per prevenire
abusi e mitigare i problemi di integrità del sistema, setWidgetPreview è un'API
con limitazione della frequenza. Il limite predefinito è di circa due chiamate all'ora.
Generare un'anteprima aggiornata con Jetpack Glance
Per i widget creati con Jetpack Glance:
Esegui l'override della funzione
GlanceAppWidget.providePreviewper fornire i contenuti componibili per l'anteprima. Come faresti inprovideGlance, carica i dati della tua app e passali al composable dei contenuti del widget per fare in modo che l'anteprima mostri dati accurati. A differenza diprovideGlance, si tratta di una singola composizione senza ricomposizione o effetti.Chiama
GlanceAppWidgetManager.setWidgetPreviewsper generare e pubblicare l'anteprima.
Non è previsto un callback dal sistema per fornire anteprime, quindi la tua app deve
decidere quando chiamare setWidgetPreviews. La strategia di aggiornamento dipende dal caso d'uso del widget:
- Se il widget contiene informazioni statiche o è un'azione rapida, imposta l'anteprima al primo avvio dell'app.
- Puoi impostare l'anteprima una volta che l'app ha dati, ad esempio dopo l'accesso di un utente o la configurazione iniziale.
- Puoi configurare un'attività periodica per aggiornare le anteprime alla cadenza che preferisci.
Risolvere i problemi relativi alle anteprime generate
Un problema comune è che dopo aver generato un'anteprima, immagini, icone o altri
componenti potrebbero non essere presenti nell'immagine di anteprima rispetto alle dimensioni
del widget. Le dimensioni del menu a discesa sono definite da targetCellWidth e
targetCellHeight, se specificati, oppure da minWidth e minHeight nel
file di informazioni del fornitore del widget app.
Ciò si verifica perché Android, per impostazione predefinita, esegue il rendering solo dei composable visibili alle
dimensioni minime del widget. In altre parole, Android imposta previewSizeMode su
SizeMode.Single per impostazione predefinita. Utilizza android:minHeight e android:minWidth
nel file XML delle informazioni sul provider del widget dell'app per determinare quali composable disegnare.
Per risolvere il problema, esegui l'override di previewSizeMode in GlanceAppWidget e impostalo su
SizeMode.Responsive, fornendo un insieme di valori DpSize. In questo modo Android
conosce tutte le dimensioni del layout da eseguire il rendering per l'anteprima, il che garantisce che tutti
gli elementi vengano visualizzati correttamente.
Ottimizza per fattori di forma specifici. Fornisci una o due dimensioni a partire da quella minima e seguendo i punti di interruzione del widget. Specifica almeno un
previewImage per la compatibilità con le versioni precedenti. Puoi trovare i valori DP minimi appropriati per le diverse dimensioni della griglia nella
guida alla progettazione dei widget.
Compatibilità con le versioni precedenti con le anteprime dei widget
Per consentire ai selettori di widget sui dispositivi con versioni precedenti ad Android 15 di mostrare le anteprime del widget o come fallback per le anteprime generate su Android 15 e versioni successive, specifica l'attributo previewImage.
Se modifichi l'aspetto del widget, aggiorna l'immagine di anteprima.