WindowManager

Mit der Jetpack WindowManager-Bibliothek können App-Entwickler neue Geräteformfaktoren und Mehrfensterumgebungen unterstützen. Die erste Version ist für faltbare Geräte vorgesehen, aber in zukünftigen Versionen werden weitere Displaytypen und Fensterfunktionen unterstützt.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
2. Juli 2025 1.4.0 - 1.5.0-beta01 -

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.4.0"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.4.0"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.4.0"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.4.0"

    // For testing
    implementation "androidx.window:window-testing:1.4.0"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.4.0")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.4.0")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.4.0")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.4.0")

    // For testing
    implementation("androidx.window:window-testing:1.4.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 abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.5

Version 1.5.0-beta01

2. Juli 2025

androidx.window:window-*:1.5.0-beta01 wird 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 wird 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 WindowMetrics auf Anwendungskontext ausweiten (I8eeeb, b/360934048)
  • Stellen Sie eine Getter-Methode bereit, um den direkten Zugriff auf WindowLayoutInfo zu 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)
  • Entfernen Sie die experimentelle WindowInsets API. (I68a71)
  • Einige Konstruktoren ausblenden (I87b8d)

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, durch den EmbeddingRule in einigen Fällen unterschiedliche hashCode zurückgegeben hat. (I748cc)

Version 1.5.0-alpha01

12. März 2025

androidx.window:window-*:1.5.0-alpha01 wird 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 wird 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
    • ActivityStack Anpinnen
    • Abdunkeln von Vollbild-Dialogfeldern
    • Callback für Informationen zum eingebetteten Aktivitätsfenster
    • Verbesserte ActivityStack-Verwaltung
    • Aktivität in einem bestimmten ActivityStack starten
  • WindowMetricsCalculator
    • Unterstützung für Testbarkeit verbessern
  • WindowMetrics
    • Einfache Methoden zur Berechnung von withDp und heightDp
    • Grenzenprüfung auf isAtLeast aktualisieren und Untergrenzen verwenden, um das Hinzufügen neuer Werte zu unterstützen
  • WindowSizeClass
    • Berechnungsmethode für WindowMetrics hinzufügen
  • WindowInfoTracker
    • API zum Erkennen der unterstützten Haltungen auf dem Gerät hinzufügen

Version 1.4.0-rc02

23. April 2025

androidx.window:window-*:1.4.0-rc02 wird 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 wird veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Neue Funktionen

  • Aktualisierungen der WindowSizeClass API
  • Aktualisierungen der APIs zum Einbetten von Aktivitäten

Version 1.4.0-beta02

12. Februar 2025

androidx.window:window-*:1.4.0-beta02 wird 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 wird 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.
  • Erweitern Sie WindowMetricsCalculator test 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-Nullable-Annotationen 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 wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Fügen Sie praktische Funktionen hinzu, um widthDp und heightDp aus WindowMetrics abzurufen.

API-Änderungen

  • Fügen Sie widthDp und heightDp zu WindowMetrics hinzu. (Ide026)
  • Entfernen Sie die experimentelle WindowInsets API. (I68a71)
  • Namen der Methoden für die Bereichsprüfung in isAtLeast ändern (Ib0ab7)

Version 1.4.0-alpha04

2. Oktober 2024

androidx.window:window-*:1.4.0-alpha04 wird veröffentlicht. Version 1.4.0-alpha04 enthält diese Commits.

API-Änderungen

  • Es wurde eine Methode zum Berechnen von WindowSizeClass aus WindowMetrics hinzugefügt. (874dba)
  • Ändern Sie die WindowSizeClass-Methoden in containsWidthDp, containsHeightDp und containsWindowSizeDp, um die Übersichtlichkeit zu verbessern. (fa760d)
  • Konvertiere WindowAreaController in eine abstrakte Basisklasse. (I90893)

Fehlerkorrekturen

  • Unterstützung für relative Grenzen beim Erstellen eines Tests FoldingFeature wurde hinzugefügt. (2e6b3e)
  • Allgemeine Fehlerkorrekturen bei der Auswahl eines WindowSizeClass.

Version 1.4.0-alpha03

18. September 2024

androidx.window:window-*:1.4.0-alpha03 wird veröffentlicht. Version 1.4.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Fügen Sie eine Hilfsmethode hinzu, um ein WindowSizeClass aus WindowMetrics abzurufen. (I83f1f)
  • Benennen Sie isAtLeast in containsBreakpoint um. (I85b47)
  • Fügen Sie computeWindowSizeClass eine Überlastung mit Gleitkommazahlen hinzu. (I3dcb2, b/364677934, b/364677802, b/364680886)

Fehlerkorrekturen

  • Fügen Sie dem Standard-Haltepunktset WindowSizeClass fehlende Haltepunkte hinzu.
  • Ein Fehler wurde behoben, bei dem in einigen Fällen nicht die richtigen kompakten Abmessungen ausgewählt wurden.

