Siamo felici di annunciare che Jetpack WindowManager 1.5.0 è ora stabile.
Questa release si basa sulla solida base di adattabilità di WindowManager, rendendo ancora più semplice la creazione di UI raffinate e adattive che hanno un aspetto eccezionale su schermi di qualsiasi dimensione. Man mano che l'ecosistema Android continua a crescere, gli utenti interagiscono con le app su una gamma di dispositivi più ampia che mai: da smartphone e pieghevoli a tablet, display connessi, Chromebook e persino display dell'auto in modalità di parcheggio.
WindowManager 1.5 si concentra sulla fornitura di strumenti migliori per questo ambiente di dispositivi eterogeneo.
Novità di WindowManager 1.5
Questa release stabile introduce nuovi punti di interruzione per schermi molto grandi, migliora l'API per l'incorporamento delle attività e offre maggiore flessibilità per il calcolo delle metriche delle finestre.
Nuove classi di dimensioni delle finestre: Large ed Extra large
Il più grande aggiornamento della versione 1.5 è l'aggiunta di due nuove classi di dimensioni della finestra di larghezza: Grande ed Extra large.
Le classi di dimensioni della finestra sono il nostro insieme ufficiale e soggettivo di punti di interruzione del viewport che ti aiutano a progettare e sviluppare layout adattabili. Con la versione 1.5, estendiamo queste linee guida agli schermi che vanno oltre i tablet tipici.
Ecco i nuovi punti di interruzione della larghezza:
- Grande:per larghezze comprese tra 1200 dp e 1600 dp
- Molto grande:per larghezze ≥ 1600 dp
Le diverse classi di dimensioni delle finestre in base alla larghezza del display.
Perché sono importanti?
A partire da Android 16 QPR1 Beta 2, Android supporta i display connessi, consentendo agli utenti di collegare un display esterno al proprio dispositivo e trasformarlo in uno strumento simile a un computer con uno schermo di grandi dimensioni.
Smartphone connesso a un display esterno, con una sessione desktop sul display esterno.
Con questa nuova funzionalità disponibile, è fondamentale fornire indicazioni precise per includere display più grandi.
Su queste superfici molto grandi, la semplice scalabilità del layout espanso di un tablet non sempre garantisce la migliore esperienza utente. Ad esempio, un client di posta potrebbe mostrare comodamente due riquadri (una casella di posta e un messaggio) nella classe di dimensioni della finestra Espansa. Ma su un monitor desktop extra large, il client email potrebbe visualizzare elegantemente tre o anche quattro riquadri, ad esempio una casella di posta, un elenco di messaggi, i contenuti completi del messaggio e un riquadro di calendario/attività, tutto in una volta.
Fornendo punti di interruzione ufficiali per dimensioni di visualizzazione molto grandi, WindowManager 1.5 ti offre un segnale chiaro per introdurre layout progettati specificamente per un'esperienza desktop produttiva e ricca di informazioni.
Le classi di dimensioni della finestra possono essere calcolate utilizzando computeWindowSizeClass(), che è una funzione di estensione della libreria androidx.window.core.layout che estende il tipo Set<WindowSizeClass>.
Per includere le nuove classi di dimensioni della finestra nel tuo progetto, chiama la funzione dal set WindowSizeClass.BREAKPOINTS_V2 anziché da WindowSizeClass.BREAKPOINTS_V1:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
Poi applica il layout corretto quando hai la certezza che la tua app abbia almeno quello spazio:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}Librerie adattive
La libreria Compose Material 3 Adaptive ti aiuta a creare UI adattive che si adattano automaticamente in base alle configurazioni della finestra correnti, come le classi di dimensioni della finestra o le posture del dispositivo.
La buona notizia è che la libreria è già aggiornata con i nuovi punti di interruzione. A partire dalla versione 1.2 (ora in fase di Release Candidate), le direttive di scaffolding del riquadro predefinito supportano le classi di dimensioni della larghezza della finestra Large ed Extra-large.
Devi solo attivare la funzionalità dichiarando nel file di build Gradle che vuoi utilizzare i nuovi punti di interruzione:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
Miglioramenti aggiuntivi
- Incorporamento di attività: salvataggio e ripristino automatici. WindowManager ora può salvare e ripristinare automaticamente lo stato delle divisioni di incorporamento delle attività. Ciò contribuisce a preservare il layout dell'utente durante la ricreazione del processo, garantendo un'esperienza più stabile e coerente. Gli sviluppatori non devono più salvare e ripristinare manualmente lo stato, ma possono semplicemente attivare il salvataggio automatico impostando la proprietà EmbeddingConfiguration#isAutoSaveEmbeddingState.
- Expanded WindowMetrics: ora puoi calcolare WindowMetrics da un contesto dell'applicazione, non solo da un contesto dell'attività. Ciò offre maggiore flessibilità per accedere alle informazioni sulle finestre da diverse parti dell'app.
Come iniziare
Per iniziare a utilizzare le nuove classi di dimensioni Large ed Extra-large e altre funzionalità 1.5 nei tuoi progetti Android, aggiorna le dipendenze dell'app in build.gradle.kts all'ultima versione stabile:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 è un altro passo avanti per la creazione di app completamente adattive che funzionano su tutti i fattori di forma Android. Consulta le note di rilascio ufficiali per un elenco completo delle modifiche e delle correzioni di bug.
Buona programmazione!
Continua a leggere
-
Novità sul prodotto
Siamo felici di annunciare un traguardo importante per avvicinare il computing mobile e desktop su Android: il supporto del display connesso ha raggiunto la disponibilità generale con la release Android 16 QPR3.
Francesco Romano • Lettura di 7 minuti
-
Novità sul prodotto
Testare le interazioni multi-dispositivo è ora più facile che mai con l'emulatore Android.
Steven Jenkins • Lettura di 2 minuti
-
Novità sul prodotto
Android Studio supporta Gemma 4: il nostro modello locale più potente per la programmazione agentica
Il flusso di lavoro e le esigenze di ogni sviluppatore in materia di AI sono unici ed è importante poter scegliere in che modo l'AI può aiutarti nello sviluppo. A gennaio abbiamo introdotto la possibilità di scegliere qualsiasi modello di AI locale o remoto per potenziare la funzionalità di AI in Android Studio
Matthew Warner • Lettura di 2 minuti
Segui gli aggiornamenti
Ricevi ogni settimana gli ultimi approfondimenti sullo sviluppo per Android direttamente nella tua casella di posta.