Gestore finestre
Aggiornamento più recente | Release stabile | Candidato per l'uscita | Versione beta | Release alpha |
---|---|---|---|---|
4 settembre 2024 | 1.3.0 | - | - | 1.4.0-alpha02 |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza su WindowManager, devi aggiungere il Repository Maven di Google a del progetto. Letto Repository Maven di Google per saperne di più informazioni.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle
per
l'app o il modulo:
Alla moda
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.
Consulta la documentazione di Issue Tracker per ulteriori informazioni.
Versione 1.4
Versione 1.4.0-alpha02
4 settembre 2024
Viene rilasciato androidx.window:window-*:1.4.0-alpha02
. La versione 1.4.0-alpha02 contiene questi commit.
Nuove funzionalità
Aggiungi il supporto per il campo WindowSizeClass
personalizzato.
- Apri il costruttore per
WindowSizeClass
in modo che gli sviluppatori possano usarne uno proprio. - Aggiungi metodi di utilità
isAtLeast
in modo che gli sviluppatori possano elaborare un intervallo di valoriWindowSizeClass
. - Aggiungi una funzione di estensione su
Set<WindowSizeClass>
per calcolare la corrispondenza migliore del set. - Aggiungi costanti per i punti di interruzione consigliati su 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
WindowSizeClass
per supportare l'aggiunta di nuovi valori dei punti di interruzione in futuro. Anziché avere limiti assoluti, usiamo i limiti inferiori e consigliamo agli sviluppatori di utilizzare controlli del limite inferiore durante l'elaborazione di unWindowSizeClass
. Gli attualiWindowWidthSizeClass
eWindowHeightSizeClass
verranno ritirati perché non verranno sviluppati ulteriormente. (I014ce)
Versione 1.4.0-alpha01
7 agosto 2024
Viene rilasciato androidx.window:window-*:1.4.0-alpha01
. La versione 1.4.0-alpha01 contiene questi commit.
Nuove funzionalità
- Blocco di ActivityStack consente alle app di bloccare i contenuti in un contenitore e di isolarne la navigazione dall'altro.
- Divisore interattivo consente alle app di visualizzare un divisore fisso o trascinabile tra le due attività in una presentazione divisa.
- L'attenuazione della finestra di dialogo a schermo intero consente alle app di specificare l'area di attenuazione delle finestre di dialogo, per attenuare l'intera finestra dell'attività o solo il contenitore che mostra la finestra di dialogo.
- Il callback di informazioni sulla finestra attività incorporata consente alle app di ricevere continuamente gli 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 di ActivityStack migliorata consente alle app di avere un maggiore controllo su
ActivityStacks
quando viene usatoActivityEmbedding
, tra cui: - Avvio di un'attività in un
ActivityStack
specificato - Completamento di un'operazione di
ActivityStack
Modifiche alle API
Una nuova API
WindowInfoTracker#supportedPostures
:- Un'API per determinare se il dispositivo supporta la modalità TableTop per i pieghevoli. Aggiunge WindowAreaSessionPresenter#getWindow
Aggiungi API per supportare il blocco di
ActivityStack
:SplitPinRule
corsoSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
Aggiungi API per abilitare e configurare il divisore interattivo
DividerAttributes
corsoSplitAttributes.Builder#setDividerAttributes
Aggiungi API per impostare
EmbeddingConfiguration
eDimAreaBehavior
per le finestre di dialogoEmbeddingConfiguration
corsoDimAreaBehavior
corsoActivityEmbeddingController#setEmbeddingConfiguration
Aggiungi API per ricevere aggiornamenti sulle informazioni della finestra delle attività incorporate
EmbeddedActivityWindowInfo
corsoActivityEmbeddingController#embeddedActivityWindowInfo
Aggiungi API per impostare lo sfondo dell'animazione di incorporamento
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
Aggiungi le API per completare
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
Aggiungi le API per impostare il lancio di
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Le seguenti API sono stabili e non più sperimentali:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(spostato da SplitController#invalidateTopVisibileSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
Aggiungi API per 1.4. (I56774)
Correzioni di bug
- Corregge il bug su alcuni dispositivi in cui quando una sessione veniva restituita NON DISPONIBILE anziché ATTIVA.
- Rimuove il supporto di
transferActivityToWindowArea
sui dispositivi convendorApiLevel
pari a 2 a causa dell'instabilità del supporto dell'API. - Presenta l'API per abilitare il trascinamento a schermo intero per il divisore trascinabile di incorporamento attività. (I645c9)
- Consenti alle app di disattivare le animazioni di
ActivityEmbedding
tramite i parametri di animazione perSplitAttributes
. (Idc01a) - È stata rimossa la definizione manuale dell’accesso alle nuove API della piattaforma poiché ciò avviene automaticamente tramite la modellazione 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). Si consiglia ai clienti che non utilizzano AGP di eseguire l'aggiornamento alla versione D8 8.1 o successiva. Consulta questo articolo per ulteriori dettagli. (Ia60e0, b/345472586)
- Consenti alle estensioni di accettare i parametri dell'animazione per
SplitAttributes
in modo che il dispositivo possa utilizzarli per le transizioni delle animazioni. (Iede00) - Nascondi API overlay (Ic4251)
- Presentazione delle API per configurare il divisore fisso o trascinabile per la suddivisione (Ia7a78)
- Densità aggiunta a
WindowMetrics
(Id6723) - Aggiungi l'API per ottenere
SupportedPostures
. (If557a). - Rimuovi
setLaunchingActivityStack
dall'API sperimentale (I191cf) - Presenta
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - Ritira
#getToken
e aggiungi#getActivityStackToken
(Ie0471) - Illustra l'adattatore di callback per l'API di flusso
embeddedActivityWindowInfo
(Ida77f) - Aggiungi un adattatore di callback per l'API overlayInfo flow (I7264f)
- Introduci
WindowSdkExtensionsRule
per eseguire l'override diextensionsVersion
per i test. (Ifb928). - - Esegui la migrazione di
#setLaunchingActivityStack
a Bundle per renderla compatibile con gli utilizzi diActivityOptionsCompat
.- Gli utenti devono trasmettere
activityOptions.toBundle
anzichéActvityOptions
stesso. - Rimuovi
#setLaunchingActivityStack(Activity)
. Gli utenti devono eseguire la migrazione per utilizzareActivityEmbeddingController#getActivityStac(Activity)
per ricevere unActivityStack
e passare ilActivityStack
a#setLaunchingActivityStack
. (Ie0CCC)
- Gli utenti devono trasmettere
- - Introduci
ActivityStack.Token
eSpltInfo.Token
come identificatori per la comunicazione tra WM Jetpack e le estensioni.- Ritira/sostituisci le API per acquisire/restituire il token anziché IBinder. (I12b24)
- - Presenta
ActivityEmbeddingController#invalidateVisibleActivityStacks
- Rimuovi
SplitController#invalidateTopVisibleSplitAttributes
perché la caratteristica è consolidata in#invalidateVisibleActivityStacks
(I02ef5)
- Rimuovi
- - Aggiunta dell'API per impostare la configurazione dell'incorporamento. (I59a4a)
- - Aggiunta/sblocco delle prime
ActivityStack
APIandroidx.Window
- .
- Aggiornamento dell'app demo per consentire il blocco/sgancio della parte superiore di
ActivityStack
(I24dd3)
- Aggiornamento dell'app demo per consentire il blocco/sgancio della parte superiore di
- Aggiungi di nuovo
#finishActivityStacks
eActivityEmbeddingOptions
(Ic1ab3) - Rimuovi le API instabili. (Ibc534, b/302380585)
Versione 1.3
Versione 1.3.0
29 maggio 2024
Viene rilasciato androidx.window:window-*:1.3.0
. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Supporto multipiattaforma Kotlin per le classi di dimensioni delle finestre.
Versione 1.3.0-rc01
14 maggio 2024
WindowManager
Jetpack 1.3 offre il supporto Kotlin Multiplatform per le funzionalità WindowSizeClass
e numerose correzioni di bug.
Viene rilasciato androidx.window:window-*:1.3.0-rc01
. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta02
1° maggio 2024
Viene rilasciato androidx.window:window-*:1.3.0-beta02
. La versione 1.3.0-beta02 contiene questi commit.
Modifiche alle API
- Rimuovi il supporto per la creazione e l'utilizzo di
WindowSizeClass
personalizzati. (ID1143)
Correzioni di bug
- Corregge il problema
KotlinReflectionInternalError
causato dall'eliminazione di alcuni file da parte di ProGuard in determinate implementazioni del dispositivo. (I01b02)
Versione 1.3.0-beta01
3 aprile 2024
Viene rilasciato androidx.window:window-*:1.3.0-beta01
. La versione 1.3.0-beta01 contiene questi commit.
Versione 1.3.0-alpha03
6 marzo 2024
Viene rilasciato androidx.window:window-*:1.3.0-alpha03
. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche alle API
- Suddividi
WindowSizeClassUtil
in metodi più mirati. (Ie9292). - Ripristina
WindowSizeClass#compute
(I21355, b/324293374)
Correzioni di bug
- Corregge l'arresto anomalo per cui il contesto fornito non veniva decriptato correttamente. (94d10ce , b/318787482)
Versione 1.3.0-alpha02
7 febbraio 2024
Viene rilasciato androidx.window:window-*:1.3.0-alpha02
. La versione 1.3.0-alpha02 contiene questi commit.
Nuove funzionalità
- Aggiornamenti apportati all'interfaccia API dell'API Window Size Class per migliorare la flessibilità per gli sviluppatori che vogliono utilizzare classi di dimensioni proprie.
Modifiche alle API
- Aggiungi vincoli di altezza al selettore della larghezza. (I23393)
- Aggiungi funzioni di utilità per scegliere un
WindowSizeClass
da un set. Aggiungi funzioni sperimentali di punteggio in modo che gli sviluppatori possano scrivere i propri selettori. Aggiungi una funzione di estensione del selettore per scegliere il valoreWindowSizeClass
più ampio all'interno di un determinato limite. (I0c944) - Apri il costruttore
WindowSizeClass
per 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
- È stata corretta l'eccezione quando il valore in virgola mobile viene troncato a 0. (272ffac)
Versione 1.3.0-alpha01
15 novembre 2023
Viene rilasciato androidx.window:window-*:1.3.0-alpha01
. La versione 1.3.0-alpha01 contiene questi commit.
Nuove funzionalità
- Esporre le API sperimentali per le finestre per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeature
sono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbedding
falsi sono ora stabili. WindowLayoutInfoPublisherRule
ora segnala l'override quando ottieni un valore da unUiContext
.WindowInfoTracker
segnala la limitazione dei dati delle caratteristiche aUiContext
parametri.- Esporre la versione delle estensioni sul dispositivo.
- Costanti
WindowProperties
per override utente per app:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: informa la Sistema l'app ha disattivato la compatibilità delle proporzioni rivolte agli utenti eseguire l'override.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
- Informazioni Il sistema in cui l'app ha disattivato l'opzione a schermo intero dell'utente impostazioni di sostituzione della compatibilità delle proporzioni
Versione 1.2
Versione 1.2.0
15 novembre 2023
Viene rilasciato androidx.window:window-*:1.2.0
. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
- Esporre le API sperimentali per le finestre per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeature
sono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbedding
falsi sono ora stabili. WindowLayoutInfoPublisherRule
ora segnala l'override quando ottieni un valore da unUiContext
.WindowInfoTracker
segnala la limitazione dei dati delle caratteristiche aUiContext
parametri.- Esporre la versione delle estensioni sul dispositivo.
Versione 1.2.0-rc01
1° novembre 2023
Viene rilasciato androidx.window:window-*:1.2.0-rc01
. La versione 1.2.0-rc01 contiene questi commit.
Nuove funzionalità
- Esporre le API sperimentali per le finestre per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeature
sono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbedding
falsi sono ora stabili. WindowLayoutInfoPublisherRule
ora segnala l'override quando ottieni un valore da unUiContext
.WindowInfoTracker
segnala la limitazione dei dati delle caratteristiche aUiContext
parametri.- Esporre la versione delle estensioni sul dispositivo.
Versione 1.2.0-beta04
18 ottobre 2023
Viene rilasciato androidx.window:window-*:1.2.0-beta04
. 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
Viene rilasciato androidx.window:window-*:1.2.0-beta03
. La versione 1.2.0-beta03 contiene questi commit.
Nuove funzionalità
- Aggiungi i controlli
RequiresApi
per 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 finestra richiesta sulle API pubbliche.
- Rimuovi
isXXXSupported
nel componente Incorporamento attività. (Ie3dae).
- Rimuovi
- Presenta
WindowSdkExtensions
per segnalare la versione dell'estensione sul dispositivo.- Presenta
RequiresWindowSdkExtension
per annotare la versione minima dell'estensione richiesta. (I05fd4)
- Presenta
- Imposta
WindowAreaInfo#getCapability
come non null. (I17048)
Versione 1.2.0-beta01
26 luglio 2023
Viene rilasciato androidx.window:window-*:1.2.0-beta01
. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Esporre le API sperimentali per le finestre per accedere allo schermo posteriore.
- Le API di test per la creazione di un
FoldingFeature
sono ora stabili. - Le API di test per la configurazione di valori
ActivityEmbedding
falsi sono ora stabili. WindowLayoutInfoPublisherRule
ora segnala l'override quando ottieni un valore da unUiContext
.WindowInfoTracker
segnala la limitazione dei dati delle caratteristiche aUiContext
parametri.
Modifiche alle API
- Contrassegna l'API
WindowArea
come sperimentale per consentire il proseguimento delle modifiche all'API per una release stabile 1.3 (I857f5) - File API aggiornati per annotare l'eliminazione della compatibilità (I8e87a, b/287516207)
Versione 1.2.0-alpha03
21 giu 2023
Viene rilasciato androidx.window:window-*:1.2.0-alpha03
. La versione 1.2.0-alpha03 contiene questi commit.
Nuove funzionalità
- Rimuovere le API deprecate dalla piattaforma API.
- Aggiungi API per supportare display simultanei.
- Aggiungi una proprietà per disattivare l'override del ridimensionamento forzato.
- Aggiungi la proprietà per disattivare la sostituzione delle proporzioni minime.
- Stabilizza
ActivityEmbeddingRule
per supportare i test delle unità relative all'incorporamento delle attività.
Modifiche alle API
Correzioni di bug
- Aggiunta della proprietà di compatibilità della disattivazione per la sostituzione forzata del ridimensionamento (Ie7ab1)
- Rimuove
SESSION_STATE_CONTENT_INVISIBLE
dall'interfaccia delle estensioni. (I6ed19) - Stabilizza
ActivityEmbeddingRule
per supportare i test delle unità relative all'incorporamento dell'attività. (I8d6b6) - Aggiunta della proprietà di compatibilità della disattivazione per la sostituzione delle proporzioni minime. (I66390)
- Rimuove le API WindowArea ritirate (Ieb67c)
- Rinomina la proprietà di loop della richiesta di orientamento in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
. (Ie2fbd) - Aggiorna i nomi delle costanti di sessione nell'area della finestra (I83675)
- Aggiunta di una proprietà di disattivazione che ignora il loop di richiesta di orientamento quando viene rilevata (I0a7a2)
- Aggiungi
WindowAreaComponent#STATUS_ACTIVE
per indicare che la funzionalità è già attiva. (I62bc3) - Aggiunta di API
RearDisplayPresentationMode
(I0401c) - Rimuovi l'API del colore di sfondo per la versione stabile. (I34c3e).
- API per nascondere l'area della finestra. (I39de0)
- Aggiungi metodi per eseguire l'override di
SplitInfo
inSplitController
. Aggiungi metodi di test per creare un doppio perSplitInfo
eActivityStack
. (Icd69f) - Rendi il tag facoltativo per
ActivityRule.Builder
. (Ib0b44). - Rimuovi
RatioSplitType
,ExpandContainersSplit
eHingeSplitType
. Ora sonoSplitType
.- Sostituisci
#splitEqually()
,#expandContainers()
e#splitByHinge
con le costantiSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
eSPLIT_TYPE_HINGE
- Rimuovi la funzionalità per impostare il tipo di riserva del tipo di suddivisione in cerniera. Se il tipo di suddivisione incerniera non può essere applicato a causa dello stato attuale del dispositivo o della finestra, utilizza i metodi di riserva per suddividere equamente il contenitore di attività principale. Utilizza
SplitController#setSplitAttributesCalculator
per personalizzare il tipo di suddivisione di riserva. (Ifcc59)
- Sostituisci
- Ritira
add
/removeSplitCallback
- .
- Sposta
add
/removeSplitCallback
inSplitControllerCallbackAdapter
- Aggiungi l'assistenza
Flow
per ottenere l'elencoSplitInfo
(I7f1b6)
- Sposta
- Aggiunta di una regola di test per
ActivityEmbeddingController
(I42e9b) - Ridenominazione di
ActivityOptionsCompat
inActivityEmbeddingOptions
(I89301) - Aggiungi
splitSupportStatus
per indicare se l'incorporamento dell'attività è disponibile. (I10024) - Presenta
SplitAttributes.BackgroundColor
per rappresentare al meglio il valoreDEFAULT
. Chiarire che il colore di sfondo dell'animazione non opaco non è supportato, pertanto tutti i colori non opachi verranno considerati predefiniti, utilizzando il colore di sfondo della finestra del tema corrente. (Ic6b95) - Sostituisci
alwaysAllow()
ealwaysDisallow()
conALWAYS_ALLOW
eALWAYS_DISALLOW
. (I3057b) - Aggiungi API per
SplitRule
,SplitAttributes
,SplitAttributesCalculator
. (I92d23) - Aggiungi
TestActivityStack
per creareActivityStack
per i test- .
- Aggiungi
TestSplitInfo
per creareSplitInfo
per i test. (I8e779)
- Aggiungi
- Aggiungi un modo per creare
SplitAttributesCalculatorParams
falsi, in modo che gli sviluppatori possano verificare il loroSplitAttributesCalculator
personalizzato (Id4a6e) - Aggiungi
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
eWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
Versione 1.2.0-alpha02
7 giugno 2023
Viene rilasciato androidx.window:window-*:1.2.0-alpha02
. La versione 1.2.0-alpha02 contiene questi commit.
Nuove funzionalità
- Aggiorna l'API di test in modo che abbia una costante per gli elementi di piegatura non specificati.
- Se esegui l'override di
WindowLayoutInfoPublishRule
, verranno sostituiti tutti i valori diwindowLayoutInfo
, inclusa l'API basata sul contesto.
Modifiche alle API
- Aggiungi costante per la caratteristica di piegatura centrale non specificata. (I7530c)
Correzioni di bug
- Aggiorna
WindowLayoutInfoPublishRule
per supportare gli override suContext
basati suWindowLayoutInfo
. (I2037a)
Versione 1.2.0-alpha01
24 maggio 2023
Viene rilasciato androidx.window:window-*:1.2.0-alpha01
. La versione 1.2.0-alpha01 contiene questi commit.
Nuove funzionalità
Stabilizza le API di test sull'incorporamento delle attività e su WindowLayoutInfoTracker
. ActivityEmbeddingRule
è stato promosso alla versione stabile.
WindowMetricsCalculatorRule
è stato promosso alla versione stabile.
Le funzioni di utilità per creare un FoldingFeature
per il test sono state promosse allo stato stabile.
Modifiche alle API
- Stabilizza
ActivityEmbeddingRule
per supportare i test delle unità relative all'incorporamento dell'attività. (I8d6b6) WindowMetrisCalculatorTestRule
è stabile e consente metriche stub per i test JVM. Per ottenere risultati precisi, consigliamo di utilizzare un emulatore.- Stabilizza le API di test per
WindowLayoutInfo
al fine di supportare i test JVM. (Ie036e). - Aggiungi
IntRange
per i valori delle caratteristiche pieghevoli di prova. (I69f7d)
Versione 1.1
Versione 1.1.0
7 giugno 2023
Viene rilasciato androidx.window:window-*:1.1.0
. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
Incorporamento delle attività
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
è stato aggiunto come proprietà booleana del tag<application>
nel file manifest dell'app.- Deprecato
isSplitSupported
e sostituito consplitSupportStatus
per fornire informazioni più dettagliate sul motivo per cui la funzionalità di suddivisione non è disponibile. - È stata aggiunta la classe nidificata
SplitController.SplitSupportStatus
per fornire le costanti di stato per la proprietàsplitSupportStatus
. - Eseguito refactoring di
SplitController
in diversi moduli:- Modulo
ActivityEmbeddingController
perActivity
oActivityStack
API correlate. isActivityEmbedded
spostato daSplitController
aActivityEmbeddingController
.- Modulo
RuleController
perEmbeddingRule
operazioni correlate: SplitController
API rimosse:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API aggiunte:addRule()
: consente di aggiungere una regola o di aggiornarla 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 partendo dalle definizioni delle regole XML.
- Modulo
- Tutti i moduli richiedono un contesto da inizializzare con il metodo
#getInstance()
, tra cui:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- È stata aggiunta la classe
EmbeddingAspectRatio
per definire le costanti di comportamento di tipo enum relative alle proporzioni del display. - È stata aggiunta la classe
SplitAttributes
per definire il layout diviso. - Sono state aggiunte le funzioni della calcolatrice
SplitAttributes
aSplitController
per personalizzare i layout suddivisi:- .
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
per verificare se le APISplitAttributesCalculator
sono supportate sul dispositivo
- Campo
EmbeddingRule#tag
aggiunto. - Aggiornamenti dell'API in
SplitRule
:defaultSplitAttributes
aggiunto: definisce il layout di suddivisione predefinito di una suddivisione; sostituiscesplitRatio
elayoutDirection
.- È stata aggiunta la traduzione delle proprietà XML
splitRatio
esplitLayoutDirection
indefaultSplitAttributes
. - Definizioni delle dimensioni minime modificate per utilizzare i pixel indipendenti dalla densità (dp) anziché i pixel.
- È stato aggiunto
minHeightDp
con valore predefinito di 600 dp. minWidth
modificato inminWidthDp
con il valore predefinito di 600 dp.minSmallestWidth
modificato inminSmallestWidthDp
con il valore predefinito di 600 dp.- Aggiunto
maxAspectRatioInHorizontal
con valore predefinitoALWAYS_ALLOW
. - È stato aggiunto
maxAspectRatioInPortrait
con valore predefinito 1.4. - È stata definita la classe nidificata
FinishBehavior
per sostituire le costanti del comportamento di completamento. - Le modifiche alla proprietà sono state applicate alla classe nidificata
SplitPairRule
eSplitPlaceholderRule
del Builder.
- È stato sostituito
SplitInfo#getSplitRatio()
conSplitInfo#getSplitAttributes()
per fornire ulteriori informazioni relative alla suddivisione.
Layout finestra
- Aggiunto il supporto sperimentale del contesto dell'interfaccia utente non relativo alle attività a
WindowInfoTracker
. - È stato aggiunto un contesto dell'interfaccia utente sperimentale per la non attività a
WindowMetricsCalculator
.
Passaggi della migrazione
- Per consentire l'incorporamento delle attività per visualizzare le attività in suddivisioni, le app devono aggiungere la proprietà
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
al tag<application>
manifest:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Ciò consente al sistema di ottimizzare in anticipo i comportamenti di suddivisione per un'applicazione. - Rapporto
SplitInfo
- Controlla se la suddivisione corrente è in pila:
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 suddivisione corrente è in pila:
- Migrazioni di SplitController:
SplitController.getInstance()
diventaSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
diventaRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
diventaActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
diventaRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
diventaRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
diventaRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
diventaRuleController.getInstance(Context).getRules()
.
SplitRule
migrazioni di proprietà:minWidth
eminSmallestWidth
ora 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 dividereminWith
in pixel perdisplayMetrics#density
.
- È necessario eseguire la migrazione delle costanti di comportamento finali a
FinishBehavior
costanti di classe enum:FINISH_NEVER
diventaFinishBehavior.NEVER
.FINISH_ALWAYS
diventaFinishBehavior.ALWAYS
.FINISH_ADJACENT
diventaFinishBehavior.ADJACENT
.
- È necessario eseguire la migrazione a
SplitAttributes.LayoutDirection
della direzione del layout:ltr
diventaSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
diventaSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
diventaSplitAttributes.LayoutDirection.LOCALE
.- È necessario eseguire la migrazione di
splitRatio
aSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migrazioni:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
modifica 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() )
setFinishPrimaryWithSecondary
esetFinishSecondaryWithPrimary
prendono le costanti di tipo enumFinishBehavior
. Per maggiori dettagli, consulta "Migrazioni delle regole di suddivisione".- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
per mostrare i tempi intermedi sui dispositivi verticali.
SplitPlaceholder.Builder
migrazioni:- Ha solo i parametri
filters
eplaceholderIntent
. Le altre proprietà vengono spostate nei setter. Per maggiori dettagli, consulta "SplitPairRule.Builder Migrazioni". setFinishPrimaryWithPlaceholder
prende le costanti di tipo enumFinishBehavior
. Per maggiori dettagli, consulta "Migrazioni delle regole di suddivisione".setLayoutDirection(layoutDirection)
esetSplitRatio(ratio)
diventano:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
per mostrare i tempi intermedi sui dispositivi verticali.
- Ha solo i parametri
Versione 1.1.0-rc01
10 maggio 2023
Viene rilasciato androidx.window:window-*:1.1.0-rc01
. La versione 1.1.0-rc01 contiene questi commit.
Nuove funzionalità
- Rilascia
ActivityEmbedding
come API stabile. - Correzione di vari bug.
Versione 1.1.0-beta02
5 aprile 2023
Viene rilasciato androidx.window:window-*:1.1.0-beta02
. La versione 1.1.0-beta02 contiene questi commit.
Nuove funzionalità
- Correzioni interne e pulizia.
Versione 1.1.0-beta01
22 marzo 2023
Viene rilasciato androidx.window:window-*:1.1.0-beta01
. La versione 1.1.0-beta01 contiene questi commit.
Incorporamento delle attività
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
è stato aggiunto come proprietà booleana del tag<application>
nel file manifest dell'app.- Deprecato
isSplitSupported
e sostituito consplitSupportStatus
per fornire informazioni più dettagliate sul motivo per cui la funzionalità di suddivisione non è disponibile. - È stata aggiunta la classe nidificata
SplitController.SplitSupportStatus
per fornire le costanti di stato per la proprietàsplitSupportStatus
. - Eseguito refactoring di
SplitController
in diversi moduli:- Modulo
ActivityEmbeddingController
perActivity
oActivityStack
API correlate. isActivityEmbedded
spostato daSplitController
aActivityEmbeddingController
.- Modulo
RuleController
perEmbeddingRule
operazioni correlate: SplitController
API rimosse:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- Aggiunte
RuleController
API:addRule()
: consente di aggiungere una regola o di aggiornarla 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 in base alle definizioni delle regole XML.
- Modulo
- Tutti i moduli richiedono un contesto da inizializzare con il metodo
#getInstance()
, tra cui:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- È stata aggiunta la classe
EmbeddingAspectRatio
per definire le costanti di comportamento di tipo enum relative alle proporzioni del display. - È stata aggiunta la classe
SplitAttributes
per definire il layout diviso. - Sono state aggiunte le funzioni della calcolatrice
SplitAttributes
aSplitController
per personalizzare i layout suddivisi:- .
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
per verificare se le API SplitAttributesCalculator sono supportate sul dispositivo
- Campo
EmbeddingRule#tag
aggiunto. - Aggiornamenti dell'API in
SplitRule
:defaultSplitAttributes
aggiunto: definisce il layout di suddivisione predefinito di una suddivisione; sostituiscesplitRatio
elayoutDirection
.- È stata aggiunta la traduzione delle proprietà XML
splitRatio
esplitLayoutDirection
indefaultSplitAttributes
. - Definizioni delle dimensioni minime modificate per utilizzare i pixel indipendenti dalla densità (dp) anziché i pixel.
- È stato aggiunto
minHeightDp
con valore predefinito di 600 dp. minWidth
modificato inminWidthDp
con il valore predefinito di 600 dp.minSmallestWidth
modificato inminSmallestWidthDp
con il valore predefinito di 600 dp.- Aggiunto
maxAspectRatioInHorizontal
con valore predefinitoALWAYS_ALLOW
. - Aggiunto
maxAspectRatioInPortrait
con valore predefinito1.4
. - È stata definita la classe nidificata
FinishBehavior
per sostituire le costanti del comportamento di completamento. - Le modifiche alla proprietà sono state applicate alla classe nidificata
Builder
diSplitPairRule
eSplitPlaceholderRule
.
- È stato sostituito
SplitInfo#getSplitRatio()
conSplitInfo#getSplitAttributes()
per fornire ulteriori informazioni relative alla suddivisione.
Layout finestra
- Aggiunto il supporto del contesto UI non attivo a
WindowInfoTracker
. - È stato aggiunto un contesto UI non di attività a
WindowMetricsCalculator
.
Passaggi della migrazione
- Per consentire l'incorporamento delle attività per visualizzare le attività in suddivisioni, le app devono aggiungere la proprietà
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
al tag<application>
manifest:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
Ciò consente al sistema di ottimizzare in anticipo i comportamenti di suddivisione per un'applicazione. - Rapporto
SplitInfo
- Controlla se la suddivisione corrente è in pila:
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 suddivisione corrente è in pila:
SplitController
migrazioni:SplitController.getInstance()
diventaSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
modifica inRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
diventaActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
diventaRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
diventaRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
diventaRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
diventaRuleController.getInstance(Context).getRules()
.
SplitRule
migrazioni di proprietà:minWidth
eminSmallestWidth
ora 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 dividereminWith
in pixel perdisplayMetrics#density
.
- È necessario eseguire la migrazione delle costanti di comportamento finali a
FinishBehavior
costanti di classe enum:FINISH_NEVER
diventaFinishBehavior.NEVER
.FINISH_ALWAYS
diventaFinishBehavior.ALWAYS
.FINISH_ADJACENT
diventaFinishBehavior.ADJACENT
.
- È necessario eseguire la migrazione a
SplitAttributes.LayoutDirection
della direzione del layout:ltr
diventaSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
diventaSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
diventaSplitAttributes.LayoutDirection.LOCALE
.- È necessario eseguire la migrazione di
splitRatio
aSplitAttributes.SplitType.ratio(splitRatio)
.
SplitPairRule.Builder
migrazioni:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
modifica inkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
esetSplitRatio(ratio)
diventanokotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
esetFinishSecondaryWithPrimary
prendono le costanti di tipo enumFinishBehavior
. Per maggiori dettagli, consulta "Migrazioni delle regole di suddivisione".- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
per mostrare i tempi intermedi sui dispositivi verticali.
SplitPlaceholder.Builder
migrazioni:- Ha solo i parametri
filters
eplaceholderIntent
. Le altre proprietà vengono spostate nei setter. Per maggiori dettagli, consulta "SplitPairRule.Builder Migrazioni". setFinishPrimaryWithPlaceholder
prende le costanti di tipo enumFinishBehavior
. Per maggiori dettagli, consulta "Migrazioni delle regole di suddivisione".setLayoutDirection(layoutDirection)
esetSplitRatio(ratio)
diventano:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Usa
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
per mostrare i tempi intermedi sui dispositivi verticali.
- Ha solo i parametri
Versione 1.1.0-alpha06
22 febbraio 2023
Viene rilasciato androidx.window:window-*:1.1.0-alpha06
. La versione 1.1.0-alpha06 contiene questi commit.
Nuove funzionalità
- Espone la versione sperimentale per il recupero di
WindowLayoutInfo
da un contesto dell'interfaccia utente.
Modifiche alle API
- Aggiungi
splitSupportStatus
per indicare se l'incorporamento dell'attività è disponibile. (I10024) - Imposta l'API UI Context
WindowLayoutInfo
come sperimentale. (I58ee0) - Introduce
WindowAreaController
e le API per consentire alla modalitàRearDisplay
di spostare la finestra corrente sul display allineata con la fotocamera posteriore. (Iffcbf) - Aggiorna il colore di 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_ALLOW
eALWAYS_DISALLOW
. - Aggiorna la documentazione dell'API di @see con la documentazione autonoma. (I3057b)
- Sostituisci
- I seguenti costruttori vengono rimossi dalle API pubbliche perché non dovrebbero essere chiamati dalle app.
- Costruttore
SplitInfo
- Costruttore
ActivityStack
(Ide534)
- Costruttore
SplitRule
ora richiedemaxAspectRatioInPortrait/Landscape
. Consente la suddivisione delle attività solo quando le proporzioni dei limiti principali sono minori o uguali al valoremaxAspectRatio
richiesto. (Ia5990)- Modifica
RuleController#parseRules
in statico (I785df) - Migliora le API per ActivityEmbedding
- Allinea la denominazione delle API - Utilizza aggiungi/rimuovi per più istanze:
registerRule
modifica inaddRule
unregisterRule
modifica inremoveRule
- Sostituisci
getSplitRules
congetRules
poichéActivityRule
non è una regola di suddivisione - Aggiungi
RuleController#setRules
per impostare un gruppo di regole - Estrai le API relative alle regole da
SplitController
a singletonRuleController
. Sono: addRule
removeRule
getRules
setRules
clearRules
parseRules
- Estrai
#isActivityEmbedded
daSplitController
a singletonActivityEmbeddingController
. Sono: isActivityEmbedded
- Rimuovi
SplitController#initialize
. Per impostare regole da un file XML, utilizzaRuleController#parseRules
e#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)
- Le regole statiche non si distinguono più dalle regole di runtime. Detto questo, viene richiamato il risultato di
#clearRules
per cancellare tutte le regole, indipendentemente dalla loro registrazione con definizioni di regole XML statiche o in fase di runtime. Per avere il comportamento precedente diSplitController#clearRegisteredRules
, chiamaRuleController#parseRules
con l'ID risorse XML e chiamaRuleController#setRules
per ripristinare 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 in considerazione le dimensioni minime in DP anziché in pixel per
SplitRule
. - Esegui il refactoring per
SplitRule
Builder in modo che prenda le dimensioni minime come facoltative. (I95f17)
- Prendi in considerazione le dimensioni minime in DP anziché in pixel per
- Passa un contesto per inizializzare
SplitController
(I42549) SplitRule#layoutDir
è stato rinominato in#layoutDirection
eSplitRule Builder#setLayoutDir
inBuilder#setLayoutDirection
. (I3f6d1).
Versione 1.1.0-alpha04
9 novembre 2022
Viene rilasciato androidx.window:window-*:1.1.0-alpha04
. La versione 1.1.0-alpha04 contiene questi commit.
Nuove funzionalità
- Esponi un metodo per determinare se un elemento
ActivityStack
è vuoto perActivityEmbedding
. - Sono stati rimossi i tag API sperimentali dalle API
ActivityEmbedding
. - Nascondi il costruttore
ActivityRule
perchéBuilder
è il metodo preferito per la creazione. - Aggiungi un metodo sperimentale per visualizzare
WindowInsets
suWindowMetrics
. - Aggiorna
SplitPlaceholderFinishBehavior
per evitare di terminare il segnaposto. La fine del segnaposto ha causato un comportamento confuso.
Modifiche alle API
- Rendi pubblico il valore
isEmpty
per sostituire il divertenteisEmpty
. - Rinomina le attività dei parametri
ActivityStack
inactivitiesInProcess
. (Ia5055) - Rimuovi
ActivityFilter#matchesClassName
eActivityFilter#matchesClassNameOrWildCard
perché generano confusione. - Aggiungi
ActivityFilter#componentName
abdActivityFilter#intentAction
per consentire al chiamante di distinguere i diversi filtri (I41f22) - Rimuovi le API
@Deprecated
dall'API sperimentale (I216b3) - Rimuovi
@ExperimentalWindowApi
per le API di incorporamento delle attività (I69ebe) - Nascondi il costruttore
ActivityRule
, usa invece Builder. (If4eb6). - Aggiungi API per verificare se un'attività fa parte dell'
ActivityFilter
. (Ia43cf) - Aggiorna i file API per riflettere le modifiche nei corsi
WindowMetrics
eWindowMetricsCalculatorCompat
(I667fe) - Aggiorna il Javadoc della proprietà e il nome della classe di
ActivityEmbedding
(Ia1386) - Aggiunta di nomi di tag proprietà
ActivityEmbedding
da utilizzare in AndroidManifest.xml (Id1ad4) - Sono state aggiunte le nuove API
SplitPlaceholderFinishBehavior
eSplitPlaceholderRule.finishPrimaryWithPlaceholder
, che sostituiscono leSplitPlaceholderRule.finishPrimaryWithSecondary
esistenti, che definiscono quando vengono terminate le attività segnaposto e come dovrebbero comportarsi le attività associate nell'incorporamento delle attività. (I64647)
Correzioni di bug
- Introduce
WindowAreaController
e le API per consentire alla modalitàRearDisplay
di spostare la finestra corrente sul display allineata con la fotocamera posteriore. (I388ab)
Versione 1.1.0-alpha03
27 luglio 2022
Viene rilasciato androidx.window:window-*:1.1.0-alpha03
. 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
Viene rilasciato androidx.window:window-*:1.1.0-alpha02
. La versione 1.1.0-alpha02 contiene questi commit.
Nuove funzionalità
- Rilascia le librerie degli adattatori per supportare Java e RxJava.
Versione 1.1.0-alpha01
11 maggio 2022
Viene rilasciato androidx.window:window-*:1.1.0-alpha01
. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- Rilascia adattatori per supportare java e RxJava
Versione 1.1.0-alpha01
20 aprile 2022
Viene rilasciato androidx.window:window:1.1.0-alpha01
. La versione 1.1.0-alpha01 contiene questi commit.
Nuove funzionalità
- Corregge un bug per cui lo sfondo di un'app smette di inviare funzionalità di piegatura.
- Espandi l'API sperimentale ActivityEmbedding.
Modifiche alle API
- Un'API pubblica per verificare se un'attività è stata incorporata. (I39eb7)
Correzioni di bug
- Aggiungi API che personalizzano il comportamento di finitura per i container nelle suddivisioni delle attività (I1a1e4)
- È stata aggiunta una nuova opzione di configurazione per le regole di suddivisione attività. (Iec6af)
Versione 1.0
Versione 1.0.0
26 gennaio 2022
Viene rilasciato androidx.window:window-*:1.0.0
. La versione 1.0.0 contiene questi commit.
Funzionalità principali di 1.0.0
- Supporto per smartphone pieghevoli fino a
WindowInfoTracker
eFoldingFeature
.WindowMetricsCalculator
per aiutarti a calcolare le attuali metriche Window.
Versione 1.0.0-rc01
15 dicembre 2021
Viene rilasciato androidx.window:window-*:1.0.0-rc01
. La versione 1.0.0-rc01 contiene questi commit.
Nuove funzionalità
- Aggiungi il supporto per gli smartphone pieghevoli fino al giorno
WindowInfoTracker
. - Aggiungi metodi per calcolare il valore attuale e quello massimo di
WindowMetrics
. - Aggiungi API di test di supporto.
Versione 1.0.0-beta04
17 novembre 2021
Viene rilasciato androidx.window:window-*:1.0.0-beta04
. La versione 1.0.0-beta04 contiene questi commit.
Nuove funzionalità
- Rinomina WindowInfoRepository in WindowInfoTracker.
- Rendi Attività una dipendenza esplicita del metodo per WindowInfoTracker.
- Aggiungi una semplice TestRule per WindowMetricsCalculator per supportare gli sviluppatori che utilizzano Robolectric.
Modifiche alle API
- Estrai le estensioni (I25a5f)
- add 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
Viene rilasciato androidx.window:window-*:1.0.0-beta03
. La versione 1.0.0-beta03 contiene questi commit.
Nuove funzionalità
- Aggiungi API sperimentali di incorporamento delle attività. Questa versione di layout iniziale consente di mostrare due attività affiancate.
Modifiche alle API
- È stata rimossa l'API currentWindowMetrics perché non è possibile specificarla. Usa invece WindowMetricsCalculator (Icda5f)
- L'API delle estensioni è stata aggiornata. (Ica92b)
- È stata aggiunta un'interfaccia per una nuova funzionalità che consente di incorporare le attività e mostrarle una accanto all'altra all'interno dell'unità finestra dell'attività. (I5711d)
- Ha nascosto 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
- È stata corretta la perdita di memoria. (I3fc79, b/202989046)
Versione 1.0.0-beta02
1° settembre 2021
Viene rilasciato androidx.window:window-*:1.0.0-beta02
. 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 una funzionalità FoldingFeature di prova che accetta un rettangolo. In questo modo sarà più semplice eseguire dei test quando si utilizza Robolectric, anziché un'attività effettiva. (Id1cca)
Versione 1.0.0-beta01
18 agosto 2021
Viene rilasciato androidx.window:window-*:1.0.0-beta01
. La versione 1.0.0-beta01 contiene questi commit.
Nuove funzionalità
- Sono state rimosse le costanti precedenti e trasformato
FoldingFeature
in un'interfaccia.
Modifiche alle API
- Rimuovi le vecchie costanti e rendi FoldFeature un'interfaccia. (I9a2d5).
Correzioni di bug
- Le librerie che dipendono dalla libreria
Test Core
sono state è stato eseguito l'upgrade alla versione1.4.0
e ora funzionerà con la piattaforma Android versione S. (I88b72, b/189353863)
Versione 1.0.0-alpha10
4 agosto 2021
Viene rilasciato androidx.window:window-*:1.0.0-alpha10
. La versione 1.0.0-alpha10 contiene questi commit.
Nuove funzionalità
- Rinomina WindowInfoRepo in WindowInfoRepository e modifica le classi e 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 il metodo helper per creare oggetti FoldingFeature di test
- Aggiornare i pacchetti in corsi di gruppo in base alle funzionalità che supportano.
Modifiche alle API
- Rinomina ActivityExt in Activity Extensions Passa da repository a repository. (I61a16)
- Aggiornare i pacchetti per i corsi. (I23ae2).
- Rimuovi WindowMetrics da WindowInfoRepo (I24663)
- Rimuovi WindowManager e utilizza WindowInfoRepo
- Imposta WindowBackend come interno. (I06d9a)
- Converti le metriche della finestra in Flow.
- Rinomina l'adattatore Java in WindowInfoRepoCallbackAdapter
- Rimuovi callbackFlow per evitare che vengano utilizzate altre API sperimentali. (Ia4d15)
- Aggiungi il metodo di supporto per creare funzionalità di visualizzazione di prova.
- Passaggio da occlusionMode a occlusionType (If4cff)
Correzioni di bug
- È stato corretto l'errore di ProGuard per cui la libreria di base veniva rimossa.
- È stato corretto l'errore per cui WindowLayoutInfo non veniva pubblicato per altri sottoscrittori.
- È stato corretto l'errore per cui le modifiche alla configurazione non attivavano gli aggiornamenti delle funzionalità pieghevoli.
Versione 1.0.0-alpha09
30 giugno 2021
Viene rilasciato androidx.window:window-*:1.0.0-alpha09
. La versione 1.0.0-alpha09 contiene questi commit.
Nuove funzionalità
- Passare da costanti intere a enumerazioni illimitate.
- Aggiungi un util di test per creare caratteristiche di test folding.
Modifiche alle API
- Aggiungi il metodo di supporto per creare funzionalità di visualizzazione di prova. (I3cf54)
- .
- Cambia da
occlusionMode
aocclusionType
.
- Cambia da
Correzioni di bug
- Emetti valore iniziale quando aggiungi più consumer degli stream di dati.
Versione 1.0.0-alpha08
16 giugno 2021
Viene rilasciato androidx.window:window-*:1.0.0-alpha08
. 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
Viene rilasciato androidx.window:window-*:1.0.0-alpha07
. La versione 1.0.0-alpha07 contiene questi commit.
Nuove funzionalità
- Esegui la migrazione della libreria di finestre principali 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 WindowsMetrics e il flusso di WindowLayoutInfo.
- Nuovo artefatto
window-java
per esporre le API compatibili con Java per registrare e annullare la registrazione dei callback. - Nuovi artefatti
window-rxjava2
ewindow-rxjava3
per esporre le API adattate RxJava.
Modifiche alle API
- Aggiungi
WindowServices
per fornire le dipendenze in modo uniforme.- Aggiungi un'API basata su coroutine per utilizzare le informazioni sul layout delle finestre. (Iab70f)
- Esegui la migrazione della libreria principale di window manager in Kotlin. (Icca34)
Correzioni di bug
- Aggiungi una nuova classe di dati per rappresentare i limiti delle caratteristiche. (I6dcd1)
Versione 1.0.0-alpha06
5 maggio 2021
Viene rilasciato androidx.window:window:1.0.0-alpha06
. La versione 1.0.0-alpha06 contiene questi commit.
Nuove funzionalità
- Abbiamo avviato la migrazione a Kotlin e terminerà nella prossima release.
- DeviceState è stato rimosso dall'API pubblica. Usa FoldingFeature.
- Abbiamo rimosso
STATE_FLIPPED
dagli stati 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 di base a Kotlin. (Idd995)
- Builder
DisplayFeature
rimosso. (I61fa4) DeviceState
rimosso dall'API pubblica. Usa inveceFoldingFeature
. (ID6079)- Rimuovi il callback dello stato del dispositivo dalle estensioni. (I5ea83).
- Rimuovi
STATE_FLIPPED
da FoldingFeature. (I9c4e1) - Rimuovi i metodi di registrazione ritirati. (Ib381b)
Versione 1.0.0-alpha05
24 marzo 2021
Viene rilasciato androidx.window:window:1.0.0-alpha05
. La versione 1.0.0-alpha05 contiene questi commit.
Nuove funzionalità
Abbiamo aggiunto metodi pratici a FoldingFeature in modo che le app possano capire se la funzionalità si sta separando, occultando e determinare l'orientamento della cerniera. Stiamo anche nascondendo il tipo di cerniera
Stiamo rimuovendo i metodi di lettura sincrona da WindowManager. I metodi di lettura sincrona sono soggetti a errori poiché esiste una condizione di gara implicita. Registra listener e callback per ricevere aggiornamenti su WindowLayoutInfo.
Modifiche alle API
- Aggiungere metodi pratici per lavorare con FoldingFeatures (Ie733f)
- Rimuove i metodi di lettura sincrona da WindowManager (I96fd4)
Versione 1.0.0-alpha04
10 marzo 2021
Viene rilasciato androidx.window:window:1.0.0-alpha04
. La versione 1.0.0-alpha04 contiene questi commit.
Nuove funzionalità
- Corregge un bug per cui non vengono emesse WindowLayoutInfo in assenza di un'implementazione OEM. Ora emettiamo un campo 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 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
Viene rilasciato androidx.window:window:1.0.0-alpha03
. 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 e emettano un valore predefinito dopo un timeout. Non abbiamo alcuna garanzia sulle implementazioni dell'OEM e il valore iniziale potrebbe subire ritardi.
Correzioni di bug
- Emetti un valore vuoto quando manca la libreria OEM. (Ide935)
Versione 1.0.0-alpha02
27 gennaio 2021
Viene rilasciato androidx.window:window:1.0.0-alpha02
. 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 significativi includono la rimozione delle operazioni di lettura sincrona da WindowManager e il ritiro di DeviceState. Le operazioni di lettura sincrone possono portare a condizioni di gara e avere un'interfaccia utente errata.
Abbiamo convertito DisplayFeature in un'interfaccia che altre funzionalità implementeranno in futuro. La nostra prima funzionalità è FoldingFeature, che ora è la rappresentazione di una piegatura dello schermo o di una cerniera. Questa colonna contiene anche lo stato della cerniera che sostituisce DeviceState.
WindowMetrics è stato introdotto in Android 11 per offrire agli sviluppatori un modo semplice per eseguire query sulle metriche relative a una finestra, ad esempio la sua posizione e le sue dimensioni sullo schermo ed eventuali riquadri 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#getMaxWindowMetrics().
Modifiche alle API
- Ritira le API che saranno rimosse nella prossima fase alpha (Ib7cc4)
- Aggiorna
ExtensionInterface
per accettare l'attività esplicita riferimenti. (I07ded) - Introduce l'API WindowMetrics. (I3ccee)
- Rimuovi i metodi di lettura sincrona da WindowManager (I69983)
- Rendi protetto il pacchetto ExtensionWindowBackend. (Ied208)
Correzioni di bug
- Aggiorna le API
ExtensionInterface
per accettare contesti visivi. (I8e827).
Contributo esterno
- Unisci DeviceState e WindowLayoutInfo per semplificare accedere 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
vengono rilasciate. 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 nel piano continuo superfici dello schermo come cerniere o piegheDeviceState
: questa nuova API fornisce la postura attuale dello smartphone da un elenco di posture definite (ad esempioCLOSED
,OPENED
,HALF_OPENED
, etc.)