Version 1.4.0-alpha02

4. September 2024

androidx.window:window-*:1.4.0-alpha02 wird 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 von WindowSizeClass-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 Haltepunktsatz hinzu, der den von Android empfohlenen Haltepunkten entspricht.

API-Änderungen

  • Aktualisieren Sie die Methodennamen für die Grenzen für WindowSizeClass. (If89a6)
  • Aktualisieren Sie die WindowSizeClass API, damit in Zukunft neue Haltepunktwerte hinzugefügt werden können. Anstelle von absoluten Grenzen verwenden wir die Untergrenzen und empfehlen Entwicklern, Untergrenzenprüfungen bei der Verarbeitung von WindowSizeClass zu verwenden. Die bestehenden WindowWidthSizeClass und WindowHeightSizeClass werden eingestellt, da sie nicht weiterentwickelt werden. (I014ce)

Version 1.4.0-alpha01

7. August 2024

androidx.window:window-*:1.4.0-alpha01 wird 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, wodurch die Qualität der Übergangsanimation verbessert wird, wenn ActivityEmbedding verwendet wird.
  • Verbessertes ActivityStack-Management: Apps haben mehr Kontrolle über den ActivityStacks, wenn ActivityEmbedding verwendet wird. Dazu gehören:
  • Aktivität in einem bestimmten ActivityStack starten
  • ActivityStack abschließ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 ActivityStack zu unterstützen:

    • Klasse SplitPinRule
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • APIs hinzufügen, um die interaktive Trennlinie zu aktivieren und zu konfigurieren

    • Klasse DividerAttributes
    • SplitAttributes.Builder#setDividerAttributes
  • APIs zum Festlegen von EmbeddingConfiguration und DimAreaBehavior für Dialogfelder hinzugefügt

    • Klasse EmbeddingConfiguration
    • Klasse DimAreaBehavior
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • APIs hinzufügen, um Updates zu Informationen zum eingebetteten Aktivitätsfenster zu erhalten

    • Klasse EmbeddedActivityWindowInfo
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • APIs zum Festlegen des Hintergrunds für die Einbettungsanimation hinzufügen

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • APIs hinzufügen, um ActivityStacks abzuschließen

    • ActivityEmbeddingController#finishActivityStacks
  • APIs zum Festlegen des Starts von ActivityStack hinzufügen

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • Die folgenden APIs sind stabil und nicht mehr experimentell:

    • ActivityEmbeddingController#invalidateVisibleActivityStacks (moved from SplitController#invalidateTopVisibleSplitAttributes)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#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.
  • Der Support für transferActivityToWindowArea auf Geräten mit einem vendorApiLevel von 2 wird aufgrund instabilen API-Supports entfernt.
  • Einführung einer API, mit der die Trennlinie für das Ziehen in den Vollbildmodus für das Einbetten von Aktivitäten verschoben werden kann. (I645c9)
  • Apps können ActivityEmbedding-Animationen über Animationsparameter für SplitAttributes deaktivieren. (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 (z.B. R8-Version 3.3) verwendet wird, und für alle Builds, wenn AGP 8.1 oder höher (z.B. D8-Version 8.1) verwendet wird. 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 SplitAttributes verwenden, 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 für WindowMetrics hinzugefügt (Id6723)
  • Fügen Sie eine API hinzu, um SupportedPostures zu erhalten. (If557a)
  • setLaunchingActivityStack aus experimenteller API entfernen (I191cf)
  • Einführung von ActivityEmbeddingController#embeddedActivityWindowInfo (I24312)
  • #getToken einstellen und #getActivityStackToken hinzufü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 WindowSdkExtensionsRule ein, um extensionsVersion für Tests zu überschreiben. (Ifb928)
  • – #setLaunchingActivityStack zu Bundle migrieren, um mit ActivityOptionsCompat-Verwendungen kompatibel zu sein.
    • Nutzer sollten activityOptions.toBundle anstelle von ActvityOptions übergeben.
    • Entfernen Sie #setLaunchingActivityStack(Activity). Nutzer sollten zu ActivityEmbeddingController#getActivityStac(Activity) migrieren, um ein ActivityStack zu erhalten, und das ActivityStack an #setLaunchingActivityStack übergeben. (Ie0ccc)
  • – ActivityStack.Token und SpltInfo.Token als 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#invalidateVisibleActivityStacks vor.
    • Entferne SplitController#invalidateTopVisibleSplitAttributes, da die Funktion in #invalidateVisibleActivityStacks zusammengefasst wird (I02ef5).
  • – API zum Festlegen der Einbettungskonfiguration hinzugefügt. (I59a4a)
  • – Hinzufügen von APIs zum Anpinnen/Lösen von Pins für die obersten ActivityStack androidx.Window.
    • Demo-App wird aktualisiert, um das Anpinnen/Lösen von oben zu ermöglichen ActivityStack (I24dd3)
  • #finishActivityStacks und ActivityEmbeddingOptions wieder 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 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

  • Unterstützung von Kotlin Multiplatform für Window Size Classes.

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 wird 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 wird veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.

API-Änderungen

  • Die Unterstützung für das Erstellen und Verwenden benutzerdefinierter WindowSizeClass wurde entfernt. (Id1143)

Fehlerkorrekturen

  • Es wurde ein Fehler KotlinReflectionInternalError behoben, 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 wird 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 wird veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.

API-Änderungen

  • WindowSizeClassUtil in fokussiertere Methoden aufteilen (Ie9292)
  • WindowSizeClass#compute wiederherstellen (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 wird 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 ihre eigenen Größenklassen verwenden möchten.

API-Änderungen

  • Fügen Sie der Breiten-Auswahl Höhenbeschränkungen hinzu. (I23393)
  • Dienstfunktionen zum Auswählen eines WindowSizeClass aus einer Menge hinzugefügt. Hinzufügen experimenteller Scoring-Funktionen, damit Entwickler eigene Selektoren schreiben können. Fügen Sie eine Selektorerweiterungsfunktion hinzu, um die breiteste WindowSizeClass innerhalb 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 wird 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 FoldingFeature sind jetzt stabil.
  • Test-APIs zum Einrichten gefälschter ActivityEmbedding-Werte sind jetzt stabil.
  • WindowLayoutInfoPublisherRule meldet jetzt die Überschreibung, wenn ein Wert aus einer UiContext abgerufen wird.
  • Mit dieser Funktion werden Daten aus WindowInfoTracker in UiContext-Parameter zusammengefasst.
  • Die Extensions-Version auf dem Gerät verfügbar machen.
  • 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 wird 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 FoldingFeature sind jetzt stabil.
  • Test-APIs zum Einrichten gefälschter ActivityEmbedding-Werte sind jetzt stabil.
  • WindowLayoutInfoPublisherRule meldet jetzt die Überschreibung, wenn ein Wert aus einer UiContext abgerufen wird.
  • Mit dieser Funktion werden Daten aus WindowInfoTracker in UiContext-Parameter zusammengefasst.
  • Die Extensions-Version auf dem Gerät verfügbar machen.

Version 1.2.0-rc01

1. November 2023

androidx.window:window-*:1.2.0-rc01 wird 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 FoldingFeature sind jetzt stabil.
  • Test-APIs zum Einrichten gefälschter ActivityEmbedding-Werte sind jetzt stabil.
  • WindowLayoutInfoPublisherRule meldet jetzt die Überschreibung, wenn ein Wert aus einer UiContext abgerufen wird.
  • Mit dieser Funktion werden Daten aus WindowInfoTracker in UiContext-Parameter zusammengefasst.
  • Die Extensions-Version auf dem Gerät verfügbar machen.

Version 1.2.0-beta04

18. Oktober 2023

androidx.window:window-*:1.2.0-beta04 wird veröffentlicht. Version 1.2.0-beta04 enthält diese Commits.

API-Änderungen

Version 1.2.0-beta03

20. September 2023

androidx.window:window-*:1.2.0-beta03 wird 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 isXXXSupported in der Komponente „Aktivität einbetten“. (Ie3dae)
  • Führen Sie WindowSdkExtensions ein, um die Erweiterungsversion auf dem Gerät zu melden.
    • Führen Sie RequiresWindowSdkExtension ein, um die erforderliche Mindestversion der Erweiterung anzugeben. (I05fd4)
  • Macht WindowAreaInfo#getCapability zu 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 wird 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 FoldingFeature sind jetzt stabil.
  • Test-APIs zum Einrichten gefälschter ActivityEmbedding-Werte sind jetzt stabil.
  • WindowLayoutInfoPublisherRule meldet jetzt die Überschreibung, wenn ein Wert aus einer UiContext abgerufen wird.
  • Mit dieser Funktion werden Daten aus WindowInfoTracker in UiContext-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 wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Veraltete APIs aus der API-Oberfläche entfernen.
  • 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

  • Entfernen veralteter APIs (I18d39)
  • Unterstützung für gleichzeitige Displays hinzugefügt (Ifcbb0)

Fehlerkorrekturen

  • Kompatibilitätseigenschaft zum Deaktivieren der Überschreibung für die erzwungene Größenanpassung hinzugefügt (Ie7ab1)
  • Entfernt SESSION_STATE_CONTENT_INVISIBLE aus der Erweiterungsoberfläche. (I6ed19)
  • Stabilisieren Sie ActivityEmbeddingRule, um Unittests für die Einbettung von Aktivitäten zu unterstützen. (I8d6b6)
  • Es wird eine Opt-out-kompatible Property für die Überschreibung des Mindestseitenverhältnisses hinzugefügt. (I66390)
  • Entfernt die eingestellten WindowArea-APIs (Ieb67c)
  • Benennen Sie die Eigenschaft für die Schleife der Ausrichtungsanfrage in PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED um. (Ie2fbd)
  • Aktualisiert die Namen der Sitzungskonstanten für den Fensterbereich (I83675)
  • Es wurde eine Opt-out-Kompatibilitätseigenschaft hinzugefügt, die die Schleife für die Ausrichtung anfordert, wenn sie erkannt wird (I0a7a2).
  • Fügen Sie WindowAreaComponent#STATUS_ACTIVE hinzu, 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 SplitInfo in SplitController zu überschreiben. Fügen Sie Testmethoden hinzu, um Doubles für SplitInfo und ActivityStack zu erstellen. (Icd69f)
  • Tag für ActivityRule.Builder als optional festlegen. (Ib0b44)
  • Entferne RatioSplitType, ExpandContainersSplit und HingeSplitType. Sie sind jetzt SplitType.
    • Ersetzen Sie #splitEqually(), #expandContainers() und #splitByHinge durch die Konstanten SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND und SPLIT_TYPE_HINGE.
    • Die Funktion zum Festlegen des Fallback-Typs für den Scharniersplitt-Typ wird entfernt. Wenn der Scharnier-Aufteilungstyp 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)
  • add/removeSplitCallback einstellen
    • add/removeSplitCallback nach SplitControllerCallbackAdapter verschieben
    • Flow-Unterstützung hinzufügen, um die SplitInfo-Liste zu erhalten (I7f1b6)
  • Testregel für ActivityEmbeddingController (I42e9b) hinzufügen
  • ActivityOptionsCompat wird in ActivityEmbeddingOptions umbenannt (I89301)
  • Fügen Sie splitSupportStatus hinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024)
  • Wir haben SplitAttributes.BackgroundColor eingeführt, um den DEFAULT-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() und alwaysDisallow() durch ALWAYS_ALLOW und ALWAYS_DISALLOW. (I3057b)
  • Fügen Sie APIs für SplitRule, SplitAttributes und SplitAttributesCalculator hinzu. (I92d23)
  • Fügen Sie TestActivityStack hinzu, um ActivityStack zum Testen zu erstellen.
    • Fügen Sie TestSplitInfo hinzu, um SplitInfo zum Testen zu erstellen. (I8e779)
  • Möglichkeit zum Erstellen gefälschter SplitAttributesCalculatorParams hinzufügen, damit Entwickler ihre benutzerdefinierten SplitAttributesCalculator (Id4a6e) überprüfen können
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) und WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) hinzufügen (I66c7f)

