WindowManager
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 24 settembre 2025 | 1.5.0 | - | - | - |
Dichiara le dipendenze
Per aggiungere una dipendenza da WindowManager, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per
la tua app o il tuo modulo:
Groovy
dependencies { implementation "androidx.window:window:1.5.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.0" // For testing implementation "androidx.window:window-testing:1.5.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.0") // For testing implementation("androidx.window:window-testing:1.5.0") }
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.5
Versione 1.5.0
24 settembre 2025
androidx.window:window-*:1.5.0 è stato rilasciato. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0:
- Aggiungi punti di interruzione
WindowSizeClassper Large e XLarge. (I40d85) - Espandi il calcolo di
WindowMetricsal contesto dell'applicazione. (I8eeeb, b/360934048) - Fornisci un getter per consentire l'accesso diretto a
WindowLayoutInfo(Ie9513) - Introduci l'API per salvare automaticamente lo stato dell'incorporamento e per ripristinarlo automaticamente quando il processo dell'app viene riavviato. (Ie0295)
- Rimuovi l'API sperimentale
WindowInsets. (I68a71)
Correzioni di bug
- Correzioni
EmbeddingRuleche restituisconohashCodediversi in alcuni casi. (I748cc) - Correzione del problema per cui si poteva verificare un
NullPointerExceptiona causa di errori nell'implementazione del dispositivo. - Correzione del punto in cui i nostri controlli di sicurezza
ActivityEmbeddingnon riuscivano a causa della rimozione delle classi inutilizzate da parte di ProGuard.
Contributo esterno
- Aggiungi tutte le piattaforme KMP a
window-core(If3d7c)
Versione 1.5.0-rc01
27 agosto 2025
androidx.window:window-*:1.5.0-rc01 è stato rilasciato. La versione 1.5.0-rc01 contiene questi commit.
Correzioni di bug
- Correzione del problema per cui si poteva verificare un
NullPointerExceptiona causa di errori nell'implementazione del dispositivo. - Correzione del punto in cui i nostri controlli di sicurezza
ActivityEmbeddingnon riuscivano a causa della rimozione delle classi inutilizzate da parte di ProGuard.
Versione 1.5.0-beta02
13 agosto 2025
androidx.window:window-*:1.5.0-beta02 è stato rilasciato. La versione 1.5.0-beta02 contiene questi commit.
Nuove funzionalità
- Correzioni di bug minori.
Contributo esterno
- Aggiungi tutte le piattaforme KMP a
window-core(If3d7c)
Versione 1.5.0-beta01
2 luglio 2025
androidx.window:window-*:1.5.0-beta01 è stato rilasciato. La versione 1.5.0-beta01 contiene questi commit.
Versione 1.5.0-alpha02
7 maggio 2025
androidx.window:window-*:1.5.0-alpha02 è stato rilasciato. La versione 1.5.0-alpha02 contiene questi commit.
Modifiche alle API
- Aggiungi punti di interruzione
WindowSizeClassper Large e XLarge. (I40d85) - Espandi il calcolo di
WindowMetricsal contesto dell'applicazione. (I8eeeb, b/360934048) - Fornisci un getter per attivare l'accesso diretto a
WindowLayoutInfo(Ie9513) - Introduci l'API per salvare automaticamente lo stato dell'incorporamento e per ripristinarlo automaticamente quando il processo dell'app viene riavviato. (Ie0295)
- Rimuovi l'API sperimentale
WindowInsets. (I68a71) - Nascondere alcuni costruttori (I87b8d)
Correzioni di bug
- Correzioni
EmbeddingRuleche restituisconohashCodediversi in alcuni casi. (I748cc)
Versione 1.5.0-alpha01
12 marzo 2025
androidx.window:window-*:1.5.0-alpha01 è stato rilasciato. La versione 1.5.0-alpha01 contiene questi commit.
Nuove funzionalità
- Versione iniziale di Next 1.5.0.
Versione 1.4
Versione 1.4.0
20 maggio 2025
androidx.window:window-*:1.4.0 è stato rilasciato. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
- Incorporamento dell'attività
- API per personalizzare le animazioni di avvio
- Divisore interattivo
ActivityStackFissaggio- Attenuazione della finestra di dialogo a schermo intero
- Embedded Activity Window Info Callback
- Gestione migliorata di
ActivityStack - Avviare Attività in un
ActivityStackspecificato
WindowMetricsCalculator- Migliorare il supporto della testabilità
WindowMetrics- Metodi pratici per calcolare
withDpeheightDp - Aggiorna il controllo dei limiti a
isAtLeaste utilizza i limiti inferiori per supportare l'aggiunta di nuovi valori
- Metodi pratici per calcolare
WindowSizeClass- Aggiungi un modo per calcolare da
WindowMetrics
- Aggiungi un modo per calcolare da
WindowInfoTracker- Aggiungere l'API per rilevare le posture supportate sul dispositivo
Versione 1.4.0-rc02
23 aprile 2025
androidx.window:window-*:1.4.0-rc02 è stato rilasciato. La versione 1.4.0-rc02 contiene questi commit.
Correzioni di bug
- È stato corretto un arresto anomalo di Proguard per
ActivityEmbedding.
Versione 1.4.0-rc01
12 marzo 2025
androidx.window:window-*:1.4.0-rc01 è stato rilasciato. La versione 1.4.0-rc01 contiene questi commit.
Nuove funzionalità
- Aggiornamenti all'API
WindowSizeClass. - Aggiornamenti alle API di incorporamento delle attività.
Versione 1.4.0-beta02
12 febbraio 2025
androidx.window:window-*:1.4.0-beta02 è stato rilasciato. La versione 1.4.0-beta02 contiene questi commit.
Nuove funzionalità
- Correggi un'annotazione presente solo nella proprietà e non nel getter.
Versione 1.4.0-beta01
15 gennaio 2025
androidx.window:window-*:1.4.0-beta01 è stato rilasciato. La versione 1.4.0-beta01 contiene questi commit.
Nuove funzionalità
- Aggiungi l'API per consentire la personalizzazione delle
ActivityEmbeddinganimazioni. - Espandi
WindowMetricsCalculatortest APIs per consentire la simulazione delle metriche della finestra.
Modifiche alle API
- Nascondere alcuni costruttori (I87b8d)
- Consenti alle app di personalizzare le animazioni
ActivityEmbedding(If31a8) - Aggiunge il supporto per
watchosDeviceArm64KMP target e target kotlin 1.9 (Icf15d, b/364652024) - Esporre le API
WindowMetricsCalculator. (I1cebf)
Correzioni di bug
- Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto:
-Xjspecify-annotations=strict(questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin). (Ie69ac, b/326456246)
Versione 1.4.0-alpha05
16 ottobre 2024
androidx.window:window-*:1.4.0-alpha05 è stato rilasciato. La versione 1.4.0-alpha05 contiene questi commit.
Nuove funzionalità
- Aggiungi funzioni di convenienza per ottenere
widthDpeheightDpdaWindowMetrics.
Modifiche alle API
- Aggiungi
widthDpeheightDpaWindowMetrics. (Ide026) - Rimuovi l'API sperimentale
WindowInsets. (I68a71) - Aggiorna i nomi dei metodi di controllo dei limiti a
isAtLeast(Ib0ab7)
Versione 1.4.0-alpha04
2 ottobre 2024
androidx.window:window-*:1.4.0-alpha04 è stato rilasciato. La versione 1.4.0-alpha04 contiene questi commit.
Modifiche alle API
- È stato aggiunto un metodo per calcolare
WindowSizeClassdaWindowMetrics. (874dba) - Modifica i metodi
WindowSizeClassincontainsWidthDp,containsHeightDpecontainsWindowSizeDpper maggiore chiarezza. (fa760d) - Converti
WindowAreaControllerin classe base astratta. (I90893)
Correzioni di bug
- Aggiungi il supporto per i limiti relativi durante la creazione di un test
FoldingFeature. (2e6b3e) - Correzioni di bug generali durante la selezione di un
WindowSizeClass.
Versione 1.4.0-alpha03
18 settembre 2024
androidx.window:window-*:1.4.0-alpha03 è stato rilasciato. La versione 1.4.0-alpha03 contiene questi commit.
Nuove funzionalità
- Aggiungi un metodo di utilità per ottenere un
WindowSizeClassdaWindowMetrics. (I83f1f) - Rinomina
isAtLeastincontainsBreakpoint. (I85b47) - Aggiungi l'overload a
computeWindowSizeClassutilizzando i valori float. (I3dcb2, b/364677934, b/364677802, b/364680886)
Correzioni di bug
- Aggiungi i punti di interruzione mancanti al set di punti di interruzione predefinito
WindowSizeClass. - È stato corretto un bug per cui le dimensioni compatte non venivano selezionate correttamente in alcuni casi.
Versione 1.4.0-alpha02
4 settembre 2024
androidx.window:window-*:1.4.0-alpha02 è stato rilasciato. La versione 1.4.0-alpha02 contiene questi commit.
Nuove funzionalità
Aggiungi il supporto per WindowSizeClass personalizzati.
- Apri il costruttore per
WindowSizeClassin modo che gli sviluppatori possano utilizzare il proprio. - Aggiungi metodi di utilità
isAtLeastin modo che gli sviluppatori possano elaborare una gamma di valoriWindowSizeClass. - Aggiungi una funzione di estensione su
Set<WindowSizeClass>per calcolare la corrispondenza migliore dal set. - Aggiungi costanti per i punti di interruzione consigliati per Android.
- Aggiungi il set di punti di interruzione corrispondente ai punti di interruzione consigliati per Android.
Modifiche alle API
- Aggiorna i nomi dei metodi dei limiti per
WindowSizeClass. (If89a6) - Aggiorna l'API
WindowSizeClassper supportare l'aggiunta di nuovi valori di breakpoint in futuro. Anziché avere limiti assoluti, utilizziamo i limiti inferiori e consigliamo agli sviluppatori di utilizzare i controlli dei limiti inferiori durante l'elaborazione di unWindowSizeClass.WindowWidthSizeClasseWindowHeightSizeClassesistenti verranno ritirati perché non verranno più sviluppati. (I014ce)
Versione 1.4.0-alpha01
7 agosto 2024
androidx.window:window-*:1.4.0-alpha01 è stato rilasciato. La versione 1.4.0-alpha01 contiene questi commit.
Nuove funzionalità
- Il blocco di ActivityStack consente alle app di bloccare i contenuti in un container e di isolare la navigazione dall'altro container.
- Divisore interattivo consente alle app di visualizzare un divisore fisso o trascinabile tra le due attività in una presentazione divisa.
- Oscuramento della finestra di dialogo a schermo intero consente alle app di specificare l'area di oscuramento della finestra di dialogo, in modo da oscurare l'intera finestra dell'attività o solo il contenitore che mostra la finestra di dialogo.
- Embedded Activity Window Info Callback consente alle app di ricevere continuamente aggiornamenti della finestra dell'attività incorporata.
- Incorporamento dello sfondo dell'animazione consente alle app di specificare lo sfondo dell'animazione, migliorando la qualità dell'animazione di transizione quando viene utilizzato
ActivityEmbedding. - La gestione migliorata di ActivityStack consente alle app di avere un maggiore controllo su
ActivityStacksquando viene utilizzatoActivityEmbedding, tra cui: - Avvio di un'attività in un
ActivityStackspecificato - Completamento di un
ActivityStack
Modifiche alle API
Una nuova API
WindowInfoTracker#supportedPostures:- Un'API per determinare se il dispositivo supporta la modalità TableTop per i dispositivi pieghevoli. Aggiunge WindowAreaSessionPresenter#getWindow
Aggiungi API per supportare il
ActivityStackpinning:SplitPinRulecorsoSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
Aggiungi API per abilitare e configurare il divisore interattivo
DividerAttributescorsoSplitAttributes.Builder#setDividerAttributes
Aggiungi API per impostare
EmbeddingConfigurationeDimAreaBehaviorper le finestre di dialogoEmbeddingConfigurationcorsoDimAreaBehaviorcorsoActivityEmbeddingController#setEmbeddingConfiguration
Aggiungere API per ricevere aggiornamenti sulle informazioni della finestra delle attività incorporate
EmbeddedActivityWindowInfocorsoActivityEmbeddingController#embeddedActivityWindowInfo
Aggiungere API per impostare lo sfondo dell'animazione di incorporamento
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
Aggiungi API per completare
ActivityStacksActivityEmbeddingController#finishActivityStacks
Aggiungi API per impostare l'avvio di
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
Le seguenti API sono stabili e non più sperimentali:
ActivityEmbeddingController#invalidateVisibleActivityStacks(spostato da SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
Aggiungi API per la versione 1.4. (I56774)
Correzioni di bug
- Corregge un bug su alcuni dispositivi in cui veniva restituito UNAVAILABLE anziché ACTIVE quando una sessione è attiva.
- Rimuove il supporto di
transferActivityToWindowAreasui dispositivi con unvendorApiLevelpari a 2 a causa del supporto instabile dell'API. - Introduci l'API per abilitare il trascinamento a schermo intero per il divisore trascinabile dell'incorporamento delle attività. (I645c9)
- Consenti alle app di disattivare le animazioni
ActivityEmbeddingtramite i parametri di animazione perSplitAttributes. (Idc01a) - È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché questa avviene automaticamente tramite la modellazione delle API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I client che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (Ia60e0, b/345472586)
- Consenti alle estensioni di utilizzare i parametri di animazione per
SplitAttributesin modo che il dispositivo possa utilizzarli per le transizioni di animazione. (Iede00) - Nascondi API di overlay (Ic4251)
- Introduzione di API per configurare il divisore fisso o trascinabile per la suddivisione (Ia7a78)
- Densità aggiunta a
WindowMetrics(Id6723) - Aggiungi l'API per ottenere
SupportedPostures. (If557a) - Rimozione di
setLaunchingActivityStackdall'API sperimentale (I191cf) - Presenta
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) - Depreca
#getTokene aggiungi#getActivityStackToken(Ie0471) - Introduzione dell'adattatore di callback per l'API di flusso
embeddedActivityWindowInfo(Ida77f) - Aggiungi l'adattatore di callback per l'API overlayInfo flow (I7264f)
- Introduci
WindowSdkExtensionsRuleper ignorareextensionsVersionper i test. (Ifb928) - - Esegui la migrazione di
#setLaunchingActivityStackal bundle per la compatibilità con gli utilizzi diActivityOptionsCompat.- Gli utenti devono passare
activityOptions.toBundleanzichéActvityOptions. - Rimuovi
#setLaunchingActivityStack(Activity). Gli utenti devono eseguire la migrazione per utilizzareActivityEmbeddingController#getActivityStac(Activity)per ottenere unActivityStacke trasmettere ilActivityStacka#setLaunchingActivityStack. (Ie0ccc)
- Gli utenti devono passare
- - Introduci
ActivityStack.TokeneSpltInfo.Tokencome identificatore per la comunicazione tra WM Jetpack e le estensioni.- Ritirare/sostituire le API per accettare/restituire il token anziché IBinder. (I12b24)
- - Introduce
ActivityEmbeddingController#invalidateVisibleActivityStacks- Rimuovi
SplitController#invalidateTopVisibleSplitAttributesperché la funzionalità è consolidata in#invalidateVisibleActivityStacks(I02ef5)
- Rimuovi
- - Aggiunta dell'API per impostare la configurazione dell'incorporamento. (I59a4a)
- - Aggiunta di API per bloccare/sbloccare i primi
ActivityStackandroidx.Window- Aggiornamento dell'app demo per consentire di bloccare/sbloccare la parte superiore di
ActivityStack(I24dd3)
- Aggiornamento dell'app demo per consentire di bloccare/sbloccare la parte superiore di
- Aggiungi di nuovo
#finishActivityStackseActivityEmbeddingOptions(Ic1ab3) - Rimuovi le API instabili. (Ibc534, b/302380585)
Versione 1.3
Versione 1.3.0
29 maggio 2024
androidx.window:window-*:1.3.0 è stato rilasciato. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Supporto di Kotlin Multiplatform per le classi di dimensioni della finestra.
Versione 1.3.0-rc01
14 maggio 2024
WindowManager Jetpack 1.3 introduce il supporto multipiattaforma Kotlin per le WindowSizeClass funzionalità, oltre a diverse correzioni di bug.
androidx.window:window-*:1.3.0-rc01 è stato rilasciato. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta02
1° maggio 2024
androidx.window:window-*:1.3.0-beta02 è stato rilasciato. La versione 1.3.0-beta02 contiene questi commit.
Modifiche alle API
- Rimozione del supporto per la creazione e l'utilizzo di
WindowSizeClasspersonalizzati. (Id1143)
Correzioni di bug
- Correzioni
KotlinReflectionInternalErrorcausate dall'eliminazione di alcuni file da parte di Proguard in determinate implementazioni del dispositivo. (I01b02)
Versione 1.3.0-beta01
3 aprile 2024
androidx.window:window-*:1.3.0-beta01 è stato rilasciato. La versione 1.3.0-beta01 contiene questi commit.
Versione 1.3.0-alpha03
6 marzo 2024
androidx.window:window-*:1.3.0-alpha03 è stato rilasciato. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche alle API
- Dividi
WindowSizeClassUtilin metodi più mirati. (Ie9292) - Ripristina
WindowSizeClass#compute(I21355, b/324293374)
Correzioni di bug
- Correzione dell'arresto anomalo in cui il contesto fornito non veniva estratto correttamente. (94d10ce , b/318787482)
Versione 1.3.0-alpha02
7 febbraio 2024
androidx.window:window-*:1.3.0-alpha02 è stato rilasciato. La versione 1.3.0-alpha02 contiene questi commit.
Nuove funzionalità
- Aggiornamenti apportati alla superficie API dell'API Window Size Class per migliorare la flessibilità per gli sviluppatori che vogliono utilizzare le proprie classi di dimensioni.
Modifiche alle API
- Aggiungi vincoli di altezza al selettore di larghezza. (I23393)
- Aggiungi funzioni di utilità per scegliere un
WindowSizeClassda un insieme. Aggiungi funzioni di punteggio sperimentali in modo che gli sviluppatori possano scrivere i propri selettori. Aggiungi una funzione di estensione del selettore per scegliere ilWindowSizeClasspiù ampio all'interno di un determinato limite. (I0c944) - Apri il costruttore
WindowSizeClassin modo da poter aggiungere punti di interruzione personalizzati. (Ic1ff3) - Aggiungi una funzione di convenienza per creare una classe di dimensioni da larghezza, altezza e densità. (If67f4)
Correzioni di bug
- Correzione dell'eccezione quando il valore float viene troncato a 0. (272ffac)
Versione 1.3.0-alpha01
15 novembre 2023
androidx.window:window-*:1.3.0-alpha01 è stato rilasciato. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
- Espone le API sperimentali della finestra per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeaturesono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbeddingfalsi sono ora stabili. WindowLayoutInfoPublisherRuleora segnala la sostituzione quando ottiene un valore da unUiContext.- La funzionalità di compressione dei report
WindowInfoTrackerriporta i dati ai parametriUiContext. - Mostra la versione delle estensioni sul dispositivo.
- Costanti
WindowPropertiesper gli override per app per utente:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE: informa il sistema che l'app ha disattivato l'override della compatibilità delle proporzioni visibili all'utente.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE: informa il sistema che l'app ha disattivato l'opzione a schermo intero delle impostazioni di override della compatibilità delle proporzioni dell'utente
Versione 1.2
Versione 1.2.0
15 novembre 2023
androidx.window:window-*:1.2.0 è stato rilasciato. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- Espone le API sperimentali della finestra per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeaturesono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbeddingfalsi sono ora stabili. WindowLayoutInfoPublisherRuleora segnala la sostituzione quando ottiene un valore da unUiContext.- La funzionalità di compressione dei report
WindowInfoTrackerriporta i dati ai parametriUiContext. - Mostra la versione delle estensioni sul dispositivo.
Versione 1.2.0-rc01
1° novembre 2023
androidx.window:window-*:1.2.0-rc01 è stato rilasciato. La versione 1.2.0-rc01 contiene questi commit.
Nuove funzionalità
- Espone le API sperimentali della finestra per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeaturesono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbeddingfalsi sono ora stabili. WindowLayoutInfoPublisherRuleora segnala la sostituzione quando ottiene un valore da unUiContext.- La funzionalità di compressione dei report
WindowInfoTrackerriporta i dati ai parametriUiContext. - Mostra la versione delle estensioni sul dispositivo.
Versione 1.2.0-beta04
18 ottobre 2023
androidx.window:window-*:1.2.0-beta04 è stato rilasciato. La versione 1.2.0-beta04 contiene questi commit.
Modifiche alle API
- Rimuovi le API instabili. (Ibc534, b/302380585)
Versione 1.2.0-beta03
20 settembre 2023
androidx.window:window-*:1.2.0-beta03 è stato rilasciato. La versione 1.2.0-beta03 contiene questi commit.
Nuove funzionalità
- Aggiungi controlli
RequiresApiper le API che richiedono una versione specifica delle estensioni per funzionare correttamente. - Aggiungi un'API per esporre la versione delle estensioni sul dispositivo.
Modifiche alle API
- Annota la versione dell'estensione SDK Windows richiesta nelle API pubbliche.
- Rimuovi
isXXXSupportednel componente Incorporamento attività. (Ie3dae)
- Rimuovi
- Introduci
WindowSdkExtensionsper segnalare la versione dell'estensione sul dispositivo.- Introduci
RequiresWindowSdkExtensionper annotare la versione minima richiesta dell'estensione. (I05fd4)
- Introduci
- Rende
WindowAreaInfo#getCapabilitynon annullabile. (I17048)
Versione 1.2.0-beta01
26 luglio 2023
androidx.window:window-*:1.2.0-beta01 è stato rilasciato. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Espone le API sperimentali della finestra per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeaturesono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbeddingfalsi sono ora stabili. WindowLayoutInfoPublisherRuleora segnala la sostituzione quando ottiene un valore da unUiContext.- La funzionalità di compressione dei report
WindowInfoTrackerriporta i dati ai parametriUiContext.
Modifiche alle API
- Contrassegna le API
WindowAreacome sperimentali per consentire di continuare ad apportare modifiche alle API per una release stabile nella versione 1.3 (I857f5) - File API aggiornati per annotare la soppressione della compatibilità (I8e87a, b/287516207)
Versione 1.2.0-alpha03
21 giu 2023
androidx.window:window-*:1.2.0-alpha03 è stato rilasciato. La versione 1.2.0-alpha03 contiene questi commit.
Nuove funzionalità
- Rimozione delle API obsolete dalla superficie API.
- Aggiungi API per supportare le visualizzazioni simultanee.
- Aggiungi una proprietà per disattivare l'override del ridimensionamento forzato.
- Aggiungi la proprietà per disattivare l'override delle proporzioni minime.
- Stabilizza
ActivityEmbeddingRuleper supportare il test delle unità intorno all'incorporamento delle attività.
Modifiche alle API
Correzioni di bug
- Aggiunta della proprietà di compatibilità per l'override del ridimensionamento forzato (Ie7ab1)
- Rimuove
SESSION_STATE_CONTENT_INVISIBLEdall'interfaccia delle estensioni. (I6ed19) - Stabilizza
ActivityEmbeddingRuleper supportare i test delle unità relativi all'incorporamento delle attività. (I8d6b6) - Aggiunta della proprietà di compatibilità di disattivazione per l'override delle proporzioni minime. (I66390)
- Rimuove le API WindowArea deprecate (Ieb67c)
- Rinomina la proprietà del ciclo di richiesta di orientamento in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED. (Ie2fbd) - Aggiorna i nomi delle costanti di sessione dell'area della finestra (I83675)
- Aggiunta della proprietà di compatibilità di disattivazione che ignora il ciclo di richiesta di orientamento quando viene rilevato (I0a7a2)
- Aggiungi
WindowAreaComponent#STATUS_ACTIVEper indicare che la funzionalità è già attiva. (I62bc3) - Aggiungi API
RearDisplayPresentationMode(I0401c) - Rimuovi API per il colore di sfondo per la versione stabile. (I34c3e)
- Nascondi le API dell'area della finestra. (I39de0)
- Aggiungi metodi per eseguire l'override di
SplitInfoinSplitController. Aggiungi metodi di test per creare il doppio perSplitInfoeActivityStack. (Icd69f) - Rendi il tag facoltativo per
ActivityRule.Builder. (Ib0b44) - Rimuovi
RatioSplitType,ExpandContainersSpliteHingeSplitType. Ora sonoSplitType.- Sostituisci
#splitEqually(),#expandContainers()e#splitByHingecon le costantiSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDeSPLIT_TYPE_HINGE - Rimuovere la funzionalità per impostare il tipo di fallback del tipo di divisione della cerniera. Se il tipo di divisione della cerniera non può essere applicato a causa dello stato attuale del dispositivo o della finestra, viene eseguita la divisione del contenitore dell'attività principale in parti uguali. Utilizza
SplitController#setSplitAttributesCalculatorper personalizzare il tipo di suddivisione di riserva. (Ifcc59)
- Sostituisci
- Depreca
add/removeSplitCallback- Sposta
add/removeSplitCallbackinSplitControllerCallbackAdapter - Aggiungi il supporto di
Flowper ottenere l'elencoSplitInfo(I7f1b6)
- Sposta
- Aggiungi una regola di test per
ActivityEmbeddingController(I42e9b) - Ridenominazione di
ActivityOptionsCompatinActivityEmbeddingOptions(I89301) - Aggiungi
splitSupportStatusper indicare se l'incorporamento dell'attività è disponibile. (I10024) - Introduci
SplitAttributes.BackgroundColorper rappresentare meglio il valore diDEFAULT. Chiariamo che il colore di sfondo dell'animazione non opaco non è supportato, quindi tutti i colori non opachi verranno trattati come predefiniti, il che significa utilizzare il colore di sfondo della finestra del tema corrente. (Ic6b95) - Sostituisci
alwaysAllow()ealwaysDisallow()conALWAYS_ALLOWeALWAYS_DISALLOW. (I3057b) - Aggiungi API per
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - Aggiungi
TestActivityStackper creareActivityStackper i test- Aggiungi
TestSplitInfoper creareSplitInfoper i test. (I8e779)
- Aggiungi
- Aggiungi un modo per creare
SplitAttributesCalculatorParamsfalsi in modo che gli sviluppatori possano verificare i propriSplitAttributesCalculatorpersonalizzati (Id4a6e) - Aggiungi
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)eWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)(I66c7f)
Versione 1.2.0-alpha02
7 giugno 2023
androidx.window:window-*:1.2.0-alpha02 è stato rilasciato. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- Aggiorna l'API di test in modo che abbia una costante per le funzionalità di piegatura non specificate.
- L'override con
WindowLayoutInfoPublishRulesostituirà tutti i valori diwindowLayoutInfo, inclusa l'API basata sul contesto.
Modifiche alle API
- Aggiungi una costante per la funzionalità di piegatura centrale non specificata. (I7530c)
Correzioni di bug
- Aggiorna
WindowLayoutInfoPublishRuleper supportare gli override suContextin base aWindowLayoutInfo. (I2037a)
Versione 1.2.0-alpha01
24 maggio 2023
androidx.window:window-*:1.2.0-alpha01 è stato rilasciato. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
Stabilizza le API di test relative all'incorporamento delle attività e a WindowLayoutInfoTracker. ActivityEmbeddingRule è stata promossa alla versione stabile.
WindowMetricsCalculatorRule è stata promossa alla versione stabile.
Le funzioni di utilità per creare un FoldingFeature per il test sono state promosse alla versione stabile.
Modifiche alle API
- Stabilizza
ActivityEmbeddingRuleper supportare i test delle unità relativi all'incorporamento delle attività. (I8d6b6) WindowMetrisCalculatorTestRuleè stabile e consente metriche stub per i test JVM. Per risultati accurati, ti consigliamo di utilizzare un emulatore.- Stabilizza le API di test per
WindowLayoutInfoper supportare i test JVM. (Ie036e) - Aggiungi
IntRangeper i valori della funzionalità di test del folding. (I69f7d)
Versione 1.1
Versione 1.1.0
7 giugno 2023
androidx.window:window-*:1.1.0 è stato rilasciato. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
Incorporamento delle attività
- È stato aggiunto
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDcome proprietà booleana del tag<application>nel manifest dell'app. isSplitSupportedè stato ritirato e sostituito consplitSupportStatusper fornire informazioni più dettagliate sul motivo per cui la funzionalità di suddivisione non è disponibile.- È stata aggiunta la classe nidificata
SplitController.SplitSupportStatusper fornire costanti di stato per la proprietàsplitSupportStatus. - È stato eseguito il refactoring di
SplitControllerin diversi moduli:- Modulo
ActivityEmbeddingControllerperActivityo API correlate aActivityStack. - Elemento
isActivityEmbeddedspostato daSplitControlleraActivityEmbeddingController. - Modulo
RuleControllerper le operazioni correlate aEmbeddingRule: - API rimosse:
SplitController clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()- Sono state aggiunte le API
RuleController: addRule(): aggiunge una regola o aggiorna quella con lo stesso tag.removeRule(): rimuove una regola dalla raccolta di regole registrate.setRules(): stabilisce una raccolta di regole.clearRules(): rimuove tutte le regole registrate.parseRules(): analizza le regole dalle definizioni delle regole XML.
- Modulo
- Tutti i moduli richiedono l'inizializzazione di un contesto tramite il metodo
#getInstance(), tra cui:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- È stata aggiunta la classe
EmbeddingAspectRatioper definire costanti di comportamento simili a enum relative alle proporzioni di visualizzazione. - Aggiunta della classe
SplitAttributesper definire il layout diviso. - Sono state aggiunte le funzioni di calcolo
SplitAttributesaSplitControllerper personalizzare i layout di divisione:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()per verificare se le APISplitAttributesCalculatorsono supportate sul dispositivo
- Campo
EmbeddingRule#tagaggiunto. - Aggiornamenti dell'API in
SplitRule:- Aggiunta di
defaultSplitAttributes: definisce il layout di divisione predefinito di una divisione; sostituiscesplitRatioelayoutDirection. - È stata aggiunta la traduzione delle proprietà XML
splitRatioesplitLayoutDirectionindefaultSplitAttributes. - Sono state modificate le definizioni delle dimensioni minime in modo da utilizzare i pixel indipendenti dalla densità (dp) anziché i pixel.
- È stato aggiunto
minHeightDpcon il valore predefinito 600 dp. minWidthè stato modificato inminWidthDpcon il valore predefinito 600 dp.minSmallestWidthè stato modificato inminSmallestWidthDpcon il valore predefinito 600 dp.- È stato aggiunto
maxAspectRatioInHorizontalcon il valore predefinitoALWAYS_ALLOW. - È stato aggiunto
maxAspectRatioInPortraitcon il valore predefinito 1.4. - Definita la classe nidificata
FinishBehaviorper sostituire le costanti di comportamento di fine. - Sono state applicate le modifiche alla proprietà alla classe nidificata Builder di
SplitPairRuleeSplitPlaceholderRule.
- Aggiunta di
SplitInfo#getSplitRatio()è stato sostituito conSplitInfo#getSplitAttributes()per fornire ulteriori informazioni relative alla divisione.
WindowLayout
- È stato aggiunto il supporto sperimentale del contesto dell'interfaccia utente non attività a
WindowInfoTracker. - È stato aggiunto il contesto sperimentale dell'interfaccia utente non attività a
WindowMetricsCalculator.
Passaggi per la migrazione
- Per attivare l'incorporamento delle attività in modo da visualizzarle in modalità Split, le app devono aggiungere la proprietà
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDal tag<application>del manifest:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />In questo modo, il sistema può ottimizzare in anticipo i comportamenti di divisione per un'applicazione. SplitInforatio- Controlla se la divisione corrente è impilata:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Controlla il rapporto corrente:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Controlla se la divisione corrente è impilata:
- Migrazioni di SplitController:
SplitController.getInstance()cambia inSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)cambia inRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)cambia inActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)cambia inRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)cambia inRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()cambia inRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()cambia inRuleController.getInstance(Context).getRules().
- Migrazioni delle proprietà
SplitRule:minWidtheminSmallestWidthora utilizzano le unità dp anziché i pixel. Le app possono utilizzare la seguente chiamata:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )o semplicemente dividereminWithin pixel perdisplayMetrics#density.
- Le costanti di comportamento di fine devono essere migrate alle costanti di classe di tipo enum
FinishBehavior:FINISH_NEVERcambia inFinishBehavior.NEVER.FINISH_ALWAYScambia inFinishBehavior.ALWAYS.FINISH_ADJACENTcambia inFinishBehavior.ADJACENT.
- La direzione del layout deve essere migrata a
SplitAttributes.LayoutDirection:ltrcambia inSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlcambia inSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localecambia inSplitAttributes.LayoutDirection.LOCALE.splitRatiodeve essere migrato aSplitAttributes.SplitType.ratio(splitRatio).
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)cambia inkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.- Modifiche a
setLayoutDirection(layoutDirection)esetSplitRatio(ratio)inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) setFinishPrimaryWithSecondaryesetFinishSecondaryWithPrimaryaccettano costanti simili a enumFinishBehavior. Per maggiori dettagli, vedi "Migrazioni di SplitRule".- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)per mostrare le divisioni sui dispositivi verticali.
SplitPlaceholder.Buildermigrations:- Ha solo i parametri
filterseplaceholderIntent. Le altre proprietà vengono spostate nei setter. Per maggiori dettagli, vedi "Migrazioni di SplitPairRule.Builder". setFinishPrimaryWithPlaceholderaccetta le costanti simili a enumFinishBehavior. Per maggiori dettagli, vedi "Migrazioni di SplitRule".setLayoutDirection(layoutDirection)esetSplitRatio(ratio)cambiano in:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)per mostrare le divisioni sui dispositivi verticali.
- Ha solo i parametri
Versione 1.1.0-rc01
10 maggio 2023
androidx.window:window-*:1.1.0-rc01 è stato rilasciato. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
- Rilascia
ActivityEmbeddingcome API stabile. - Varie correzioni di bug.
Versione 1.1.0-beta02
5 aprile 2023
androidx.window:window-*:1.1.0-beta02 è stato rilasciato. La versione 1.1.0-beta02 contiene questi commit.
Nuove funzionalità
- Correzioni e pulizia interne.
Versione 1.1.0-beta01
22 marzo 2023
androidx.window:window-*:1.1.0-beta01 è stato rilasciato. La versione 1.1.0-beta01 contiene questi commit.
Incorporamento delle attività
- È stato aggiunto
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDcome proprietà booleana del tag<application>nel manifest dell'app. isSplitSupportedè stato ritirato e sostituito consplitSupportStatusper fornire informazioni più dettagliate sul motivo per cui la funzionalità di suddivisione non è disponibile.- È stata aggiunta la classe nidificata
SplitController.SplitSupportStatusper fornire costanti di stato per la proprietàsplitSupportStatus. - È stato eseguito il refactoring di
SplitControllerin diversi moduli:- Modulo
ActivityEmbeddingControllerperActivityo API correlate aActivityStack. - Elemento
isActivityEmbeddedspostato daSplitControlleraActivityEmbeddingController. - Modulo
RuleControllerper le operazioni correlate aEmbeddingRule: - Rimozione delle API
SplitController:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
- Sono state aggiunte le API
RuleController:addRule(): aggiunge una regola o aggiorna quella con lo stesso tag.removeRule(): rimuove una regola dalla raccolta di regole registrate.setRules(): stabilisce una raccolta di regole.clearRules(): rimuove tutte le regole registrate.- `parseRules()`: analizza le regole dalle definizioni delle regole XML.
- Modulo
- Tutti i moduli richiedono l'inizializzazione di un contesto tramite il metodo
#getInstance(), tra cui:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- È stata aggiunta la classe
EmbeddingAspectRatioper definire costanti di comportamento simili a enum relative alle proporzioni di visualizzazione. - Aggiunta della classe
SplitAttributesper definire il layout diviso. - Sono state aggiunte le funzioni di calcolo
SplitAttributesaSplitControllerper personalizzare i layout di divisione:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()per verificare se le API SplitAttributesCalculator sono supportate sul dispositivo
- Campo
EmbeddingRule#tagaggiunto. - Aggiornamenti dell'API in
SplitRule:- Aggiunta di
defaultSplitAttributes: definisce il layout di divisione predefinito di una divisione; sostituiscesplitRatioelayoutDirection. - È stata aggiunta la traduzione delle proprietà XML
splitRatioesplitLayoutDirectionindefaultSplitAttributes. - Sono state modificate le definizioni delle dimensioni minime in modo da utilizzare i pixel indipendenti dalla densità (dp) anziché i pixel.
- È stato aggiunto
minHeightDpcon il valore predefinito 600 dp. minWidthè stato modificato inminWidthDpcon il valore predefinito 600 dp.minSmallestWidthè stato modificato inminSmallestWidthDpcon il valore predefinito 600 dp.- È stato aggiunto
maxAspectRatioInHorizontalcon il valore predefinitoALWAYS_ALLOW. - È stato aggiunto
maxAspectRatioInPortraitcon il valore predefinito1.4. - Definita la classe nidificata
FinishBehaviorper sostituire le costanti di comportamento di fine. - Sono state applicate le modifiche alla proprietà alla classe nidificata
BuilderdiSplitPairRuleeSplitPlaceholderRule.
- Aggiunta di
SplitInfo#getSplitRatio()è stato sostituito conSplitInfo#getSplitAttributes()per fornire ulteriori informazioni relative alla divisione.
WindowLayout
- Aggiunto il supporto del contesto dell'interfaccia utente non attività a
WindowInfoTracker. - È stato aggiunto il contesto dell'interfaccia utente non attività a
WindowMetricsCalculator.
Passaggi per la migrazione
- Per attivare l'incorporamento delle attività in modo da visualizzarle in modalità Split, le app devono aggiungere la proprietà
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDal tag<application>del manifest:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />In questo modo, il sistema può ottimizzare in anticipo i comportamenti di divisione per un'applicazione. SplitInforatio- Controlla se la divisione corrente è impilata:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Controlla il rapporto corrente:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Controlla se la divisione corrente è impilata:
SplitControllermigrations:SplitController.getInstance()cambia inSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)modifiche aRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)cambia inActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)cambia inRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)cambia inRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()cambia inRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()cambia inRuleController.getInstance(Context).getRules().
- Migrazioni delle proprietà
SplitRule:minWidtheminSmallestWidthora utilizzano le unità dp anziché i pixel. Le app possono utilizzare la seguente chiamata:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )o semplicemente dividereminWithin pixel perdisplayMetrics#density.
- Le costanti di comportamento di fine devono essere migrate alle costanti di classe di tipo enum
FinishBehavior:FINISH_NEVERcambia inFinishBehavior.NEVER.FINISH_ALWAYScambia inFinishBehavior.ALWAYS.FINISH_ADJACENTcambia inFinishBehavior.ADJACENT.
- La direzione del layout deve essere migrata a
SplitAttributes.LayoutDirection:ltrcambia inSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlcambia inSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localecambia inSplitAttributes.LayoutDirection.LOCALE.splitRatiodeve essere migrato aSplitAttributes.SplitType.ratio(splitRatio).
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)cambia inkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.setLayoutDirection(layoutDirection)esetSplitRatio(ratio)cambiano inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )setFinishPrimaryWithSecondaryesetFinishSecondaryWithPrimaryaccettano costanti simili a enumFinishBehavior. Per maggiori dettagli, vedi "Migrazioni di SplitRule".- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)per mostrare le divisioni sui dispositivi verticali.
SplitPlaceholder.Buildermigrations:- Ha solo i parametri
filterseplaceholderIntent. Le altre proprietà vengono spostate nei setter. Per maggiori dettagli, vedi "Migrazioni di SplitPairRule.Builder". setFinishPrimaryWithPlaceholderaccetta le costanti simili a enumFinishBehavior. Per maggiori dettagli, vedi "Migrazioni di SplitRule".setLayoutDirection(layoutDirection)esetSplitRatio(ratio)cambiano in:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)per mostrare le divisioni sui dispositivi verticali.
- Ha solo i parametri
Versione 1.1.0-alpha06
22 febbraio 2023
androidx.window:window-*:1.1.0-alpha06 è stato rilasciato. La versione 1.1.0-alpha06 contiene questi commit.
Nuove funzionalità
- Esporre la versione sperimentale per ottenere il
WindowLayoutInfoda un contesto UI.
Modifiche alle API
- Aggiungi
splitSupportStatusper indicare se l'incorporamento dell'attività è disponibile. (I10024) - Rendi l'API UI Context
WindowLayoutInfosperimentale. (I58ee0) - Introduce
WindowAreaControllere le API per attivare la modalitàRearDisplayper spostare la finestra corrente sul display allineato alla fotocamera posteriore. (Iffcbf) - Aggiorna il colore dello sfondo predefinito. (I1ac1b)
- Aggiungi i parametri
SplitAttributes. (I18bdd) - Aggiungi API per
SplitRule,SplitAttributes,SplitAttributesCalculator. (I92d23) - Migliora le API relative a
maxAspectRatio:- Sostituisci
alwaysAllow()ealwaysDisallow()conALWAYS_ALLOWeALWAYS_DISALLOW. - Aggiorna la documentazione dell'API di @see con la documentazione autonoma. (I3057b)
- Sostituisci
- I seguenti costruttori vengono rimossi dalle API pubbliche perché non devono essere chiamati dalle app.
SplitInfocostruttore- Costruttore
ActivityStack(Ide534)
SplitRuleora accettamaxAspectRatioInPortrait/Landscape. Consente la suddivisione delle attività solo quando le proporzioni dei limiti principali sono inferiori o uguali amaxAspectRatio. (Ia5990)- Modifica
RuleController#parseRulesin modo che sia statico (I785df) - Migliorare le API relative a ActivityEmbedding
- Allinea la denominazione dell'API: utilizza add/remove per più istanze:
registerRulecambia inaddRuleunregisterRulecambia inremoveRule- Sostituisci
getSplitRulescongetRulesperchéActivityRulenon è una regola di suddivisione - Aggiungi
RuleController#setRulesper impostare un insieme di regole - Estrai le API correlate alle regole da
SplitControlleral singletonRuleController. Sono: addRuleremoveRulegetRulessetRulesclearRulesparseRules- Estrai
#isActivityEmbeddeddaSplitControlleral singletonActivityEmbeddingController. Sono: isActivityEmbedded- Rimuovi
SplitController#initialize. Per impostare le regole dal file XML, utilizzaRuleController#parseRulese#setRules. Prima di questa modifica:SplitController.initialize(context, R.xml.static_rules)Dopo questa modifica:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) - Non distinguiamo più le regole statiche dalle regole di runtime. Detto questo, chiamare
#clearRulescomporta l'eliminazione di tutte le regole, indipendentemente dal fatto che siano registrate con definizioni di regole XML statiche o in fase di runtime. Per ripristinare il comportamento precedente diSplitController#clearRegisteredRules, chiama il numeroRuleController#parseRulescon l'ID delle risorse XML e chiama il numeroRuleController#setRulesper impostare nuovamente le regole. Prima di questa modifica:SplitController.getInstance(context).clearRegisteredRules()Dopo questa modifica:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- Migliora le API SplitRule:
- Prendi le dimensioni minime in DP anziché in pixel per
SplitRule. - Esegui il refactoring per consentire a
SplitRuleBuilder di considerare le dimensioni minime come facoltative. (I95f17)
- Prendi le dimensioni minime in DP anziché in pixel per
- Passare un contesto per inizializzare
SplitController(I42549) SplitRule#layoutDirè stato rinominato in#layoutDirectioneSplitRule Builder#setLayoutDirinBuilder#setLayoutDirection. (I3f6d1)
Versione 1.1.0-alpha04
9 novembre 2022
androidx.window:window-*:1.1.0-alpha04 è stato rilasciato. La versione 1.1.0-alpha04 contiene questi commit.
Nuove funzionalità
- Espone un metodo per determinare se un
ActivityStackè vuoto perActivityEmbedding. - Rimossi i tag API sperimentali dalle API
ActivityEmbedding. - Nascondi il costruttore
ActivityRuleperchéBuilderè il modo preferito per costruire. - È stato aggiunto un metodo sperimentale per ottenere
WindowInsetssuWindowMetrics. - Aggiorna
SplitPlaceholderFinishBehaviorper evitare di completare il segnaposto. Il completamento del segnaposto ha causato un comportamento confuso.
Modifiche alle API
- Rendi pubblico il valore
isEmptyper sostituire la funzioneisEmpty. - Rinomina le attività del parametro
ActivityStackinactivitiesInProcess. (Ia5055) - Rimuovi
ActivityFilter#matchesClassNameeActivityFilter#matchesClassNameOrWildCardperché sono fuorvianti. - Aggiungi
ActivityFilter#componentNameeActivityFilter#intentActionper consentire al chiamante di distinguere i diversi filtri (I41f22) - Rimuovi le API
@Deprecateddall'API sperimentale (I216b3) - Rimuovi
@ExperimentalWindowApiper le API Activity Embedding (I69ebe) - Nascondi il costruttore
ActivityRule, utilizza invece Builder. (If4eb6) - Aggiungi API per verificare se un'attività fa parte di
ActivityFilter. (Ia43cf) - Aggiorna i file API per riflettere le modifiche apportate alle classi
WindowMetricseWindowMetricsCalculatorCompat(I667fe) - Aggiorna Javadoc e il nome della classe della proprietà
ActivityEmbedding(Ia1386) - Aggiunta dei nomi dei tag della proprietà
ActivityEmbeddingda utilizzare in AndroidManifest.xml (Id1ad4) - Sono state aggiunte le nuove API
SplitPlaceholderFinishBehavioreSplitPlaceholderRule.finishPrimaryWithPlaceholder, che sostituiscono l'APISplitPlaceholderRule.finishPrimaryWithSecondaryesistente, la quale definisce quando le attività segnaposto sono terminate e come devono comportarsi le attività associate nell'incorporamento delle attività. (I64647)
Correzioni di bug
- Introduce
WindowAreaControllere le API per attivare la modalitàRearDisplayper spostare la finestra corrente sul display allineato alla fotocamera posteriore. (I388ab)
Versione 1.1.0-alpha03
27 luglio 2022
androidx.window:window-*:1.1.0-alpha03 è stato rilasciato. La versione 1.1.0-alpha03 contiene questi commit.
Nuove funzionalità
- Aggiorna i valori predefiniti per le regole di incorporamento.
Modifiche alle API
- Aggiorna i valori predefiniti per le proprietà delle regole di incorporamento. (Ic4d35)
Versione 1.1.0-alpha02
11 maggio 2022
androidx.window:window-*:1.1.0-alpha02 è stato rilasciato. La versione 1.1.0-alpha02 contiene questi commit.
Nuove funzionalità
- Rilascia le librerie dell'adattatore per supportare Java e RxJava.
Versione 1.1.0-alpha01
11 maggio 2022
androidx.window:window-*:1.1.0-alpha01 è stato rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- Rilasciare gli adattatori per supportare Java e RxJava
Versione 1.1.0-alpha01
20 aprile 2022
androidx.window:window:1.1.0-alpha01 è stato rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- Corregge un bug per cui l'esecuzione in background di un'app interrompe l'emissione di funzionalità di piegatura.
- Espandi l'API ActivityEmbedding sperimentale.
Modifiche alle API
- Un'API pubblica per verificare se un'attività è incorporata. (I39eb7)
Correzioni di bug
- Aggiungi API che personalizzano il comportamento di completamento per i contenitori nelle suddivisioni delle attività (I1a1e4)
- È stata aggiunta una nuova opzione di configurazione per le regole di suddivisione delle attività. (Iec6af)
Versione 1.0
Versione 1.0.0
26 gennaio 2022
androidx.window:window-*:1.0.0 è stato rilasciato. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 1.0.0
- Supporto per gli smartphone pieghevoli tramite
WindowInfoTrackereFoldingFeature.WindowMetricsCalculatorper calcolare le WindowMetrics attuali.
Versione 1.0.0-rc01
15 dicembre 2021
androidx.window:window-*:1.0.0-rc01 è stato rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Nuove funzionalità
- Aggiungi il supporto per gli smartphone pieghevoli tramite
WindowInfoTracker. - Aggiungi metodi per calcolare il
WindowMetricsattuale e massimo. - Aggiungi API di test di supporto.
Versione 1.0.0-beta04
17 novembre 2021
androidx.window:window-*:1.0.0-beta04 è stato rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Nuove funzionalità
- Rinomina WindowInfoRepository in WindowInfoTracker.
- Rendi Activity una dipendenza esplicita del metodo per WindowInfoTracker.
- Aggiungi una TestRule semplice per WindowMetricsCalculator per supportare gli sviluppatori che utilizzano Robolectric.
Modifiche alle API
- Estrai estensioni (I25a5f)
- aggiungi isEmpty in ActivityStack (I5a4e6)
- Rinomina WindowInfoRepository in WindowInfoTracker.
- Aggiorna le dipendenze java/rxjava/testing in modo che corrispondano. (I0da63)
- Aggiungi una regola di test per un semplice WindowMetricsCalculator. (Ibacdb)
Versione 1.0.0-beta03
27 ottobre 2021
androidx.window:window-*:1.0.0-beta03 è stato rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Nuove funzionalità
- Aggiungi API di incorporamento delle attività sperimentali. Questa versione iniziale del layout consente di mostrare due attività una accanto all'altra.
Modifiche alle API
- È stata rimossa l'API currentWindowMetrics poiché non possiamo fornirla con precisione. Utilizza invece WindowMetricsCalculator (Icda5f).
- È stata aggiornata l'API delle estensioni. (Ica92b)
- È stata aggiunta un'interfaccia per una nuova funzionalità che consente di incorporare le attività e mostrarle affiancate nella finestra dell'attività principale. (I5711d)
- Sono stati nascosti i costruttori per WindowMetrics e WindowLayoutInfo. Utilizza invece le API di test. (I5a1b5)
- Aggiungi un'API per creare oggetti WindowLayoutInfo falsi. (I4a2fd)
Correzioni di bug
- Correzione della perdita di memoria. (I3fc79, b/202989046)
Versione 1.0.0-beta02
1° settembre 2021
androidx.window:window-*:1.0.0-beta02 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Nuove funzionalità
- Aggiungi un'annotazione sperimentale per annotare le API sperimentali. (I9f1b6)
- Aggiungi un metodo di test per creare un test FoldingFeature che accetti un Rect. In questo modo sarà più facile eseguire i test quando utilizzi Robolectric anziché un'attività effettiva. (Id1cca)
Versione 1.0.0-beta01
18 agosto 2021
androidx.window:window-*:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Nuove funzionalità
- Sono state rimosse le vecchie costanti e
FoldingFeatureè diventata un'interfaccia.
Modifiche alle API
- Rimuovi le costanti precedenti e trasforma FoldFeature in un'interfaccia. (I9a2d5)
Correzioni di bug
- Le librerie che dipendono dalla libreria
Test Coresono state aggiornate alla versione1.4.0e ora funzionano con la piattaforma Android versione S. (I88b72, b/189353863)
Versione 1.0.0-alpha10
4 agosto 2021
androidx.window:window-*:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Nuove funzionalità
- Rinomina WindowInfoRepo in WindowInfoRepository e modifica le classi / i file corrispondenti.
- Converti le metriche della finestra corrente in un flusso in WindowInfoRepository, poiché il valore cambia nel tempo.
- Rinomina WindowInfoRepoJavaAdapter in WindowInfoRepoCallbackAdapter
- Aggiungi un metodo helper per creare oggetti FoldingFeature di test
- Aggiorna i pacchetti per raggruppare le classi in base alla funzionalità che supportano.
Modifiche alle API
- Rinomina ActivityExt in ActivityExtensions Modifica da Repo a Repository. (I61a16)
- Aggiorna i pacchetti per le classi. (I23ae2)
- Rimuovi WindowMetrics da WindowInfoRepo (I24663)
- Rimuovi WindowManager e utilizza WindowInfoRepo
- Rendi WindowBackend interno. (I06d9a)
- Converti le metriche della finestra in Flow.
- Rinomina l'adattatore Java in WindowInfoRepoCallbackAdapter
- Rimuovi callbackFlow in modo che non vengano più utilizzate API sperimentali. (Ia4d15)
- Aggiungi un metodo helper per creare funzionalità di visualizzazione di test.
- Modifica da occlusionMode a occlusionType (If4cff)
Correzioni di bug
- Correzione dell'errore Proguard per cui veniva rimossa la libreria principale.
- È stato corretto l'errore per cui WindowLayoutInfo non veniva inviato ad altri abbonati.
- Correzione dell'errore per cui le modifiche alla configurazione non attivavano gli aggiornamenti della funzionalità di chiusura.
Versione 1.0.0-alpha09
30 giugno 2021
androidx.window:window-*:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Nuove funzionalità
- Passa dalle costanti intere agli enum senza limiti.
- Aggiungi un'utilità di test per creare funzionalità di test di piegatura.
Modifiche alle API
- Aggiungi un metodo helper per creare funzionalità di visualizzazione di test. (I3cf54)
- Modifica: da
occlusionModeaocclusionType.
- Modifica: da
Correzioni di bug
- Emetti il valore iniziale quando aggiungi più consumer dei flussi di dati.
Versione 1.0.0-alpha08
16 giugno 2021
androidx.window:window-*:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Nuove funzionalità
- È stato rilasciato un artefatto di test per semplificare i test quando si utilizza WindowInfoRepository. Utilizza WindowInfoRepository per ottenere informazioni su DisplayFeatures e WindowMetrics. (I57f66, Ida620)
Versione 1.0.0-alpha07
2 giugno 2021
androidx.window:window-*:1.0.0-alpha07 è stato rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Nuove funzionalità
- Esegui la migrazione della libreria principale delle finestre a Kotlin. Utilizzerà le coroutine e le funzioni di sospensione per esporre i dati asincroni in futuro.
- Aggiungi WindowInfoRepo come punto di interazione principale per ottenere WindowMetrics e il flusso di WindowLayoutInfo.
- Nuovo artefatto
window-javaper esporre API compatibili con Java per registrare e annullare la registrazione dei callback. - Nuovi artefatti
window-rxjava2ewindow-rxjava3per esporre le API adattate a RxJava.
Modifiche alle API
- Aggiungi
WindowServicesper fornire le dipendenze in modo uniforme.- Aggiungi un'API basata su coroutine per utilizzare le informazioni sul layout della finestra. (Iab70f)
- Esegui la migrazione della libreria di gestione delle finestre principale a Kotlin. (Icca34)
Correzioni di bug
- Aggiungi una nuova classe di dati per rappresentare i limiti delle funzionalità. (I6dcd1)
Versione 1.0.0-alpha06
5 maggio 2021
androidx.window:window:1.0.0-alpha06 è stato rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
Nuove funzionalità
- Abbiamo iniziato la migrazione a Kotlin e la completeremo nella prossima release.
- DeviceState è stato rimosso dall'API pubblica. Utilizza invece FoldingFeature.
- Abbiamo rimosso
STATE_FLIPPEDdagli stati di FoldingFeature perché al momento non è supportato da alcun caso d'uso. - Abbiamo rimosso anche altre API ritirate.
Modifiche alle API
- Aggiunta di Kotlin come dipendenza.
- Esegui la migrazione della libreria principale a Kotlin. (Idd995)
- Generatore
DisplayFeaturerimosso. (I61fa4) DeviceStateè stato rimosso dall'API pubblica. UtilizzaFoldingFeature. (Id6079)- Rimuovi il callback dello stato del dispositivo dalle estensioni. (I5ea83)
- Rimuovi
STATE_FLIPPEDda FoldingFeature. (I9c4e1) - Rimuovere i metodi di registrazione ritirati. (Ib381b)
Versione 1.0.0-alpha05
24 marzo 2021
androidx.window:window:1.0.0-alpha05 è stato rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Nuove funzionalità
Abbiamo aggiunto metodi pratici a FoldingFeature in modo che le app possano sapere se la funzionalità è in fase di separazione o occlusione e determinare l'orientamento della cerniera. Stiamo anche nascondendo il tipo di cerniera in modo che
Stiamo rimuovendo i metodi di lettura sincrona da WindowManager. I metodi di lettura sincrona sono soggetti a errori perché esiste una condizione di competizione implicita. Registra listener e callback per ricevere aggiornamenti su WindowLayoutInfo.
Modifiche alle API
- Aggiungi metodi pratici per lavorare con FoldingFeatures (Ie733f)
- Rimuove i metodi di lettura sincrona da WindowManager (I96fd4)
Versione 1.0.0-alpha04
10 marzo 2021
androidx.window:window:1.0.0-alpha04 è stato rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
- Corregge un bug per cui non viene emesso alcun WindowLayoutInfo se non è presente un'implementazione OEM. Ora emettiamo un WindowLayoutInfo vuoto.
- È stato corretto un bug per cui lo stato non veniva aggiornato correttamente se lo stato della cerniera cambiava mentre l'app era in background. Ora lo stato dovrebbe essere coerente.
- Aggiorna i nostri file Proguard per ignorare gli avvisi delle dipendenze di runtime.
Correzioni di bug
- Emetti un valore vuoto quando manca la libreria OEM. (Ide935)
Versione 1.0.0-alpha03
18 febbraio 2021
androidx.window:window:1.0.0-alpha03 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Nuove funzionalità
- Emetti un valore vuoto per WindowLayoutInfo quando l'implementazione OEM è vuota. In questo modo, sarà più facile utilizzare la raccolta su più dispositivi. Poiché le API sono asincrone, è comunque consigliabile che le app scrivano codice difensivo ed emettano un valore predefinito dopo un timeout. Non abbiamo garanzie sulle implementazioni OEM e il valore iniziale potrebbe essere ritardato.
Correzioni di bug
- Emetti un valore vuoto quando la libreria OEM non è presente. (Ide935)
Versione 1.0.0-alpha02
27 gennaio 2021
androidx.window:window:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Nuove funzionalità
Abbiamo ritirato alcune API per semplificare l'API e ridurre gli errori. Alcuni esempi degni di nota sono la rimozione delle operazioni di lettura sincrona da WindowManager e il ritiro di DeviceState. Le operazioni di lettura sincrona possono portare a race condition e avere un'interfaccia utente errata.
Abbiamo convertito DisplayFeature in un'interfaccia che verrà implementata da altre funzionalità in futuro. La prima funzionalità è FoldingFeature, che ora rappresenta una piega dello schermo o una cerniera. Contiene anche lo stato della sostituzione della cerniera di DeviceState.
WindowMetrics è stato introdotto in Android 11 per fornire agli sviluppatori un modo semplice per eseguire query sulle metriche di una finestra, ad esempio la posizione e le dimensioni sullo schermo e qualsiasi inset di sistema. Abbiamo eseguito il backporting dell'API in questa release in modo che gli sviluppatori possano sfruttare WindowMetrics e continuare a supportare le versioni precedenti di Android. WindowMetrics può essere ottenuto tramite le API
WindowManager#getCurrentWindowMetrics()e WindowManager#getMaximumWindowMetrics().
Modifiche alle API
- Deprecare le API che verranno rimosse nella prossima versione alpha (Ib7cc4)
- Aggiorna
ExtensionInterfaceper accettare riferimenti espliciti all'attività. (I07ded) - Introduce l'API WindowMetrics. (I3ccee)
- Rimuovere i metodi di lettura sincrona da WindowManager (I69983)
- Rendi protetto il pacchetto ExtensionWindowBackend. (Ied208)
Correzioni di bug
- Aggiorna le API
ExtensionInterfaceper accettare i contesti visivi. (I8e827)
Contributo esterno
- Unisci DeviceState e WindowLayoutInfo per semplificare l'accesso ai dati. (Id34f4)
Versione 1.0.0-alpha01
27 febbraio 2020
androidx.window:window:1.0.0-alpha01 e androidx.window:window-extensions:1.0.0-alpha01
sono stati rilasciati. La versione 1.0.0-alpha01 contiene questi commit.
Questa è la prima release della libreria Window Manager.
Nuove funzionalità
DisplayFeature: questa nuova API identifica le interruzioni nelle superfici continue e piatte come cerniere o piegheDeviceState: questa nuova API fornisce la postura attuale dello smartphone da un elenco di posture definite (ad esempio,CLOSED,OPENED,HALF_OPENED, ecc.).