WindowManager
| Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
|---|---|---|---|---|
| 24. September 2025 | 1.5.0 | - | - | - |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von WindowManager hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
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
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem stimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.5
Version 1.5.0
24. September 2025
androidx.window:window-*:1.5.0 ist veröffentlicht. Version 1.5.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.4.0:
- Fügen Sie
WindowSizeClass-Haltepunkte für „Large“ und „XLarge“ hinzu. (I40d85) - Berechnung von
WindowMetricsauf den Anwendungskontext ausweiten. (I8eeeb, b/360934048) - Stellen Sie eine Getter-Methode bereit, um den direkten Zugriff auf
WindowLayoutInfozu ermöglichen (Ie9513) - Einführung einer API zum automatischen Speichern des Einbettungsstatus und zum automatischen Wiederherstellen des Einbettungsstatus, wenn der App-Prozess neu gestartet wird. (Ie0295)
- Die experimentelle
WindowInsets-API wurde entfernt. (I68a71)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, durch den
EmbeddingRulein einigen Fällen unterschiedlichehashCodezurückgegeben hat. (I748cc) - Ein Fehler wurde behoben, der zu einem
NullPointerExceptionaufgrund von Fehlern bei der Geräteimplementierung führen konnte. - Wir haben ein Problem behoben, bei dem unsere
ActivityEmbedding-Sicherheitsprüfungen fehlgeschlagen sind, weil ProGuard ungenutzte Klassen entfernt hat.
Externe Beiträge
- Fügen Sie
window-core(If3d7c) alle KMP-Plattformen hinzu.
Version 1.5.0-rc01
27. August 2025
androidx.window:window-*:1.5.0-rc01 ist veröffentlicht. Version 1.5.0-rc01 enthält diese Commits.
Fehlerkorrekturen
- Ein Fehler wurde behoben, der zu einem
NullPointerExceptionaufgrund von Fehlern bei der Geräteimplementierung führen konnte. - Wir haben ein Problem behoben, bei dem unsere
ActivityEmbedding-Sicherheitsprüfungen fehlgeschlagen sind, weil ProGuard ungenutzte Klassen entfernt hat.
Version 1.5.0-beta02
13. August 2025
androidx.window:window-*:1.5.0-beta02 ist veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.
Neue Funktionen
- Kleinere Fehlerkorrekturen.
Externe Beiträge
- Fügen Sie
window-core(If3d7c) alle KMP-Plattformen hinzu.
Version 1.5.0-beta01
2. Juli 2025
androidx.window:window-*:1.5.0-beta01 ist veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.
Version 1.5.0-alpha02
7. Mai 2025
androidx.window:window-*:1.5.0-alpha02 ist veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.
API-Änderungen
- Fügen Sie
WindowSizeClass-Haltepunkte für „Large“ und „XLarge“ hinzu. (I40d85) - Berechnung von
WindowMetricsauf den Anwendungskontext ausweiten. (I8eeeb, b/360934048) - Stellen Sie eine Getter-Methode bereit, um den direkten Zugriff auf
WindowLayoutInfozu ermöglichen (Ie9513) - Einführung einer API zum automatischen Speichern des Einbettungsstatus und zum automatischen Wiederherstellen des Einbettungsstatus, wenn der App-Prozess neu gestartet wird. (Ie0295)
- Die experimentelle
WindowInsets-API wurde entfernt. (I68a71) - Einige Konstruktoren ausblenden (I87b8d)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, durch den
EmbeddingRulein einigen Fällen unterschiedlichehashCodezurückgegeben hat. (I748cc)
Version 1.5.0-alpha01
12. März 2025
androidx.window:window-*:1.5.0-alpha01 ist veröffentlicht. Version 1.5.0-alpha01 enthält diese Commits.
Neue Funktionen
- Erste Version von Next 1.5.0.
Version 1.4
Version 1.4.0
20. Mai 2025
androidx.window:window-*:1.4.0 ist veröffentlicht. Version 1.4.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.3.0
- Einbettung von Aktivitäten
- API zum Anpassen der Startanimationen
- Interaktive Trennlinie
ActivityStackAnpinnen- Vollbild-Dialogfeld – Dimmen
- Callback für Informationen zum eingebetteten Aktivitätsfenster
- Verbesserte
ActivityStack-Verwaltung - Aktivität in einem bestimmten
ActivityStackstarten
WindowMetricsCalculator- Unterstützung für Testbarkeit verbessern
WindowMetrics- Einfache Methoden zur Berechnung von
withDpundheightDp - Aktualisieren Sie die Grenzwertprüfung auf
isAtLeastund verwenden Sie Untergrenzen, um das Hinzufügen neuer Werte zu unterstützen.
- Einfache Methoden zur Berechnung von
WindowSizeClass- Berechnungsmethode für
WindowMetricshinzufügen
- Berechnungsmethode für
WindowInfoTracker- API zum Erkennen der unterstützten Körperhaltungen auf dem Gerät hinzugefügt
Version 1.4.0-rc02
23. April 2025
androidx.window:window-*:1.4.0-rc02 ist veröffentlicht. Version 1.4.0-rc02 enthält diese Commits.
Fehlerkorrekturen
- Behebe einen ProGuard-Absturz für
ActivityEmbedding.
Version 1.4.0-rc01
12. März 2025
androidx.window:window-*:1.4.0-rc01 ist veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.
Neue Funktionen
- Aktualisierungen der
WindowSizeClassAPI - Aktualisierungen der APIs zum Einbetten von Aktivitäten
Version 1.4.0-beta02
12. Februar 2025
androidx.window:window-*:1.4.0-beta02 ist veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.
Neue Funktionen
- Eine Anmerkung korrigieren, die nur für die Property, nicht aber für die Getter-Methode vorhanden war.
Version 1.4.0-beta01
15. Januar 2025
androidx.window:window-*:1.4.0-beta01 ist veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.
Neue Funktionen
- Es wurde eine API hinzugefügt, mit der
ActivityEmbedding-Animationen angepasst werden können. - Maximieren Sie
WindowMetricsCalculatorTest-APIs, um das Faken der Fenstermesswerte zu ermöglichen.
API-Änderungen
- Einige Konstruktoren ausblenden (I87b8d)
- Apps dürfen
ActivityEmbedding-Animationen anpassen (If31a8) - Unterstützung für das
watchosDeviceArm64-KMP-Ziel und Kotlin 1.9 als Ziel hinzugefügt (Icf15d, b/364652024) WindowMetricsCalculator-APIs verfügbar machen. (I1cebf)
Fehlerkorrekturen
- In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen:
-Xjspecify-annotations=strict(dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (Ie69ac, b/326456246)
Version 1.4.0-alpha05
16. Oktober 2024
androidx.window:window-*:1.4.0-alpha05 ist veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.
Neue Funktionen
- Fügen Sie praktische Funktionen hinzu, um
widthDpundheightDpausWindowMetricsabzurufen.
API-Änderungen
- Fügen Sie
widthDpundheightDpzuWindowMetricshinzu. (Ide026) - Die experimentelle
WindowInsets-API wurde entfernt. (I68a71) - Namen der Methoden zur Überprüfung von Grenzen auf
isAtLeastaktualisieren (Ib0ab7)
Version 1.4.0-alpha04
2. Oktober 2024
androidx.window:window-*:1.4.0-alpha04 ist veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.
API-Änderungen
- Es wurde eine Methode zum Berechnen von
WindowSizeClassausWindowMetricshinzugefügt. (874dba) - Die
WindowSizeClass-Methoden wurden zur besseren Verständlichkeit incontainsWidthDp,containsHeightDpundcontainsWindowSizeDpgeändert. (fa760d) - Konvertiere
WindowAreaControllerin eine abstrakte Basisklasse. (I90893)
Fehlerkorrekturen
- Unterstützung für relative Grenzen beim Erstellen eines Tests
FoldingFeaturehinzugefügt. (2e6b3e) - Allgemeine Fehlerkorrekturen bei der Auswahl eines
WindowSizeClass.
Version 1.4.0-alpha03
18. September 2024
androidx.window:window-*:1.4.0-alpha03 ist veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine Hilfsmethode hinzu, um ein
WindowSizeClassausWindowMetricsabzurufen. (I83f1f) - Benennen Sie
isAtLeastincontainsBreakpointum. (I85b47) - Fügen Sie
computeWindowSizeClasseine Überlastung mit Gleitkommazahlen hinzu. (I3dcb2, b/364677934, b/364677802, b/364680886)
Fehlerkorrekturen
- Fügen Sie dem Standard-
WindowSizeClass-Haltepunktset fehlende Haltepunkte hinzu. - Ein Fehler wurde behoben, bei dem in einigen Fällen keine kompakten Abmessungen ausgewählt wurden.
Version 1.4.0-alpha02
4. September 2024
androidx.window:window-*:1.4.0-alpha02 ist veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
Neue Funktionen
Unterstützung für benutzerdefinierte WindowSizeClass hinzugefügt.
- Öffnen Sie den Konstruktor für
WindowSizeClass, damit Entwickler ihren eigenen verwenden können. - Fügen Sie
isAtLeast-Hilfsmethoden hinzu, damit Entwickler eine Reihe vonWindowSizeClass-Werten verarbeiten können. - Fügen Sie eine Erweiterungsfunktion für
Set<WindowSizeClass>hinzu, um die beste Übereinstimmung aus dem Set zu berechnen. - Konstanten für die empfohlenen Android-Haltepunkte hinzufügen
- Fügen Sie den Haltepunkt-Satz hinzu, der den von Android empfohlenen Haltepunkten entspricht.
API-Änderungen
- Aktualisieren Sie die Namen der Methoden für die Begrenzungen für
WindowSizeClass. (If89a6) - Die
WindowSizeClassAPI wurde aktualisiert, um das Hinzufügen neuer Haltepunktwerte in der Zukunft zu unterstützen. Anstelle von absoluten Grenzen verwenden wir die Untergrenzen und empfehlen Entwicklern, Untergrenzenprüfungen bei der Verarbeitung vonWindowSizeClasszu verwenden. Die bestehendenWindowWidthSizeClassundWindowHeightSizeClasswerden eingestellt, da sie nicht weiterentwickelt werden. (I014ce)
Version 1.4.0-alpha01
7. August 2024
androidx.window:window-*:1.4.0-alpha01 ist veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit ActivityStack Pinning können Apps Inhalte in einem Container anpinnen und die Navigation davon vom anderen Container isolieren.
- Mit Interactive Divider können Apps eine feste oder ziehbare Trennlinie zwischen den beiden Aktivitäten in einer geteilten Darstellung anzeigen.
- Mit Abdunklung von Vollbilddialogfeldern können Apps den Abdunklungsbereich des Dialogfelds angeben, um entweder das gesamte Aufgabenfenster oder nur den Container, in dem das Dialogfeld angezeigt wird, abzudunkeln.
- Mit dem Callback für Informationen zum eingebetteten Aktivitätsfenster können Apps kontinuierlich Updates zum eingebetteten Aktivitätsfenster erhalten.
- Mit Embedding Animation Background können Apps den Animationshintergrund angeben. Dadurch wird die Qualität der Übergangsanimation verbessert, wenn
ActivityEmbeddingverwendet wird. - Verbessertes ActivityStack-Management: Apps haben mehr Kontrolle über den
ActivityStacks, wennActivityEmbeddingverwendet wird. Dazu gehören: - Aktivität in einem bestimmten
ActivityStackstarten ActivityStackabschließen
API-Änderungen
Eine neue API
WindowInfoTracker#supportedPostures:- Eine API, mit der ermittelt werden kann, ob das Gerät den Tabletop-Modus für Faltgeräte unterstützt. WindowAreaSessionPresenter#getWindow wird hinzugefügt
Fügen Sie APIs hinzu, um das Anpinnen von
ActivityStackzu unterstützen:- Klasse
SplitPinRule SplitController#pinTopActivityStackSplitController#unpinTopActivityStack
- Klasse
APIs hinzufügen, um die interaktive Trennlinie zu aktivieren und zu konfigurieren
- Klasse
DividerAttributes SplitAttributes.Builder#setDividerAttributes
- Klasse
APIs zum Festlegen von
EmbeddingConfigurationundDimAreaBehaviorfür Dialogfelder hinzugefügt- Klasse
EmbeddingConfiguration - Klasse
DimAreaBehavior ActivityEmbeddingController#setEmbeddingConfiguration
- Klasse
APIs hinzufügen, um Updates zu Informationen zum eingebetteten Aktivitätsfenster zu erhalten
- Klasse
EmbeddedActivityWindowInfo ActivityEmbeddingController#embeddedActivityWindowInfo
- Klasse
APIs zum Festlegen des Hintergrunds für die Einbettungsanimation hinzufügen
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
APIs hinzufügen, um
ActivityStacksabzuschließenActivityEmbeddingController#finishActivityStacks
APIs zum Festlegen des Startens von
ActivityStackhinzufügenActivityEmbeddingOptions#setLaunchingActivityStack
Die folgenden APIs sind stabil und nicht mehr experimentell:
ActivityEmbeddingController#invalidateVisibleActivityStacks(moved from SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
APIs für Version 1.4 hinzufügen (I56774)
Fehlerkorrekturen
- Ein Fehler wurde behoben, bei dem auf bestimmten Geräten UNAVAILABLE anstelle von ACTIVE zurückgegeben wurde, wenn eine Sitzung aktiv war.
- Aufgrund instabilen API-Supports wird die Unterstützung für
transferActivityToWindowAreaauf Geräten mit einemvendorApiLevelvon 2 entfernt. - Einführung einer API, mit der die Trennlinie für das Ziehen in den Vollbildmodus für eingebettete Aktivitäten verschoben werden kann. (I645c9)
- Apps können
ActivityEmbedding-Animationen über Animationsparameter fürSplitAttributesdeaktivieren. (Idc01a) - Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies automatisch über die API-Modellierung erfolgt, wenn R8 mit AGP 7.3 oder höher verwendet wird (z. B. R8-Version 3.3), und für alle Builds, wenn AGP 8.1 oder höher verwendet wird (z. B. D8-Version 8.1). Clients, die AGP nicht verwenden, wird empfohlen, auf D8-Version 8.1 oder höher zu aktualisieren. Weitere Details findest du in diesem Artikel. (Ia60e0, b/345472586)
- Erlauben Sie, dass Erweiterungen Animationsparameter für
SplitAttributesverwenden, damit das Gerät sie für Animationsübergänge nutzen kann. (Iede00) - Overlay-APIs ausblenden (Ic4251)
- Einführung von APIs zum Konfigurieren des fixierten oder ziehbaren Trennzeichens für die Aufteilung (Ia7a78)
- Dichte zu
WindowMetricshinzugefügt (Id6723) - Fügen Sie die API hinzu, um
SupportedPostureszu erhalten. (If557a) setLaunchingActivityStackaus experimenteller API entfernen (I191cf)- Einführung von
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) #getTokeneinstellen und#getActivityStackTokenhinzufügen (Ie0471)- Callback-Adapter für die
embeddedActivityWindowInfo-Flow-API einführen (Ida77f) - Callback-Adapter für die OverlayInfo-Flow-API hinzugefügt (I7264f)
- Führen Sie
WindowSdkExtensionsRuleein, umextensionsVersionfür Tests zu überschreiben. (Ifb928) - –
#setLaunchingActivityStackzu Bundle migrieren, um mitActivityOptionsCompat-Verwendungen kompatibel zu sein.- Nutzer sollten
activityOptions.toBundleanstelle vonActvityOptionsübergeben. #setLaunchingActivityStack(Activity)entfernen Nutzer sollten zuActivityEmbeddingController#getActivityStac(Activity)migrieren, um einActivityStackzu erhalten, und dasActivityStackan#setLaunchingActivityStackübergeben. (Ie0ccc)
- Nutzer sollten
- –
ActivityStack.TokenundSpltInfo.Tokenals Kennung für die Kommunikation zwischen WM Jetpack und Erweiterungen eingeführt.- APIs einstellen/ersetzen, um Token anstelle von IBinder zu verwenden/zurückzugeben. (I12b24)
- – Stelle
ActivityEmbeddingController#invalidateVisibleActivityStacksvor.- Entferne
SplitController#invalidateTopVisibleSplitAttributes, da das Feature in#invalidateVisibleActivityStackszusammengefasst wird (I02ef5).
- Entferne
- – API zum Festlegen der Einbettungskonfiguration hinzugefügt. (I59a4a)
- – Hinzufügen von APIs zum Anpinnen/Entfernen von Pins für die obersten
ActivityStackandroidx.Window.- Demo-App wird aktualisiert, um das Anpinnen/Lösen von oben zu ermöglichen
ActivityStack(I24dd3)
- Demo-App wird aktualisiert, um das Anpinnen/Lösen von oben zu ermöglichen
#finishActivityStacksundActivityEmbeddingOptionswieder hinzufügen (Ic1ab3)- Entfernen Sie instabile APIs. (Ibc534, b/302380585)
Version 1.3
Version 1.3.0
29. Mai 2024
androidx.window:window-*:1.3.0 ist veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Unterstützung von Kotlin Multiplatform für Fenstergrößenklassen.
Version 1.3.0-rc01
14. Mai 2024
WindowManager Jetpack 1.3 bietet Unterstützung für Kotlin Multiplatform für WindowSizeClass-Funktionen sowie mehrere Fehlerkorrekturen.
androidx.window:window-*:1.3.0-rc01 ist veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.
Version 1.3.0-beta02
1. Mai 2024
androidx.window:window-*:1.3.0-beta02 ist veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Die Unterstützung für das Erstellen und Verwenden benutzerdefinierter
WindowSizeClasswurde entfernt. (Id1143)
Fehlerkorrekturen
- Es wurde ein Fehler
KotlinReflectionInternalErrorbehoben, der dadurch verursacht wurde, dass Proguard in bestimmten Geräteimplementierungen einige Dateien entfernt hat. (I01b02)
Version 1.3.0-beta01
3. April 2024
androidx.window:window-*:1.3.0-beta01 ist veröffentlicht. Version 1.3.0-beta01 enthält diese Commits.
Version 1.3.0-alpha03
6. März 2024
androidx.window:window-*:1.3.0-alpha03 ist veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
WindowSizeClassUtilin fokussiertere Methoden aufteilen. (Ie9292)WindowSizeClass#computewiederherstellen (I21355, b/324293374)
Fehlerkorrekturen
- Ein Absturz wurde behoben, der auftrat, weil der bereitgestellte Kontext nicht richtig entpackt wurde. (94d10ce , b/318787482)
Version 1.3.0-alpha02
7. Februar 2024
androidx.window:window-*:1.3.0-alpha02 ist veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die API-Oberfläche der Window Size Class API wurde aktualisiert, um die Flexibilität für Entwickler zu verbessern, die eigene Größenklassen verwenden möchten.
API-Änderungen
- Fügen Sie der Breiten-Auswahl Höhenbeschränkungen hinzu. (I23393)
- Dienstfunktionen zum Auswählen eines
WindowSizeClassaus einer Menge hinzugefügt. Hinzufügen experimenteller Scoring-Funktionen, damit Entwickler eigene Selektoren schreiben können. Fügen Sie eine Selektorerweiterungsfunktion hinzu, um die breitesteWindowSizeClassinnerhalb einer bestimmten Grenze auszuwählen. (I0c944) - Öffnen Sie den
WindowSizeClass-Konstruktor, damit benutzerdefinierte Haltepunkte hinzugefügt werden können. (Ic1ff3) - Es wurde eine praktische Funktion zum Erstellen einer Größenklasse aus Breite, Höhe und Dichte hinzugefügt. (If67f4)
Fehlerkorrekturen
- Es wurde ein Fehler behoben, der auftrat, wenn ein Gleitkommawert auf 0 gekürzt wurde. (272ffac)
Version 1.3.0-alpha01
15. November 2023
androidx.window:window-*:1.3.0-alpha01 ist veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeaturesind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding-Werte sind jetzt stabil. WindowLayoutInfoPublisherRulemeldet jetzt die Überschreibung, wenn ein Wert aus einerUiContextabgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTrackerinUiContext-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät anzeigen
WindowProperties-Konstanten für appspezifische Überschreibungen durch Nutzer:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE: Informiert das System darüber, dass die App die Überschreibung der Kompatibilität des Seitenverhältnisses für Nutzer deaktiviert hat.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE: Informiert das System darüber, dass die App die Vollbildoption der Einstellungen für die Überschreibung der Kompatibilität des Seitenverhältnisses des Nutzers deaktiviert hat.
Version 1.2
Version 1.2.0
15. November 2023
androidx.window:window-*:1.2.0 ist veröffentlicht. Version 1.2.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.1.0
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeaturesind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding-Werte sind jetzt stabil. WindowLayoutInfoPublisherRulemeldet jetzt die Überschreibung, wenn ein Wert aus einerUiContextabgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTrackerinUiContext-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät anzeigen
Version 1.2.0-rc01
1. November 2023
androidx.window:window-*:1.2.0-rc01 ist veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeaturesind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding-Werte sind jetzt stabil. WindowLayoutInfoPublisherRulemeldet jetzt die Überschreibung, wenn ein Wert aus einerUiContextabgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTrackerinUiContext-Parameter zusammengefasst. - Die Extensions-Version auf dem Gerät anzeigen
Version 1.2.0-beta04
18. Oktober 2023
androidx.window:window-*:1.2.0-beta04 ist veröffentlicht. Version 1.2.0-beta04 enthält diese Commits.
API-Änderungen
- Entfernen Sie instabile APIs. (Ibc534, b/302380585)
Version 1.2.0-beta03
20. September 2023
androidx.window:window-*:1.2.0-beta03 ist veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
Neue Funktionen
- Fügen Sie
RequiresApi-Prüfungen für APIs hinzu, für die eine bestimmte Version von Erweiterungen erforderlich ist, damit sie richtig funktionieren. - Fügen Sie eine API hinzu, um die Erweiterungsversion auf dem Gerät verfügbar zu machen.
API-Änderungen
- Die erforderliche Version der Windows SDK-Erweiterung wird in öffentlichen APIs angegeben.
- Entfernen Sie
isXXXSupportedin der Komponente „Aktivität einbetten“. (Ie3dae)
- Entfernen Sie
- Führen Sie
WindowSdkExtensionsein, um die Erweiterungsversion auf dem Gerät zu melden.- Führen Sie
RequiresWindowSdkExtensionein, um die erforderliche Mindestversion der Erweiterung anzugeben. (I05fd4)
- Führen Sie
- Macht
WindowAreaInfo#getCapabilityzu einem Feld, in dem keine Nullwerte zulässig sind. (I17048)
Version 1.2.0-beta01
26. Juli 2023
androidx.window:window-*:1.2.0-beta01 ist veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm verfügbar machen
- Die Test-APIs zum Erstellen von
FoldingFeaturesind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding-Werte sind jetzt stabil. WindowLayoutInfoPublisherRulemeldet jetzt die Überschreibung, wenn ein Wert aus einerUiContextabgerufen wird.- Mit dieser Funktion werden Daten aus
WindowInfoTrackerinUiContext-Parameter zusammengefasst.
API-Änderungen
- Markiert die
WindowArea-APIs als experimentell, damit API-Änderungen für eine stabile Version in 1.3 (I857f5) fortgesetzt werden können. - Aktualisierte API-Dateien zum Annotieren der Kompatibilitätsunterdrückung (I8e87a, b/287516207)
Version 1.2.0-alpha03
21. Juni 2023
androidx.window:window-*:1.2.0-alpha03 ist veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Neue Funktionen
- Verworfene APIs werden aus der API-Oberfläche entfernt.
- APIs zur Unterstützung gleichzeitiger Displays hinzufügen
- Fügen Sie eine Property hinzu, um die Überschreibung der erzwungenen Größenänderung zu deaktivieren.
- Fügen Sie eine Property hinzu, um die Überschreibung des Mindestseitenverhältnisses zu deaktivieren.
- Stabilisieren Sie
ActivityEmbeddingRule, um Unittests für die Aktivitätseinbettung zu unterstützen.
API-Änderungen
Fehlerkorrekturen
- Kompatibilitätseigenschaft zum Deaktivieren der Überschreibung der erzwungenen Größenanpassung hinzugefügt (Ie7ab1)
- Entfernt
SESSION_STATE_CONTENT_INVISIBLEaus der Erweiterungsoberfläche. (I6ed19) - Stabilisieren Sie
ActivityEmbeddingRule, um Unittests für die Einbettung von Aktivitäten zu unterstützen. (I8d6b6) - Es wird ein Opt-out-Kompatibilitätsattribut für die Überschreibung des Mindestseitenverhältnisses hinzugefügt. (I66390)
- Entfernt veraltete WindowArea-APIs (Ieb67c)
- Benenne die Eigenschaft für die Schleife der Ausrichtungsanfrage in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTEDum. (Ie2fbd) - Aktualisiert die Namen der Sitzungskonstanten für den Fensterbereich (I83675)
- Es wurde eine Kompatibilitätseigenschaft zum Deaktivieren hinzugefügt, die die Schleife für die Ausrichtung anfordert, wenn sie erkannt wird (I0a7a2).
- Fügen Sie
WindowAreaComponent#STATUS_ACTIVEhinzu, um anzugeben, dass das Feature bereits aktiv ist. (I62bc3) RearDisplayPresentationMode-APIs hinzufügen (I0401c)- Entfernen der API zum Entfernen der Hintergrundfarbe für die stabile Version. (I34c3e)
- Window Area APIs ausblenden (I39de0)
- Fügen Sie Methoden hinzu, um
SplitInfoinSplitControllerzu überschreiben. Fügen Sie Testmethoden hinzu, um Doubles fürSplitInfoundActivityStackzu erstellen. (Icd69f) - Tag für
ActivityRule.Builderals optional festlegen. (Ib0b44) - Entferne
RatioSplitType,ExpandContainersSplitundHingeSplitType. Sie sind jetztSplitType.- Ersetzen Sie
#splitEqually(),#expandContainers()und#splitByHingedurch die KonstantenSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDundSPLIT_TYPE_HINGE. - Die Funktion zum Festlegen des Fallback-Typs für den Scharniersplitt-Typ wird entfernt. Wenn der Scharnier-Split-Typ aufgrund des aktuellen Geräte- oder Fensterstatus nicht angewendet werden kann, wird der übergeordnete Task-Container gleichmäßig aufgeteilt. Verwenden Sie
SplitController#setSplitAttributesCalculator, um den Fallback-Split-Typ anzupassen. (Ifcc59)
- Ersetzen Sie
add/removeSplitCallbackeinstellenadd/removeSplitCallbacknachSplitControllerCallbackAdapterverschiebenFlow-Unterstützung hinzufügen, um dieSplitInfo-Liste zu erhalten (I7f1b6)
- Testregel für
ActivityEmbeddingController(I42e9b) hinzufügen ActivityOptionsCompatwird inActivityEmbeddingOptionsumbenannt (I89301)- Fügen Sie
splitSupportStatushinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024) - Wir haben
SplitAttributes.BackgroundColoreingeführt, um denDEFAULT-Wert besser darzustellen. Es wird klargestellt, dass keine nicht deckende Hintergrundfarbe für Animationen unterstützt wird. Alle nicht deckenden Farben werden als Standard behandelt, d. h., es wird die aktuelle Hintergrundfarbe des Designfensters verwendet. (Ic6b95) - Ersetzen Sie
alwaysAllow()undalwaysDisallow()durchALWAYS_ALLOWundALWAYS_DISALLOW. (I3057b) - Fügen Sie APIs für
SplitRule,SplitAttributesundSplitAttributesCalculatorhinzu. (I92d23) - Fügen Sie
TestActivityStackhinzu, umActivityStackzum Testen zu erstellen.- Fügen Sie
TestSplitInfohinzu, umSplitInfozum Testen zu erstellen. (I8e779)
- Fügen Sie
- Möglichkeit zum Erstellen gefälschter
SplitAttributesCalculatorParamshinzufügen, damit Entwickler ihre benutzerdefiniertenSplitAttributesCalculator(Id4a6e) überprüfen können WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)undWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)hinzufügen (I66c7f)
Version 1.2.0-alpha02
7. Juni 2023
androidx.window:window-*:1.2.0-alpha02 ist veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die Test-API wurde aktualisiert, um eine Konstante für nicht angegebene Faltfunktionen zu enthalten.
- Wenn Sie
WindowLayoutInfoPublishRuleüberschreiben, werden alle Werte vonwindowLayoutInfoüberschrieben, einschließlich der Context-basierten API.
API-Änderungen
- Konstante für nicht angegebene Mittelfalzung hinzufügen. (I7530c)
Fehlerkorrekturen
- Aktualisiere
WindowLayoutInfoPublishRule, um Überschreibungen fürContextbasierend aufWindowLayoutInfozu unterstützen. (I2037a)
Version 1.2.0-alpha01
24. Mai 2023
androidx.window:window-*:1.2.0-alpha01 ist veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
Test-APIs für Activity Embedding und WindowLayoutInfoTracker stabilisieren. ActivityEmbeddingRule wurde zur stabilen Version hochgestuft.
WindowMetricsCalculatorRule wurde zur stabilen Version hochgestuft.
Hilfsfunktionen zum Erstellen eines FoldingFeature für Tests wurden in die stabile Version aufgenommen.
API-Änderungen
- Stabilisieren Sie
ActivityEmbeddingRule, um Unittests für die Einbettung von Aktivitäten zu unterstützen. (I8d6b6) WindowMetrisCalculatorTestRuleist stabil und ermöglicht das Erstellen von Stub-Messwerten für JVM-Tests. Wir empfehlen, für genaue Ergebnisse einen Emulator zu verwenden.- Test-APIs für
WindowLayoutInfostabilisieren, um JVM-Tests zu unterstützen. (Ie036e) - Fügen Sie
IntRangefür Werte des Test-Folding-Features hinzu. (I69f7d)
Version 1.1
Version 1.1.0
7. Juni 2023
androidx.window:window-*:1.1.0 ist veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDwurde als boolesche Eigenschaft des Tags<application>im App-Manifest hinzugefügt.isSplitSupportedwurde eingestellt und durchsplitSupportStatusersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatuswurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatusbereitzustellen. SplitControllerwurde in mehrere Module refaktoriert:ActivityEmbeddingController-Modul für APIs, die mitActivityoderActivityStackzusammenhängen.isActivityEmbeddedwurde vonSplitControllernachActivityEmbeddingControllerverschoben.RuleController-Modul fürEmbeddingRule-bezogene Vorgänge:- Entfernte
SplitController-APIs: clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()RuleControllerAPIs hinzugefügt:addRule(): Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule(): Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules(): Erstellt eine Sammlung von Regeln.clearRules(): Entfernt alle registrierten Regeln.parseRules(): Parst Regeln aus XML-Regeldefinitionen.
- Für alle Module muss ein Kontext mit der Methode
#getInstance()initialisiert werden. Dazu gehören:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatiowurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren. - Die Klasse
SplitAttributeswurde hinzugefügt, um das geteilte Layout zu definieren. SplitAttributes-Rechnerfunktionen wurdenSplitControllerhinzugefügt, um geteilte Layouts anzupassen:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported(), um zu prüfen, ob dieSplitAttributesCalculator-APIs auf dem Gerät unterstützt werden
- Das Feld
EmbeddingRule#tagwurde hinzugefügt. - API-Updates in
SplitRule:defaultSplitAttributeshinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. ErsetztsplitRatioundlayoutDirection.- Übersetzung der XML-Attribute
splitRatioundsplitLayoutDirectionindefaultSplitAttributeshinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass jetzt dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDpmit dem Standardwert 600 dp wurde hinzugefügt.minWidthwurde inminWidthDpmit dem Standardwert 600 dp geändert.minSmallestWidthwurde inminSmallestWidthDpmit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontalmit dem StandardwertALWAYS_ALLOWwurde hinzugefügt.maxAspectRatioInPortraitmit dem Standardwert 1,4 wurde hinzugefügt.- Die verschachtelte Klasse
FinishBehaviorwurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen. - Die Property-Änderungen wurden auf die verschachtelte Builder-Klasse von
SplitPairRuleundSplitPlaceholderRuleangewendet.
SplitInfo#getSplitRatio()wurde durchSplitInfo#getSplitAttributes()ersetzt, um zusätzliche Informationen zu Splits bereitzustellen.
WindowLayout
WindowInfoTracker: Unterstützung für experimentellen UI-Kontext ohne Aktivität hinzugefügt.- Der experimentelle UI-Kontext für Nicht-Aktivitäten wurde
WindowMetricsCalculatorhinzugefügt.
Migrationsschritte
- Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag
<application>die EigenschaftPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDhinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />So kann das System das Split-Verhalten für eine Anwendung im Voraus optimieren. SplitInfo-Verhältnis- Prüfe, ob das aktuelle Segment gestapelt ist:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Prüfen Sie das aktuelle Verhältnis:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Prüfe, ob das aktuelle Segment gestapelt ist:
- SplitController-Migrationen:
SplitController.getInstance()wird zuSplitController.getInstance(Context)geändert.SplitController.initialize(Context, @ResId int)wird zuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))geändert.SplitController.getInstance().isActivityEmbedded(Activity)wird zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)geändert.SplitController.getInstance().registerRule(rule)wird zuRuleController.getInstance(Context).addRule(rule)geändert.SplitController.getInstance().unregisterRule(rule)wird zuRuleController.getInstance(Context).removeRule(rule)geändert.SplitController.getInstance().clearRegisteredRules()wird zuRuleController.getInstance(Context).clearRules()geändert.SplitController.getInstance().getSplitRules()wird zuRuleController.getInstance(Context).getRules()geändert.
SplitRule-Property-Migrationen:- Für
minWidthundminSmallestWidthwerden jetzt dichteunabhängige Pixel anstelle von Pixeln verwendet. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )oder einfachminWithin Pixel durchdisplayMetrics#densitydividieren.
- Für
- Die Konstanten für das Abschlussverhalten müssen zu
FinishBehavior-Konstanten der Enum-ähnlichen Klasse migriert werden:FINISH_NEVERwird zuFinishBehavior.NEVERgeändert.FINISH_ALWAYSwird zuFinishBehavior.ALWAYSgeändert.FINISH_ADJACENTwird zuFinishBehavior.ADJACENTgeändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirectionmigriert werden:ltrwird zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHTgeändert.rtlwird zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFTgeändert.localewird zuSplitAttributes.LayoutDirection.LOCALEgeändert.splitRatiomuss zuSplitAttributes.SplitType.ratio(splitRatio)migriert werden.
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)wird geändert zukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.setLayoutDirection(layoutDirection)- undsetSplitRatio(ratio)-Änderungen ankotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )setFinishPrimaryWithSecondaryundsetFinishSecondaryWithPrimaryverwenden dieFinishBehavior-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Buildermigrations:- Enthält nur die Parameter
filtersundplaceholderIntent. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholderverwendet die enum-ähnlichen KonstantenFinishBehavior. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)undsetSplitRatio(ratio)werden zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
- Enthält nur die Parameter
Version 1.1.0-rc01
10. Mai 2023
androidx.window:window-*:1.1.0-rc01 ist veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Release
ActivityEmbeddingals stabile API. - Verschiedene Fehlerkorrekturen.
Version 1.1.0-beta02
5. April 2023
androidx.window:window-*:1.1.0-beta02 ist veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Interne Fehlerbehebungen und Bereinigungen.
Version 1.1.0-beta01
22. März 2023
androidx.window:window-*:1.1.0-beta01 ist veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Aktivitätseinbettung
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDwurde als boolesche Eigenschaft des Tags<application>im App-Manifest hinzugefügt.isSplitSupportedwurde eingestellt und durchsplitSupportStatusersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatuswurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatusbereitzustellen. SplitControllerwurde in mehrere Module refaktoriert:ActivityEmbeddingController-Modul für APIs, die mitActivityoderActivityStackzusammenhängen.isActivityEmbeddedwurde vonSplitControllernachActivityEmbeddingControllerverschoben.RuleController-Modul fürEmbeddingRule-bezogene Vorgänge:- Entfernte
SplitController-APIs:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
RuleController-APIs hinzugefügt:addRule(): Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule(): Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules(): Erstellt eine Sammlung von Regeln.clearRules(): Entfernt alle registrierten Regeln.- `parseRules()`: Parst Regeln aus XML-Regeldefinitionen.
- Für alle Module muss ein Kontext mit der Methode
#getInstance()initialisiert werden. Dazu gehören:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Die Klasse
EmbeddingAspectRatiowurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren. - Die Klasse
SplitAttributeswurde hinzugefügt, um das geteilte Layout zu definieren. SplitAttributes-Rechnerfunktionen wurdenSplitControllerhinzugefügt, um geteilte Layouts anzupassen:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported(), um zu prüfen, ob die SplitAttributesCalculator-APIs auf dem Gerät unterstützt werden
- Das Feld
EmbeddingRule#tagwurde hinzugefügt. - API-Updates in
SplitRule:defaultSplitAttributeshinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. ErsetztsplitRatioundlayoutDirection.- Übersetzung der XML-Attribute
splitRatioundsplitLayoutDirectionindefaultSplitAttributeshinzugefügt. - Die Definitionen der Mindestabmessungen wurden geändert, sodass jetzt dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDpmit dem Standardwert 600 dp wurde hinzugefügt.minWidthwurde inminWidthDpmit dem Standardwert 600 dp geändert.minSmallestWidthwurde inminSmallestWidthDpmit dem Standardwert 600 dp geändert.maxAspectRatioInHorizontalmit dem StandardwertALWAYS_ALLOWwurde hinzugefügt.maxAspectRatioInPortraitmit dem Standardwert1.4wurde hinzugefügt.- Die verschachtelte Klasse
FinishBehaviorwurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen. - Die Änderungen an den Attributen wurden auf die verschachtelte Klasse
BuildervonSplitPairRuleundSplitPlaceholderRuleangewendet.
SplitInfo#getSplitRatio()wurde durchSplitInfo#getSplitAttributes()ersetzt, um zusätzliche Informationen zu Splits bereitzustellen.
WindowLayout
WindowInfoTrackerunterstützt jetzt auch UI-Kontext ohne Aktivität.WindowMetricsCalculatorwurde ein UI-Kontext ohne Aktivität hinzugefügt.
Migrationsschritte
- Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag
<application>die EigenschaftPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDhinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />So kann das System das Split-Verhalten für eine Anwendung im Voraus optimieren. SplitInfo-Verhältnis- Prüfe, ob das aktuelle Segment gestapelt ist:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Prüfen Sie das aktuelle Verhältnis:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Prüfe, ob das aktuelle Segment gestapelt ist:
SplitControllermigrations:SplitController.getInstance()wird zuSplitController.getInstance(Context)geändert.SplitController.initialize(Context, @ResId int)wird zuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))geändert.SplitController.getInstance().isActivityEmbedded(Activity)wird zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)geändert.SplitController.getInstance().registerRule(rule)wird zuRuleController.getInstance(Context).addRule(rule)geändert.SplitController.getInstance().unregisterRule(rule)wird zuRuleController.getInstance(Context).removeRule(rule)geändert.SplitController.getInstance().clearRegisteredRules()wird zuRuleController.getInstance(Context).clearRules()geändert.SplitController.getInstance().getSplitRules()wird zuRuleController.getInstance(Context).getRules()geändert.
SplitRule-Property-Migrationen:- Für
minWidthundminSmallestWidthwerden jetzt dichteunabhängige Pixel anstelle von Pixeln verwendet. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )oder einfachminWithin Pixel durchdisplayMetrics#densitydividieren.
- Für
- Die Konstanten für das Abschlussverhalten müssen zu
FinishBehavior-Konstanten der Enum-ähnlichen Klasse migriert werden:FINISH_NEVERwird zuFinishBehavior.NEVERgeändert.FINISH_ALWAYSwird zuFinishBehavior.ALWAYSgeändert.FINISH_ADJACENTwird zuFinishBehavior.ADJACENTgeändert.
- Die Layoutrichtung muss zu
SplitAttributes.LayoutDirectionmigriert werden:ltrwird zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHTgeändert.rtlwird zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFTgeändert.localewird zuSplitAttributes.LayoutDirection.LOCALEgeändert.splitRatiomuss zuSplitAttributes.SplitType.ratio(splitRatio)migriert werden.
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)wird geändert zukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.setLayoutDirection(layoutDirection)undsetSplitRatio(ratio)werden inkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )geändert.setFinishPrimaryWithSecondaryundsetFinishSecondaryWithPrimaryverwenden dieFinishBehavior-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
SplitPlaceholder.Buildermigrations:- Enthält nur die Parameter
filtersundplaceholderIntent. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“. setFinishPrimaryWithPlaceholderverwendet dieFinishBehavior-Konstanten, die wie Enums funktionieren. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)undsetSplitRatio(ratio)werden zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Verwende
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
- Enthält nur die Parameter
Version 1.1.0-alpha06
22. Februar 2023
androidx.window:window-*:1.1.0-alpha06 ist veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
Neue Funktionen
- Experimentelle Version zum Abrufen von
WindowLayoutInfoaus einem UI-Kontext verfügbar machen.
API-Änderungen
- Fügen Sie
splitSupportStatushinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024) - Die API für den UI-Kontext
WindowLayoutInfowird als experimentell gekennzeichnet. (I58ee0) - Einführung der
WindowAreaControllerund APIs, um denRearDisplay-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das auf die Rückkamera ausgerichtet ist. (Iffcbf) - Standardhintergrundfarbe aktualisieren. (I1ac1b)
SplitAttributes-Parameter hinzufügen (I18bdd)- Fügen Sie APIs für
SplitRule,SplitAttributesundSplitAttributesCalculatorhinzu. (I92d23) - APIs für
maxAspectRatioverbessern:- Ersetzen Sie
alwaysAllow()undalwaysDisallow()durchALWAYS_ALLOWundALWAYS_DISALLOW. - Aktualisieren Sie die API-Dokumentation von @see mit der eigenständigen Dokumentation. (I3057b)
- Ersetzen Sie
- Die folgenden Konstruktoren werden aus öffentlichen APIs entfernt, da sie nicht von Apps aufgerufen werden sollen.
SplitInfo-KonstruktorActivityStack-Konstruktor (Ide534)
SplitRuledauert jetztmaxAspectRatioInPortrait/Landscape. Aktivitäten können nur aufgeteilt werden, wenn das Seitenverhältnis der übergeordneten Grenzen kleiner oder gleich dem angefordertenmaxAspectRatioist. (Ia5990)- Ändern Sie
RuleController#parseRulesin statisch (I785df). - APIs für ActivityEmbedding verbessern
- API-Benennung anpassen – „add“/„remove“ für mehrere Instanzen verwenden:
registerRulewird zuaddRulegeändertunregisterRulewird zuremoveRulegeändert- Ersetzen Sie
getSplitRulesdurchgetRules, daActivityRulekeine Aufteilungsregel ist. - Fügen Sie
RuleController#setRuleshinzu, um mehrere Regeln festzulegen. - Extrahieren Sie regelbezogene APIs aus
SplitControllerin das SingletonRuleController. Die regionalen Gewinner sind: addRuleremoveRulegetRulessetRulesclearRulesparseRules- Extrahieren Sie
#isActivityEmbeddedausSplitControllerin das SingletonActivityEmbeddingController. Die regionalen Gewinner sind: isActivityEmbeddedSplitController#initializeentfernen Wenn Sie Regeln aus einer XML-Datei festlegen möchten, verwenden SieRuleController#parseRulesund#setRules. Vor dieser Änderung:SplitController.initialize(context, R.xml.static_rules)Nach dieser Änderung:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)- Wir unterscheiden nicht mehr zwischen statischen Regeln und Laufzeitregeln. Durch den Aufruf von
#clearRuleswerden alle Regeln gelöscht, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder zur Laufzeit registriert wurden. Wenn Sie das alte Verhalten vonSplitController#clearRegisteredRulesbeibehalten möchten, rufen SieRuleController#parseRulesmit der XML-Ressourcen-ID auf und rufen SieRuleController#setRulesauf, um die Regeln wieder festzulegen. Vor dieser Änderung:SplitController.getInstance(context).clearRegisteredRules()Nach dieser Änderung:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- SplitRule-APIs verbessern:
- Verwende für
SplitRuleMindestabmessungen in DP anstelle von Pixeln. - Refactoring für
SplitRuleBuilder, damit Mindestdimensionen optional sind. (I95f17)
- Verwende für
- Kontext zum Initialisieren von
SplitControllerübergeben (I42549) SplitRule#layoutDirwurde in#layoutDirectionundSplitRule Builder#setLayoutDirinBuilder#setLayoutDirectionumbenannt. (I3f6d1)
Version 1.1.0-alpha04
9. November 2022
androidx.window:window-*:1.1.0-alpha04 ist veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
Neue Funktionen
- Stellen Sie eine Methode bereit, mit der ermittelt werden kann, ob ein
ActivityStackfürActivityEmbeddingleer ist. - Die experimentellen API-Tags wurden aus den
ActivityEmbedding-APIs entfernt. - Den Konstruktor
ActivityRuleausblenden, daBuilderdie bevorzugte Methode zum Erstellen ist. - Fügen Sie eine experimentelle Methode hinzu, um
WindowInsetsfürWindowMetricszu erhalten. - Aktualisieren Sie
SplitPlaceholderFinishBehavior, um zu verhindern, dass der Platzhalter fertiggestellt wird. Das Vervollständigen des Platzhalters hat zu einem verwirrenden Verhalten geführt.
API-Änderungen
- Machen Sie „val“
isEmptyöffentlich, um „fun“isEmptyzu ersetzen. - Benennen Sie Aktivitäten mit dem Parameter
ActivityStackinactivitiesInProcessum. (Ia5055) - Entferne
ActivityFilter#matchesClassNameundActivityFilter#matchesClassNameOrWildCard, da sie verwirrend sind. - Fügen Sie
ActivityFilter#componentNameundActivityFilter#intentActionhinzu, damit der Anrufer verschiedene Filter unterscheiden kann (I41f22). - Entfernen Sie die
@Deprecated-APIs aus der experimentellen API (I216b3). @ExperimentalWindowApifür Activity Embedding APIs entfernen (I69ebe)ActivityRule-Konstruktor ausblenden, stattdessen Builder verwenden. (If4eb6)- APIs hinzugefügt, um zu prüfen, ob eine Aktivität Teil des
ActivityFilterist. (Ia43cf) - API-Dateien aktualisieren, um Änderungen in den Klassen
WindowMetricsundWindowMetricsCalculatorCompatzu berücksichtigen (I667fe) - Javadoc und Klassenname der Property
ActivityEmbeddingaktualisieren (Ia1386) - Hinzufügen von
ActivityEmbedding-Eigenschaftstagnamen, die in AndroidManifest.xml verwendet werden sollen (Id1ad4) - Die neuen APIs
SplitPlaceholderFinishBehaviorundSplitPlaceholderRule.finishPrimaryWithPlaceholderwurden hinzugefügt. Sie ersetzen die vorhandene APISplitPlaceholderRule.finishPrimaryWithSecondary, mit der definiert wird, wann Platzhalteraktivitäten abgeschlossen sind und wie sich zugehörige Aktivitäten in Activity Embedding verhalten sollen. (I64647)
Fehlerkorrekturen
- Einführung der
WindowAreaControllerund APIs, um denRearDisplay-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das auf die Rückkamera ausgerichtet ist. (I388ab)
Version 1.1.0-alpha03
27. Juli 2022
androidx.window:window-*:1.1.0-alpha03 ist veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Aktualisieren Sie die Standardwerte für Einbettungsregeln.
API-Änderungen
- Standardwerte für Eigenschaften von Einbettungsregeln aktualisieren (Ic4d35)
Version 1.1.0-alpha02
11. Mai 2022
androidx.window:window-*:1.1.0-alpha02 ist veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Adapterbibliotheken zur Unterstützung von Java und RxJava veröffentlichen
Version 1.1.0-alpha01
11. Mai 2022
androidx.window:window-*:1.1.0-alpha01 ist veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Adapter für Java und RxJava veröffentlichen
Version 1.1.0-alpha01
20. April 2022
androidx.window:window:1.1.0-alpha01 ist veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, durch den beim Ausführen einer App im Hintergrund keine Informationen zu Faltfunktionen mehr ausgegeben wurden.
- Die experimentelle ActivityEmbedding API wurde erweitert.
API-Änderungen
- Eine öffentliche API, mit der geprüft werden kann, ob eine Aktivität eingebettet wird. (I39eb7)
Fehlerkorrekturen
- APIs zum Anpassen des Abschlussverhaltens für Container in Aktivitätsabschnitten hinzufügen (I1a1e4)
- Es wurde eine neue Konfigurationsoption für Regeln zum Aufteilen von Aktivitäten hinzugefügt. (Iec6af)
Version 1.0
Version 1.0.0
26. Januar 2022
androidx.window:window-*:1.0.0 ist veröffentlicht. Version 1.0.0 enthält diese Commits.
Wichtige Funktionen von Version 1.0.0
- Unterstützung für Falt-Smartphones über
WindowInfoTrackerundFoldingFeature.WindowMetricsCalculator, um die aktuellen WindowMetrics zu berechnen.
Version 1.0.0-rc01
15. Dezember 2021
androidx.window:window-*:1.0.0-rc01 ist veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Neue Funktionen
- Unterstützung für Falt-Smartphones über
WindowInfoTrackerhinzugefügt. - Es wurden Methoden zum Berechnen des aktuellen und maximalen
WindowMetricshinzugefügt. - Unterstützende Test-APIs hinzufügen
Version 1.0.0-beta04
17. November 2021
androidx.window:window-*:1.0.0-beta04 ist veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Neue Funktionen
- Benennen Sie „WindowInfoRepository“ in „WindowInfoTracker“ um.
- „Activity“ als explizite Methodenabhängigkeit für „WindowInfoTracker“ festlegen.
- Eine einfache TestRule für WindowMetricsCalculator wurde hinzugefügt, um Entwickler zu unterstützen, die Robolectric verwenden.
API-Änderungen
- Erweiterungen extrahieren (I25a5f)
- isEmpty in ActivityStack hinzufügen (I5a4e6)
- Benennen Sie „WindowInfoRepository“ in „WindowInfoTracker“ um.
- Aktualisieren Sie die Java-/RxJava-/Testing-Abhängigkeiten entsprechend. (I0da63)
- Fügen Sie eine Testregel für einen einfachen WindowMetricsCalculator hinzu. (Ibacdb)
Version 1.0.0-beta03
27. Oktober 2021
androidx.window:window-*:1.0.0-beta03 ist veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Neue Funktionen
- Experimentelle APIs zum Einbetten von Aktivitäten hinzugefügt. In dieser ersten Layoutversion können zwei Aktivitäten nebeneinander angezeigt werden.
API-Änderungen
- Die currentWindowMetrics API wurde entfernt, da wir sie nicht genau bereitstellen können. Verwenden Sie stattdessen „WindowMetricsCalculator“ (Icda5f).
- Die Extensions API wurde aktualisiert. (Ica92b)
- Es wurde eine Schnittstelle für eine neue Funktion hinzugefügt, mit der Aktivitäten eingebettet und nebeneinander im übergeordneten Aufgabenfenster angezeigt werden können. (I5711d)
- Die Konstruktoren für WindowMetrics und WindowLayoutInfo wurden ausgeblendet. Verwenden Sie stattdessen die Test-APIs. (I5a1b5)
- Eine API zum Erstellen gefälschter WindowLayoutInfo-Objekte hinzufügen. (I4a2fd)
Fehlerkorrekturen
- Ein Speicherleck wurde behoben. (I3fc79, b/202989046)
Version 1.0.0-beta02
1. September 2021
androidx.window:window-*:1.0.0-beta02 ist veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine experimentelle Anmerkung hinzu, um experimentelle APIs zu kennzeichnen. (I9f1b6)
- Fügen Sie eine Testmethode hinzu, um ein Test-FoldingFeature zu erstellen, das ein Rechteck akzeptiert. Das erleichtert das Testen mit Robolectric im Gegensatz zu einer tatsächlichen Aktivität. (Id1cca)
Version 1.0.0-beta01
18. August 2021
androidx.window:window-*:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Alte Konstanten wurden entfernt und
FoldingFeaturewurde in eine Schnittstelle umgewandelt.
API-Änderungen
- Entfernen Sie alte Konstanten und machen Sie FoldFeature zu einer Schnittstelle. (I9a2d5)
Fehlerkorrekturen
- Bibliotheken, die von der
Test Core-Bibliothek abhängen, wurden auf Version1.4.0aktualisiert und funktionieren jetzt mit der Android-Plattformversion S. (I88b72, b/189353863)
Version 1.0.0-alpha10
4. August 2021
androidx.window:window-*:1.0.0-alpha10 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.
Neue Funktionen
- Benennen Sie WindowInfoRepo in WindowInfoRepository um und passen Sie die entsprechenden Klassen / Dateien an.
- Messwerte für das aktuelle Fenster in einen Flow in WindowInfoRepository konvertieren, da sich der Wert im Laufe der Zeit ändert.
- WindowInfoRepoJavaAdapter in WindowInfoRepoCallbackAdapter umbenennen
- Hilfsmethode zum Erstellen von FoldingFeature-Testobjekten hinzufügen
- Pakete aktualisieren, um Klassen basierend auf dem unterstützten Feature zu gruppieren.
API-Änderungen
- Benennen Sie „ActivityExt“ in „ActivityExtensions“ um und ändern Sie „Repo“ in „Repository“. (I61a16)
- Pakete für Kurse aktualisieren (I23ae2)
- WindowMetrics aus WindowInfoRepo entfernen (I24663)
- WindowManager entfernen und WindowInfoRepo verwenden
- WindowBackend intern machen. (I06d9a)
- Fenstermesswerte in Flow-Messwerte umwandeln
- Java-Adapter in „WindowInfoRepoCallbackAdapter“ umbenennen
- Entfernen Sie „callbackFlow“, damit keine experimentellen APIs mehr verwendet werden. (Ia4d15)
- Es wurde eine Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzugefügt.
- Änderung von „occlusionMode“ zu „occlusionType“ (If4cff)
Fehlerkorrekturen
- Ein Proguard-Fehler wurde behoben, bei dem die Core-Bibliothek entfernt wurde.
- Es wurde ein Fehler behoben, durch den WindowLayoutInfo nicht an zusätzliche Abonnenten gesendet wurde.
- Ein Fehler wurde behoben, durch den Konfigurationsänderungen keine Aktualisierungen der Faltfunktion ausgelöst haben.
Version 1.0.0-alpha09
30. Juni 2021
androidx.window:window-*:1.0.0-alpha09 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Neue Funktionen
- Von Ganzzahlkonstanten zu unbegrenzten Enums wechseln.
- Ein Test-Tool zum Erstellen von Test-Folding-Funktionen wurde hinzugefügt.
API-Änderungen
- Es wurde eine Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzugefügt. (I3cf54)
- Ändern Sie
occlusionModeinocclusionType.
- Ändern Sie
Fehlerkorrekturen
- Gibt den Anfangswert aus, wenn mehrere Nutzer der Datenstreams hinzugefügt werden.
Version 1.0.0-alpha08
16. Juni 2021
androidx.window:window-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Neue Funktionen
- Es wurde ein Testartefakt veröffentlicht, um das Testen bei Verwendung von WindowInfoRepository zu erleichtern. Verwenden Sie WindowInfoRepository, um Informationen zu DisplayFeatures und WindowMetrics abzurufen. (I57f66, Ida620)
Version 1.0.0-alpha07
2. Juni 2021
androidx.window:window-*:1.0.0-alpha07 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
Neue Funktionen
- Migrieren Sie die Kernfensterbibliothek zu Kotlin. Wir werden in Zukunft Coroutinen und Suspend-Funktionen verwenden, um asynchrone Daten bereitzustellen.
- WindowInfoRepo als Hauptinteraktionspunkt zum Abrufen der WindowMetrics und des Streams von WindowLayoutInfo hinzufügen.
- Neues
window-java-Artefakt, um Java-freundliche APIs zum Registrieren und Aufheben der Registrierung von Callbacks bereitzustellen. - Neue
window-rxjava2- undwindow-rxjava3-Artefakte zum Bereitstellen von RxJava-angepassten APIs.
API-Änderungen
- Fügen Sie
WindowServiceshinzu, um Abhängigkeiten einheitlich bereitzustellen.- Coroutine-basierte API zum Abrufen von Informationen zum Fensterlayout hinzugefügt (Iab70f)
- Die Core Window Manager-Bibliothek wird zu Kotlin migriert. (Icca34)
Fehlerkorrekturen
- Neue Datenklasse zur Darstellung von Feature-Grenzen hinzufügen. (I6dcd1)
Version 1.0.0-alpha06
5. Mai 2021
androidx.window:window:1.0.0-alpha06 ist veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir haben mit der Migration zu Kotlin begonnen und werden sie im nächsten Release abschließen.
- „DeviceState“ wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessen „FoldingFeature“.
- Wir haben
STATE_FLIPPEDaus den FoldingFeature-Status entfernt, da es derzeit von keinem Anwendungsfall unterstützt wird. - Außerdem haben wir weitere eingestellte APIs entfernt.
API-Änderungen
- Kotlin als Abhängigkeit hinzufügen
- Kernbibliothek zu Kotlin migrieren. (Idd995)
- Der Builder
DisplayFeaturewurde entfernt. (I61fa4) DeviceStatewurde aus der öffentlichen API entfernt. Verwenden Sie stattdessenFoldingFeature. (Id6079)- Entfernen Sie den Gerätestatus-Callback aus Erweiterungen. (I5ea83)
- Entfernen Sie
STATE_FLIPPEDaus FoldingFeature. (I9c4e1) - Veraltete Registrierungsmethoden entfernt. (Ib381b)
Version 1.0.0-alpha05
24. März 2021
androidx.window:window:1.0.0-alpha05 ist veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
Wir haben FoldingFeature praktische Methoden hinzugefügt, damit Apps erkennen können, ob das Feature getrennt oder verdeckt wird, und die Ausrichtung des Scharniers bestimmen können. Außerdem wird der Scharniertyp ausgeblendet, damit
Wir entfernen die synchronen Lesemethoden aus WindowManager. Synchrone Lesemethoden sind fehleranfällig, da es eine implizite Race Condition gibt. Registrieren Sie Listener und Callbacks, um Updates zu WindowLayoutInfo zu erhalten.
API-Änderungen
- Praktische Methoden für die Arbeit mit FoldingFeatures hinzufügen (Ie733f)
- Synchrone Lesemethoden aus WindowManager entfernt (I96fd4)
Version 1.0.0-alpha04
10. März 2021
androidx.window:window:1.0.0-alpha04 ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, bei dem keine WindowLayoutInfo ausgegeben wurde, wenn keine OEM-Implementierung vorhanden war. Jetzt geben wir ein leeres WindowLayoutInfo aus.
- Ein Fehler wurde behoben, bei dem der Status nicht richtig aktualisiert wurde, wenn sich der Status des Scharniers änderte, während die App im Hintergrund ausgeführt wurde. Der Status sollte jetzt konsistent sein.
- Wir haben unsere ProGuard-Dateien aktualisiert, um Warnungen von Laufzeitabhängigkeiten zu ignorieren.
Fehlerkorrekturen
- Gibt einen leeren Wert aus, wenn die OEM-Bibliothek fehlt. (Ide935)
Version 1.0.0-alpha03
18. Februar 2021
androidx.window:window:1.0.0-alpha03 ist veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Neue Funktionen
- Gibt einen leeren Wert für WindowLayoutInfo aus, wenn die OEM-Implementierung leer ist. Dadurch sollte es einfacher sein, die Bibliothek auf mehr Geräten zu verwenden. Da die APIs asynchron sind, wird weiterhin empfohlen, dass Apps defensiven Code schreiben und nach einem Zeitlimit einen Standardwert ausgeben. Wir können keine Garantien für OEM-Implementierungen geben und der Anfangswert kann sich verzögern.
Fehlerkorrekturen
- Gibt einen leeren Wert aus, wenn die OEM-Bibliothek fehlt. (Ide935)
Version 1.0.0-alpha02
27. Januar 2021
androidx.window:window:1.0.0-alpha02 ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Neue Funktionen
Wir haben einige APIs eingestellt, um die API zu optimieren und Fehler zu reduzieren. Einige wichtige Beispiele sind das Entfernen der synchronen Lesevorgänge aus WindowManager und die Einstellung von DeviceState. Synchrones Lesen kann zu Race-Bedingungen und einer falschen Benutzeroberfläche führen.
Wir haben DisplayFeature in eine Schnittstelle umgewandelt, die künftig von anderen Funktionen implementiert wird. Das erste Feature ist „FoldingFeature“, das jetzt für eine Displayfalte oder ein Scharnier steht. Sie enthält auch den Status des Scharniers, der DeviceState ersetzt.
WindowMetrics wurde in Android 11 eingeführt, um Entwicklern eine einfache Möglichkeit zu bieten, Messwerte für ein Fenster abzufragen, z. B. seine Position und Größe auf dem Bildschirm sowie alle System-Insets. Wir haben die API in diesem Release rückportiert, damit Entwickler WindowMetrics nutzen und weiterhin ältere Android-Versionen unterstützen können. WindowMetrics können über die APIs
WindowManager#getCurrentWindowMetrics()und WindowManager#getMaximumWindowMetrics() abgerufen werden.
API-Änderungen
- APIs einstellen, die in der nächsten Alphaversion (Ib7cc4) entfernt werden
ExtensionInterfacewurde aktualisiert, um explizite Activity-Referenzen zu akzeptieren. (I07ded)- Einführung der WindowMetrics API. (I3ccee)
- Synchrone Lesemethoden aus WindowManager entfernen (I69983)
- Das Paket „ExtensionWindowBackend“ wird geschützt. (Ied208)
Fehlerkorrekturen
ExtensionInterface-APIs aktualisieren, um visuelle Kontexte zu akzeptieren (I8e827)
Externe Beiträge
- DeviceState und WindowLayoutInfo werden zusammengeführt, um den Zugriff auf Daten zu erleichtern. (Id34f4)
Version 1.0.0-alpha01
27. Februar 2020
androidx.window:window:1.0.0-alpha01 und androidx.window:window-extensions:1.0.0-alpha01 werden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.
Dies ist die erste Version der Window Manager-Bibliothek.
Neue Funktionen
DisplayFeature: Diese neue API erkennt Unterbrechungen auf durchgehend flachen Oberflächen wie Scharniere oder Falten.DeviceState: Diese neue API gibt die aktuelle Ausrichtung des Smartphones aus einer Liste definierter Ausrichtungen zurück (z. B.CLOSED,OPENED,HALF_OPENEDusw.).