Version 1.2.0-alpha02

7. Juni 2023

androidx.window:window-*:1.2.0-alpha02 wird veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

Neue Funktionen

  • Aktualisieren Sie die Test-API, um eine Konstante für nicht angegebene Faltfunktionen zu haben.
  • Wenn Sie WindowLayoutInfoPublishRule überschreiben, werden alle Werte von windowLayoutInfo überschrieben, einschließlich der kontextbasierten API.

API-Änderungen

  • Konstante für nicht angegebene Mittelfalzung hinzufügen. (I7530c)

Fehlerkorrekturen

  • Aktualisiere WindowLayoutInfoPublishRule, um Überschreibungen für Context basierend auf WindowLayoutInfo zu unterstützen. (I2037a)

Version 1.2.0-alpha01

24. Mai 2023

androidx.window:window-*:1.2.0-alpha01 wird 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)
  • WindowMetrisCalculatorTestRule ist 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 WindowLayoutInfo stabilisieren, um JVM-Tests zu unterstützen. (Ie036e)
  • Fügen Sie IntRange für Test-Folding-Funktionswerte hinzu. (I69f7d)

Version 1.1

Version 1.1.0

7. Juni 2023

androidx.window:window-*:1.1.0 wird veröffentlicht. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

Aktivitätseinbettung

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED wurde als boolesche Eigenschaft des Tags <application> im App-Manifest hinzugefügt.
  • isSplitSupported wurde eingestellt und durch splitSupportStatus ersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.
  • Die verschachtelte Klasse SplitController.SplitSupportStatus wurde hinzugefügt, um Statuskonstanten für das Attribut splitSupportStatus bereitzustellen.
  • SplitController wurde in mehrere Module refaktoriert:
    • ActivityEmbeddingController-Modul für APIs, die mit Activity oder ActivityStack zusammenhängen.
    • isActivityEmbedded wurde von SplitController nach ActivityEmbeddingController verschoben.
    • RuleController-Modul für EmbeddingRule-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 EmbeddingAspectRatio wurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren.
  • Die Klasse SplitAttributes wurde hinzugefügt, um das geteilte Layout zu definieren.
  • SplitAttributes-Rechnerfunktionen wurden SplitController hinzugefü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#tag wurde hinzugefügt.
  • API-Updates in SplitRule:
    • defaultSplitAttributes hinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. Ersetzt splitRatio und layoutDirection.
    • Übersetzung der XML-Attribute splitRatio und splitLayoutDirection in defaultSplitAttributes hinzugefügt.
    • Die Definitionen der Mindestabmessungen wurden geändert, sodass anstelle von Pixeln dichteunabhängige Pixel (dp) verwendet werden.
    • minHeightDp mit dem Standardwert 600 dp wurde hinzugefügt.
    • minWidth wurde in minWidthDp mit dem Standardwert 600 dp geändert.
    • minSmallestWidth wurde in minSmallestWidthDp mit dem Standardwert 600 dp geändert.
    • maxAspectRatioInHorizontal mit dem Standardwert ALWAYS_ALLOW wurde hinzugefügt.
    • maxAspectRatioInPortrait mit dem Standardwert 1,4 wurde hinzugefügt.
    • Die verschachtelte Klasse FinishBehavior wurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen.
    • Die Property-Änderungen wurden auf die verschachtelte Builder-Klasse von SplitPairRule und SplitPlaceholderRule angewendet.
  • SplitInfo#getSplitRatio() wurde durch SplitInfo#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 aktivierte Nutzer wurde WindowMetricsCalculator hinzugefügt.

