Il windowing del desktop consente agli utenti di eseguire contemporaneamente più app ridimensionabili delle app per un'esperienza versatile, simile a quella di un computer.
Nella figura 1 puoi vedere l'organizzazione della schermata con la funzionalità di gestione delle finestre del desktop attivata. Aspetti importanti:
- Gli utenti possono eseguire più app affiancate contemporaneamente.
- La barra delle app è in posizione fissa nella parte inferiore del display e mostra le app in esecuzione. Gli utenti possono bloccare le app per accedervi rapidamente.
- La nuova barra di intestazione personalizzabile decora la parte superiore di ogni finestra con controlli come Riduci a icona e Alza a schermo intero.
Per impostazione predefinita, le app si aprono a schermo intero sui tablet Android. Per avviare un'app in modalità finestra del desktop, tieni premuto il cursore della finestra nella parte superiore dello schermo e trascinalo all'interno dell'interfaccia utente, come mostrato nella figura 2.
Quando un'app è aperta in modalità finestra del computer, anche altre app si aprono in finestre del computer.
Gli utenti possono anche richiamare il windowing del desktop dal menu visualizzato sotto punto di manipolazione della finestra quando tocchi o fai clic sul punto di manipolazione o usi la scorciatoia da tastiera Tasto Meta (Windows, Comando o Ricerca) + Ctrl + Giù.
Gli utenti escono dalla finestra del desktop chiudendo tutte le finestre attive o afferrando la maniglia della finestra nella parte superiore di una finestra del desktop e trascinando l'app nella parte superiore dello schermo. La scorciatoia da tastiera Meta + H consente inoltre di uscire dalla modalità finestra del desktop e di eseguire di nuovo le app a schermo intero.
Per tornare alla visualizzazione delle finestre del computer, tocca o fai clic sul riquadro Spazio desktop nella schermata Recenti.
Modalità ridimensionabilità e compatibilità
Nel windowing del computer, le app con orientamento bloccato possono essere ridimensionate liberamente. Ciò significa che anche se un'attività è bloccata in modalità Ritratto, gli utenti possono comunque ridimensionare l'app in una finestra con orientamento orizzontale.
L'interfaccia utente delle app dichiarate come non ridimensionabili (ovvero resizableActivity = false
) viene ridimensionata mantenendo le stesse proporzioni.
Le app di fotocamera che bloccano l'orientamento o sono dichiarate non ridimensionabili hanno un trattamento speciale per i mirini della fotocamera: la finestra è completamente ridimensionabile, ma il mirino mantiene le stesse proporzioni. Presupponendo app vengono sempre eseguite in verticale o orizzontale, le app vengono configurate come hardcoded o ipotesi che portano a calcoli errati dell'anteprima o dell'immagine acquisita l'orientamento o le proporzioni, generando immagini allungate, ruotate o capovolte.
Fino a quando le app non saranno pronte a implementare i mirini della fotocamera completamente responsivi, il trattamento speciale offre un'esperienza utente più di base che riduce gli effetti causati da presupposti errati.
Per scoprire di più sulla modalità di compatibilità per le app della fotocamera, consulta Modalità di compatibilità del dispositivo.
Intestazioni personalizzabili
Tutte le app in esecuzione in una finestra del desktop hanno una barra delle intestazioni, anche in
modalità immersiva.
Assicurati che i contenuti dell'app non siano oscurati dalla barra della barra.
La barra delle intestazioni è di tipo inserito nella barra dei sottotitoli:
androidx.compose.foundation.layout.WindowInsets.Companion.captionBar()
;
di visualizzazioni, WindowInsets.Type.captionBar()
,
che fa parte delle barre di sistema.
Per scoprire di più sulla gestione degli inserti, consulta l'articolo Visualizzare i contenuti a schermo intero nell'app e gestire gli inserti della finestra in Scrivi.
Anche la barra delle intestazioni è personalizzabile. Android 15 ha introdotto il tipo di aspetto
APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND
per rendere
la barra delle intestazioni trasparente e consentire alle app di disegnare contenuti personalizzati al suo interno.
Le app sono quindi responsabili dello stile della parte superiore dei contenuti in modo che assomigli alla barra dei sottotitoli codificati (sfondo, contenuti personalizzati e così via), ad eccezione degli elementi dei sottotitoli codificati di sistema (pulsanti di chiusura e di visualizzazione a schermo intero), che vengono disegnati dal sistema nella barra dei sottotitoli codificati trasparente nella parte superiore dell'app.
Le app possono attivare/disattivare l'aspetto degli elementi di sistema all'interno della didascalia per i temi chiaro e scuro utilizzando APPEARANCE_LIGHT_CAPTION_BARS
, in modo simile all'attivazione/disattivazione della barra di stato e della barra di navigazione.
Android 15 ha anche introdotto il metodo
WindowInsets#getBoundingRects()
che consente alle app di eseguire l'introspezione degli inserti della barra dei sottotitoli codificati in modo più dettagliato.
Le app sono in grado di distinguere le aree in cui il sistema disegna elementi di sistema
aree inutilizzate in cui le app possono inserire contenuti personalizzati senza sovrapporre elementi di sistema.
L'elenco di oggetti Rect
restituito dall'API indica le regioni di sistema che
devono essere evitate. Lo spazio rimanente (calcolato sottraendo i rettangoli
dai riquadri della barra dei sottotitoli codificati) è la posizione in cui l'app può disegnare senza
che si sovrappongono a elementi di sistema e che possono ricevere input.
Supporto di multitasking e istanze multiple
Il multitasking è alla base del windowing del desktop e consente delle tue app può aumentare notevolmente la produttività degli utenti.
Android 15 introduce PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI, che le app possono impostare per specificare che l'interfaccia utente di sistema deve essere mostrata per consentire all'app di essere avviata come più istanze.
Gestisci le istanze delle app con i gesti di trascinamento
In modalità multi-finestra, gli utenti possono avviare una nuova istanza di app trascinando una vista fuori dalla finestra dell'app. Gli utenti possono anche spostare elementi tra istanze della stessa app.
Android 15 introduce due flag per personalizzare il comportamento del trascinamento:
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
: Indica che per avviare un trascinamento non gestito deve essere delegata al sistema se non ci sono finestre visibili. Quando utilizza questo flag, l'autore della chiamata deve fornire aClipData
unItem
contenente unIntentSender
immutabile per un'attività da avviare (vediClipData.Item.Builder#setIntentSender()
). Il sistema può avviare o meno l'intent in base a fattori come le dimensioni dello schermo o la modalità di visualizzazione corrente. Se il sistema non avvia l'intent, l'intent viene annullato tramite il normale flusso di trascinamento.DRAG_FLAG_GLOBAL_SAME_APPLICATION
: Indica che un'operazione di trascinamento può oltrepassare i limiti della finestra (per più istanze della stessa applicazione).Quando
startDragAndDrop()
viene chiamato con questo flag impostato, solo le finestre visibili appartenenti allo stesso possono partecipare all'operazione di trascinamento e ricevere i contenuti trascinati.
Ottimizzazioni aggiuntive
Personalizza l'avvio delle app e la transizione delle app dalla modalità finestra a schermo intero.
Specifica le dimensioni e la posizione predefinite
Non tutte le app, anche se ridimensionabili, richiedono una finestra grande per offrire valore all'utente.
Puoi utilizzare il metodo ActivityOptions#setLaunchBounds()
per specificare le dimensioni e la posizione predefinite quando viene avviata un'attività.
Attivare la modalità a schermo intero dallo spazio di lavoro
Le app possono attivare la modalità a schermo intero a livello di programmazione chiamando
Activity#requestFullScreenMode()
Il metodo imposta l'app in modalità a schermo intero direttamente dal windowing del desktop.