Migrationsschritte

  • Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag <application> die Eigenschaft PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED hinzufü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 der aktuelle Split 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. }
  • SplitController-Migrationen:
    • SplitController.getInstance() wird zu SplitController.getInstance(Context) geändert.
    • SplitController.initialize(Context, @ResId int) wird zu RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) geändert.
    • SplitController.getInstance().isActivityEmbedded(Activity) wird zu ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) geändert.
    • SplitController.getInstance().registerRule(rule) wird zu RuleController.getInstance(Context).addRule(rule) geändert.
    • SplitController.getInstance().unregisterRule(rule) wird zu RuleController.getInstance(Context).removeRule(rule) geändert.
    • SplitController.getInstance().clearRegisteredRules() wird zu RuleController.getInstance(Context).clearRules() geändert.
    • SplitController.getInstance().getSplitRules() wird zu RuleController.getInstance(Context).getRules() geändert.
  • SplitRule-Property-Migrationen:
    • Für minWidth und minSmallestWidth werden 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 einfach minWith in Pixeln durch displayMetrics#density dividieren.
  • Die Konstanten für das Abschlussverhalten müssen zu FinishBehavior-Konstanten der Enum-ähnlichen Klasse migriert werden:
    • FINISH_NEVER wird zu FinishBehavior.NEVER geändert.
    • FINISH_ALWAYS wird zu FinishBehavior.ALWAYS geändert.
    • FINISH_ADJACENT wird zu FinishBehavior.ADJACENT geändert.
  • Die Layoutrichtung muss zu SplitAttributes.LayoutDirection migriert werden:
    • ltr wird zu SplitAttributes.LayoutDirection.LEFT_TO_RIGHT geändert.
    • rtl wird zu SplitAttributes.LayoutDirection.RIGHT_TO_LEFT geändert.
    • locale wird zu SplitAttributes.LayoutDirection.LOCALE geändert.
    • splitRatio muss zu SplitAttributes.SplitType.ratio(splitRatio) migriert werden.
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) wird geändert zu kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection)- und setSplitRatio(ratio)-Änderungen an kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • setFinishPrimaryWithSecondary und setFinishSecondaryWithPrimary verwenden die FinishBehavior-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.
    • Verwenden Sie setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
  • SplitPlaceholder.Builder migrations:
    • Enthält nur die Parameter filters und placeholderIntent. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“.
    • setFinishPrimaryWithPlaceholder verwendet die enum-ähnlichen Konstanten FinishBehavior. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.
    • setLayoutDirection(layoutDirection) und setSplitRatio(ratio) werden zu: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Verwenden Sie setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.

Version 1.1.0-rc01

10. Mai 2023

androidx.window:window-*:1.1.0-rc01 wird veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.

Neue Funktionen

  • Release ActivityEmbedding als stabile API.
  • Verschiedene Fehlerkorrekturen.

Version 1.1.0-beta02

5. April 2023

androidx.window:window-*:1.1.0-beta02 wird 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 wird veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.

Aktivitätseinbettung

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED wurde als boolesche Eigenschaft des Tags <application> im App-Manifest hinzugefügt.
  • isSplitSupported wurde eingestellt und durch splitSupportStatus ersetzt, um detailliertere Informationen dazu zu liefern, warum die Split-Funktion nicht verfügbar ist.
  • Die verschachtelte Klasse SplitController.SplitSupportStatus wurde hinzugefügt, um Statuskonstanten für das Attribut splitSupportStatus bereitzustellen.
  • SplitController wurde in mehrere Module refaktoriert:
    • ActivityEmbeddingController-Modul für APIs, die mit Activity oder ActivityStack zusammenhängen.
    • isActivityEmbedded wurde von SplitController nach ActivityEmbeddingController verschoben.
    • RuleController-Modul für EmbeddingRule-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 EmbeddingAspectRatio wurde hinzugefügt, um Konstanten für das Verhalten im Stil von Enums in Bezug auf das Seitenverhältnis des Displays zu definieren.
  • Die Klasse SplitAttributes wurde hinzugefügt, um das geteilte Layout zu definieren.
  • SplitAttributes-Rechnerfunktionen wurden SplitController hinzugefü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#tag wurde hinzugefügt.
  • API-Updates in SplitRule:
    • defaultSplitAttributes hinzugefügt: Definiert das Standardlayout für die Aufteilung eines Splits. Ersetzt splitRatio und layoutDirection.
    • Übersetzung der XML-Attribute splitRatio und splitLayoutDirection in defaultSplitAttributes hinzugefügt.
    • Die Definitionen der Mindestabmessungen wurden geändert, sodass anstelle von Pixeln dichteunabhängige Pixel (dp) verwendet werden.
    • minHeightDp mit dem Standardwert 600 dp wurde hinzugefügt.
    • minWidth wurde in minWidthDp mit dem Standardwert 600 dp geändert.
    • minSmallestWidth wurde in minSmallestWidthDp mit dem Standardwert 600 dp geändert.
    • maxAspectRatioInHorizontal mit dem Standardwert ALWAYS_ALLOW wurde hinzugefügt.
    • maxAspectRatioInPortrait mit dem Standardwert 1.4 wurde hinzugefügt.
    • Die verschachtelte Klasse FinishBehavior wurde definiert, um die Konstanten für das Abschlussverhalten zu ersetzen.
    • Die Änderungen an den Attributen wurden auf die verschachtelte Klasse Builder von SplitPairRule und SplitPlaceholderRule angewendet.
  • SplitInfo#getSplitRatio() wurde durch SplitInfo#getSplitAttributes() ersetzt, um zusätzliche Informationen zu Splits bereitzustellen.

WindowLayout

  • WindowInfoTracker unterstützt jetzt auch UI-Kontext ohne Aktivität.
  • Nicht aktivitätsbezogener UI-Kontext wurde zu WindowMetricsCalculator hinzugefügt.

Migrationsschritte

  • Damit Aktivitäten in Splits angezeigt werden können, müssen Apps dem Manifest-Tag <application> die Eigenschaft PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED hinzufü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 der aktuelle Split 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. }
  • SplitController migrations:
    • SplitController.getInstance() wird zu SplitController.getInstance(Context) geändert.
    • SplitController.initialize(Context, @ResId int) wird zu RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) geändert.
    • SplitController.getInstance().isActivityEmbedded(Activity) wird zu ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) geändert.
    • SplitController.getInstance().registerRule(rule) wird zu RuleController.getInstance(Context).addRule(rule) geändert.
    • SplitController.getInstance().unregisterRule(rule) wird zu RuleController.getInstance(Context).removeRule(rule) geändert.
    • SplitController.getInstance().clearRegisteredRules() wird zu RuleController.getInstance(Context).clearRules() geändert.
    • SplitController.getInstance().getSplitRules() wird zu RuleController.getInstance(Context).getRules() geändert.
  • SplitRule-Property-Migrationen:
    • Für minWidth und minSmallestWidth werden 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 einfach minWith in Pixeln durch displayMetrics#density dividieren.
  • Die Konstanten für das Abschlussverhalten müssen zu FinishBehavior-Konstanten der Enum-ähnlichen Klasse migriert werden:
    • FINISH_NEVER wird zu FinishBehavior.NEVER geändert.
    • FINISH_ALWAYS wird zu FinishBehavior.ALWAYS geändert.
    • FINISH_ADJACENT wird zu FinishBehavior.ADJACENT geändert.
  • Die Layoutrichtung muss zu SplitAttributes.LayoutDirection migriert werden:
    • ltr wird zu SplitAttributes.LayoutDirection.LEFT_TO_RIGHT geändert.
    • rtl wird zu SplitAttributes.LayoutDirection.RIGHT_TO_LEFT geändert.
    • locale wird zu SplitAttributes.LayoutDirection.LOCALE geändert.
    • splitRatio muss zu SplitAttributes.SplitType.ratio(splitRatio) migriert werden.
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) wird geändert zu kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) und setSplitRatio(ratio) werden in kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) geändert.
    • setFinishPrimaryWithSecondary und setFinishSecondaryWithPrimary verwenden die FinishBehavior-Konstanten, die Enums ähneln. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.
    • Verwenden Sie setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.
  • SplitPlaceholder.Builder migrations:
    • Enthält nur die Parameter filters und placeholderIntent. Andere Eigenschaften werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder-Migrationen“.
    • setFinishPrimaryWithPlaceholder verwendet die enum-ähnlichen Konstanten FinishBehavior. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.
    • setLayoutDirection(layoutDirection) und setSplitRatio(ratio) werden zu: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Verwenden Sie setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW), um Splits auf Geräten im Hochformat anzuzeigen.

Version 1.1.0-alpha06

22. Februar 2023

androidx.window:window-*:1.1.0-alpha06 wird veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.

Neue Funktionen

  • Experimentelle Version zum Abrufen von WindowLayoutInfo aus einem UI-Kontext verfügbar machen.

API-Änderungen

  • Fügen Sie splitSupportStatus hinzu, um anzugeben, ob die Einbettung von Aktivitäten verfügbar ist. (I10024)
  • Die API für den UI-Kontext WindowLayoutInfo wird als experimentell gekennzeichnet. (I58ee0)
  • Die WindowAreaController und die APIs werden eingeführt, um den RearDisplay-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das mit der Rückkamera ausgerichtet ist. (Iffcbf)
  • Standardhintergrundfarbe aktualisieren. (I1ac1b)
  • SplitAttributes-Parameter hinzufügen (I18bdd)
  • Fügen Sie APIs für SplitRule, SplitAttributes und SplitAttributesCalculator hinzu. (I92d23)
  • APIs für maxAspectRatio verbessern:
    1. Ersetzen Sie alwaysAllow() und alwaysDisallow() durch ALWAYS_ALLOW und ALWAYS_DISALLOW.
    2. Aktualisieren Sie die API-Dokumentation von @see mit der eigenständigen Dokumentation. (I3057b)
  • Die folgenden Konstruktoren werden aus öffentlichen APIs entfernt, da sie nicht von Apps aufgerufen werden sollen.
    • SplitInfo-Konstruktor
    • ActivityStack-Konstruktor (Ide534)
  • SplitRule dauert jetzt maxAspectRatioInPortrait/Landscape. Aktivitäten können nur aufgeteilt werden, wenn das Seitenverhältnis der übergeordneten Grenzen kleiner oder gleich dem angeforderten maxAspectRatio ist. (Ia5990)
  • Ändern Sie RuleController#parseRules in statisch (I785df).
  • APIs für ActivityEmbedding verbessern
    1. API-Benennung anpassen – „add“/„remove“ für mehrere Instanzen verwenden:
    2. registerRule wird zu addRule geändert
    3. unregisterRule wird zu removeRule geändert
    4. Ersetzen Sie getSplitRules durch getRules, da ActivityRule keine Aufteilungsregel ist.
    5. Fügen Sie RuleController#setRules hinzu, um mehrere Regeln festzulegen.
    6. Extrahieren Sie regelbezogene APIs aus SplitController in das Singleton RuleController. Die regionalen Gewinner sind:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. Extrahieren Sie #isActivityEmbedded aus SplitController in das Singleton ActivityEmbeddingController. Die regionalen Gewinner sind:
    14. isActivityEmbedded
    15. Entfernen Sie SplitController#initialize. Wenn Sie Regeln aus einer XML-Datei festlegen möchten, verwenden Sie RuleController#parseRules und #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)
    16. Wir unterscheiden nicht mehr zwischen statischen Regeln und Laufzeitregeln. Durch den Aufruf von #clearRules werden jedoch alle Regeln gelöscht, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder zur Laufzeit registriert wurden. Wenn Sie das alte Verhalten von SplitController#clearRegisteredRules beibehalten möchten, rufen Sie RuleController#parseRules mit der XML-Ressourcen-ID auf und rufen Sie RuleController#setRules auf, 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:
    1. Verwende für SplitRule Mindestabmessungen in DP anstelle von Pixeln.
    2. Refactoring für SplitRule Builder, damit Mindestdimensionen optional sind. (I95f17)
  • Kontext zum Initialisieren von SplitController übergeben (I42549)
  • SplitRule#layoutDir wurde in #layoutDirection und SplitRule Builder#setLayoutDir in Builder#setLayoutDirection umbenannt. (I3f6d1)

Version 1.1.0-alpha04

9. November 2022

androidx.window:window-*:1.1.0-alpha04 wird 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 ActivityStack für ActivityEmbedding leer ist.
  • Experimentelle API-Tags wurden aus ActivityEmbedding-APIs entfernt.
  • ActivityRule-Konstruktor ausblenden, da Builder die bevorzugte Methode zum Erstellen ist.
  • Fügen Sie eine experimentelle Methode hinzu, um WindowInsets für WindowMetrics zu 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“ isEmpty zu ersetzen.
  • Benennen Sie Aktivitäten mit dem Parameter ActivityStack in activitiesInProcess um. (Ia5055)
  • Entferne ActivityFilter#matchesClassName und ActivityFilter#matchesClassNameOrWildCard, da sie verwirrend sind.
  • Fügen Sie ActivityFilter#componentName und ActivityFilter#intentAction hinzu, damit der Anrufer verschiedene Filter unterscheiden kann (I41f22).
  • Entfernen Sie die @Deprecated-APIs aus der experimentellen API (I216b3).
  • @ExperimentalWindowApi für Activity Embedding APIs entfernen (I69ebe)
  • ActivityRule-Konstruktor ausblenden, stattdessen Builder verwenden. (If4eb6)
  • Fügen Sie APIs hinzu, um zu prüfen, ob eine Aktivität Teil der ActivityFilter ist. (Ia43cf)
  • API-Dateien aktualisieren, um Änderungen in den Klassen WindowMetrics und WindowMetricsCalculatorCompat zu berücksichtigen (I667fe)
  • Javadoc und Klassenname der Property ActivityEmbedding aktualisieren (Ia1386)
  • Hinzufügen von ActivityEmbedding-Eigenschaftstagnamen zur Verwendung in „AndroidManifest.xml“ (Id1ad4)
  • Die neuen APIs SplitPlaceholderFinishBehavior und SplitPlaceholderRule.finishPrimaryWithPlaceholder wurden hinzugefügt. Sie ersetzen die vorhandene API SplitPlaceholderRule.finishPrimaryWithSecondary, mit der definiert wird, wann Platzhalteraktivitäten abgeschlossen sind und wie sich zugehörige Aktivitäten in Activity Embedding verhalten sollen. (I64647)

Fehlerkorrekturen

  • Die WindowAreaController und die APIs werden eingeführt, um den RearDisplay-Modus zu aktivieren, mit dem das aktuelle Fenster auf das Display verschoben wird, das mit der Rückkamera ausgerichtet ist. (I388ab)

Version 1.1.0-alpha03

27. Juli 2022

androidx.window:window-*:1.1.0-alpha03 wird 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 wird 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 wird 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 wird 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 wird weiterentwickelt.

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ätsaufteilungen hinzugefügt (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 wird veröffentlicht. Version 1.0.0 enthält diese Commits.

Wichtige Funktionen von Version 1.0.0

  • Unterstützung für Falt-Smartphones über WindowInfoTracker und FoldingFeature. WindowMetricsCalculator, um die aktuellen WindowMetrics zu berechnen.

Version 1.0.0-rc01

15. Dezember 2021

androidx.window:window-*:1.0.0-rc01 wird veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Neue Funktionen

  • Unterstützung für Falt-Smartphones über WindowInfoTracker hinzugefügt.
  • Es wurden Methoden zum Berechnen des aktuellen und maximalen WindowMetrics hinzugefügt.
  • Unterstützende Test-APIs hinzufügen

Version 1.0.0-beta04

17. November 2021

androidx.window:window-*:1.0.0-beta04 wird 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 wird 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

Version 1.0.0-beta02

1. September 2021

androidx.window:window-*:1.0.0-beta02 wird veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Neue Funktionen

  • Fügen Sie eine experimentelle Annotation hinzu, um experimentelle APIs zu annotieren. (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 wird veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

Neue Funktionen

  • Alte Konstanten wurden entfernt und FoldingFeature wurde 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 Version 1.4.0 aktualisiert 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 wird 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 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 wird veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

Neue Funktionen

  • Von Ganzzahlkonstanten zu unbegrenzten Enums wechseln.
  • Es wurde ein Test-Tool zum Erstellen von Test-Folding-Funktionen hinzugefügt.

API-Änderungen

  • Es wurde eine Hilfsmethode zum Erstellen von Testanzeigefunktionen hinzugefügt. (I3cf54)
    • Ändern Sie occlusionMode in occlusionType.

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 wird 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 wird 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- und window-rxjava3-Artefakte zum Bereitstellen von RxJava-angepassten APIs.

API-Änderungen

  • Fügen Sie WindowServices hinzu, 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 wird 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_FLIPPED aus 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 DisplayFeature wurde entfernt. (I61fa4)
  • DeviceState wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessen FoldingFeature. (Id6079)
  • Entfernen Sie den Gerätestatus-Callback aus Erweiterungen. (I5ea83)
  • Entfernen Sie STATE_FLIPPED aus FoldingFeature. (I9c4e1)
  • Entfernen Sie verworfene Registrierungsmethoden. (Ib381b)

Version 1.0.0-alpha05

24. März 2021

androidx.window:window:1.0.0-alpha05 wird 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 sich das Feature trennt oder verdeckt, 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 entfernen (I96fd4)

Version 1.0.0-alpha04

10. März 2021

androidx.window:window:1.0.0-alpha04 wird 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, durch den 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 wird 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 wird 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
  • ExtensionInterface wurde aktualisiert, um explizite Activity-Referenzen zu akzeptieren. (I07ded)
  • Einführung der WindowMetrics API. (I3ccee)
  • Synchrone Lesemethoden aus WindowManager entfernen (I69983)
  • Das ExtensionWindowBackend-Paket ist jetzt 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_OPENED usw.