Fenstermanager
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpha-Release |
---|---|---|---|---|
4. September 2024 | 1.3.0 | - | - | 1.4.0-alpha02 |
Abhängigkeiten deklarieren
Um eine Abhängigkeit von WindowManager hinzuzufügen, müssen Sie das Maven-Repository von Google zu für Ihr Projekt. Gelesen Maven-Repository von Google für weitere Informationen Informationen.
Fügen Sie der Datei build.gradle
die Abhängigkeiten für die Artefakte hinzu, die Sie benötigen
Ihre App oder Ihr Modul:
Cool
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.
Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .
Version 1.4
Version 1.4.0-alpha02
4. September 2024
androidx.window:window-*:1.4.0-alpha02
wurde veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.
Neue Funktionen
Unterstützung für benutzerdefinierte WindowSizeClass
hinzufügen.
- Öffnen Sie den Konstruktor für
WindowSizeClass
, damit Entwickler ihren eigenen verwenden können. - Fügen Sie
isAtLeast
-Dienstprogrammmethoden hinzu, damit Entwickler einen Bereich vonWindowSizeClass
-Werten verarbeiten können. - Fügen Sie eine Erweiterungsfunktion für
Set<WindowSizeClass>
hinzu, um die beste Übereinstimmung aus dem Satz zu berechnen. - Fügen Sie Konstanten für die von Android empfohlenen Haltepunkte hinzu.
- Fügen Sie den Haltepunkt hinzu, der den von Android empfohlenen Haltepunkten entspricht.
API-Änderungen
- Aktualisiert die Namen von bounds-Methoden 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 unteren Grenzen und empfehlen Entwicklern, bei der Verarbeitung einerWindowSizeClass
Grenzwertprüfungen zu verwenden. Die vorhandenenWindowWidthSizeClass
undWindowHeightSizeClass
werden verworfen, da sie nicht weiterentwickelt werden. (I014ce)
Version 1.4.0-alpha01
7. August 2024
androidx.window:window-*:1.4.0-alpha01
wurde veröffentlicht. Version 1.4.0-alpha01 enthält diese Commits.
Neue Funktionen
- Mit dem Anpinnen des Aktivitätsstacks können Apps Inhalte in einem Container anpinnen und die Navigation vom anderen Container getrennt halten.
- Mit der interaktiven Trennlinie können Apps eine feste oder ziehbare Trennlinie zwischen den beiden Aktivitäten in einer geteilten Präsentation anzeigen.
- Mit der Option Vollbild-Dialogfeld dimmen können Apps den Abdunkelbereich des Dialogfelds angeben, um entweder das gesamte Aufgabenfenster oder nur den Container zu dimmen, in dem das Dialogfeld angezeigt wird.
- Der eingebettete Informationsrückruf für Aktivitätsfenster ermöglicht es Apps, kontinuierlich Updates des eingebetteten Aktivitätsfensters zu empfangen.
- Mit der Option Hintergrund für Animationen einbetten können Apps den Animationshintergrund angeben, wodurch die Qualität der Übergangsanimation bei Verwendung von
ActivityEmbedding
verbessert wird. - Die verbesserte ActivityStack-Verwaltung ermöglicht Apps mehr Kontrolle über die
ActivityStacks
, wennActivityEmbedding
verwendet wird. Dazu gehören: - Aktivität in einer bestimmten
ActivityStack
starten ActivityStack
beenden
API-Änderungen
Eine neue API-
WindowInfoTracker#supportedPostures
:- Eine API, um festzustellen, ob das Gerät den Modus „Auf dem Tisch“ für faltbare Geräte unterstützt. Fügt WindowAreaSessionPresenter#getWindow hinzu
Fügen Sie APIs hinzu, um das Anpinnen von
ActivityStack
zu unterstützen:SplitPinRule
KlasseSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
APIs hinzufügen, um die interaktive Trennlinie zu aktivieren und zu konfigurieren
DividerAttributes
KlasseSplitAttributes.Builder#setDividerAttributes
APIs hinzufügen, um
EmbeddingConfiguration
undDimAreaBehavior
für Dialogfelder festzulegenEmbeddingConfiguration
KlasseDimAreaBehavior
KlasseActivityEmbeddingController#setEmbeddingConfiguration
APIs hinzufügen, um aktualisierte Informationen zum Aktivitätsfenster zu erhalten
EmbeddedActivityWindowInfo
KlasseActivityEmbeddingController#embeddedActivityWindowInfo
APIs hinzufügen, um den Hintergrund der Einbettungsanimation festzulegen
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
APIs hinzufügen, um
ActivityStacks
abzuschließenActivityEmbeddingController#finishActivityStacks
APIs hinzufügen, um den Start von
ActivityStack
festzulegenActivityEmbeddingOptions#setLaunchingActivityStack
Die folgenden APIs sind stabil und nicht mehr experimentell:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(verschoben aus SplitController#invalidTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
APIs für Version 1.4. (I56774)
Fehlerkorrekturen
- Es wurde ein Fehler auf bestimmten Geräten behoben, auf dem bei aktiver Sitzung UNAVAILABLE statt ACTIVE zurückgegeben wurde.
- Entfernt die Unterstützung für
transferActivityToWindowArea
auf Geräten mit einemvendorApiLevel
von 2 aufgrund instabiler API-Unterstützung. - Einführung der API zur Aktivierung des Ziehens in den Vollbildmodus für die ziehbare Trennlinie beim Einbetten von Aktivitäten (I645c9)
- Apps dürfen
ActivityEmbedding
-Animationen über Animationsparameter fürSplitAttributes
deaktivieren. (Idc01a) - Die manuelle Beschreibung des Zugriffs auf neue Plattform-APIs wurde entfernt, da dies bei Verwendung von R8 mit AGP 7.3 oder höher (z.B. R8-Version 3.3) und bei allen Builds bei Verwendung von AGP 8.1 oder höher (z.B. D8 Version 8.1) automatisch über die API-Modellierung erfolgt. Kunden, 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)
- Erweiterungen dürfen Animationsparameter für
SplitAttributes
übernehmen, damit das Gerät sie für Animationsübergänge verwenden kann. (Iede00) - Overlay-APIs ausblenden (Ic4251)
- Stellen Sie APIs zur Konfiguration der festen oder ziehbaren Trennlinie für die Aufteilung vor (Ia7a78).
- Dichte zu
WindowMetrics
hinzugefügt (Id6723) - Fügen Sie eine API hinzu, um die
SupportedPostures
abzurufen. (If557a) setLaunchingActivityStack
aus experimenteller API entfernen (I191cf)ActivityEmbeddingController#embeddedActivityWindowInfo
vorstellen (I24312)#getToken
verwerfen und#getActivityStackToken
hinzufügen (Ie0471)- Einführung des Callback-Adapters für die
embeddedActivityWindowInfo
Flow API (Ida77f) - Callback-Adapter für die OverlayInfo Flow API hinzufügen (I7264f)
- Führen Sie
WindowSdkExtensionsRule
ein, umextensionsVersion
für Tests zu überschreiben. (Ifb928) - – Migrieren Sie
#setLaunchingActivityStack
zu Bundle, um die Nutzung vonActivityOptionsCompat
zu erfüllen.- Nutzer sollten
activityOptions.toBundle
anstelle vonActvityOptions
selbst übergeben. #setLaunchingActivityStack(Activity)
entfernen. Nutzer sollten zuActivityEmbeddingController#getActivityStac(Activity)
migrieren, um eineActivityStack
zu erhalten, und dieActivityStack
an#setLaunchingActivityStack
übergeben. (Ie0ccc)
- Nutzer sollten
- –
ActivityStack.Token
undSpltInfo.Token
als Kennung für die Kommunikation zwischen WM Jetpack und Erweiterungen einführen- APIs einstellen/ersetzen, um Token anstelle von IBinder zu übernehmen/zurückzugeben. (I12b24)
- –
ActivityEmbeddingController#invalidateVisibleActivityStacks
vorstellen <ph type="x-smartling-placeholder">- </ph>
- Entfernen Sie
SplitController#invalidateTopVisibleSplitAttributes
, da das Feature in#invalidateVisibleActivityStacks
konsolidiert wird (I02ef5)
- Entfernen Sie
- – API wird hinzugefügt, um Einbettungskonfiguration festzulegen. (I59a4a)
- - Top-
ActivityStack
androidx.Window
APIs werden hinzugefügt bzw. losgelöst <ph type="x-smartling-placeholder">- </ph>
- Demo-App wird aktualisiert, um das Anpinnen/Loslösen von
ActivityStack
oben (I24dd3) zu ermöglichen
- Demo-App wird aktualisiert, um das Anpinnen/Loslösen von
#finishActivityStacks
undActivityEmbeddingOptions
(Ic1ab3) wieder hinzufügen- Entfernen Sie instabile APIs. (Ibc534, b/302380585)
Version 1.3
Version 1.3.0
29. Mai 2024
androidx.window:window-*:1.3.0
wurde veröffentlicht. Version 1.3.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.2.0
- Kotlin Multi-Platform-Unterstützung für Fenstergrößenklassen.
Version 1.3.0-rc01
14. Mai 2024
WindowManager
Jetpack 1.3 bietet Kotlin Multiplatform-Unterstützung für WindowSizeClass
-Funktionen sowie mehrere Fehlerkorrekturen.
androidx.window:window-*:1.3.0-rc01
wurde 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
wurde veröffentlicht. Version 1.3.0-beta02 enthält diese Commits.
API-Änderungen
- Unterstützung für das Erstellen und Verwenden benutzerdefinierter
WindowSizeClass
s wird entfernt. (ID1143)
Fehlerkorrekturen
- Das Problem
KotlinReflectionInternalError
wurde behoben, das verursacht wurde, weil Proguard einige Dateien in bestimmten Geräteimplementierungen entfernt hat. (I01b02)
Version 1.3.0-beta01
3. April 2024
androidx.window:window-*:1.3.0-beta01
wurde 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
wurde veröffentlicht. Version 1.3.0-alpha03 enthält diese Commits.
API-Änderungen
- Teilen Sie
WindowSizeClassUtil
in fokussiertere Methoden auf. (Ie9292) WindowSizeClass#compute
wiederherstellen (I21355, b/324293374)
Fehlerkorrekturen
- Ein Absturz wurde behoben, bei dem der angegebene Kontext nicht richtig entpackt wurde. (94d10ce , b/318787482)
Version 1.3.0-alpha02
7. Februar 2024
androidx.window:window-*:1.3.0-alpha02
wurde veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.
Neue Funktionen
- Aktualisierungen der API-Oberfläche der Window Size Class-APIs, um die Flexibilität für Entwickler zu verbessern, die ihre eigenen Größenklassen verwenden möchten.
API-Änderungen
- Fügen Sie der Breitenauswahl Höhenbeschränkungen hinzu. (I23393)
- Fügen Sie Dienstfunktionen zum Auswählen eines
WindowSizeClass
aus einer Gruppe hinzu. Fügen Sie experimentelle Bewertungsfunktionen hinzu, damit Entwickler eigene Selektoren schreiben können. Fügen Sie eine Selektorerweiterungsfunktion hinzu, um die breitesteWindowSizeClass
innerhalb einer bestimmten Grenze auszuwählen. (I0c944) - Öffnen Sie den
WindowSizeClass
-Konstruktor, damit benutzerdefinierte Haltepunkte hinzugefügt werden können. (IC1ff3) - Fügen Sie eine praktische Funktion hinzu, um die Größenklasse aus Breite, Höhe und Dichte zu erstellen. (If67f4)
Fehlerkorrekturen
- Eine Ausnahme wurde behoben, wenn der Gleitkommawert auf 0 gekürzt wurde. (272ffac)
Version 1.3.0-alpha01
15. November 2023
androidx.window:window-*:1.3.0-alpha01
wurde veröffentlicht. Version 1.3.0-alpha01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert von einemUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet, dass Funktionsdaten inUiContext
-Parameter zusammengefasst werden. - Stelle die Version der Erweiterung auf dem Gerät bereit.
WindowProperties
-Konstanten für Überschreibungen pro Nutzer pro App: <ph type="x-smartling-placeholder">- </ph>
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
– informiert die System, für das die App die für Nutzer sichtbare Seitenverhältniskompatibilität deaktiviert hat überschreiben.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
– Informiert Das System, von dem die App die Vollbildoption des Nutzers deaktiviert hat Einstellungen zum Überschreiben der Seitenverhältniskompatibilität
Version 1.2
Version 1.2.0
15. November 2023
androidx.window:window-*:1.2.0
wurde 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 freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert von einemUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet, dass Funktionsdaten inUiContext
-Parameter zusammengefasst werden. - Stelle die Version der Erweiterung auf dem Gerät bereit.
Version 1.2.0-rc01
1. November 2023
androidx.window:window-*:1.2.0-rc01
wurde veröffentlicht. Version 1.2.0-rc01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert von einemUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet, dass Funktionsdaten inUiContext
-Parameter zusammengefasst werden. - Stelle die Version der Erweiterung auf dem Gerät bereit.
Version 1.2.0-beta04
18. Oktober 2023
androidx.window:window-*:1.2.0-beta04
wurde 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
wurde veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.
Neue Funktionen
- Füge
RequiresApi
-Prüfungen für APIs hinzu, die eine bestimmte Version von Erweiterungen benötigen, um ordnungsgemäß zu funktionieren. - Fügen Sie eine API hinzu, um die Version der Erweiterung auf dem Gerät verfügbar zu machen.
API-Änderungen
- Gib die erforderliche Window SDK-Erweiterungsversion in öffentlichen APIs an.
- Entferne „
isXXXSupported
“ in der Komponente „Aktivitätseinbettung“. (Ie3dae)
- Entferne „
- Stelle
WindowSdkExtensions
vor, um die Version der Erweiterung auf dem Gerät zu melden.- Stelle
RequiresWindowSdkExtension
ein, um die mindestens erforderliche Erweiterungsversion anzugeben. (I05fd4)
- Stelle
- Macht
WindowAreaInfo#getCapability
nicht mit Nullwerten kompatibel. (I17048)
Version 1.2.0-beta01
26. Juli 2023
androidx.window:window-*:1.2.0-beta01
wurde veröffentlicht. Version 1.2.0-beta01 enthält diese Commits.
Neue Funktionen
- Experimentelle Fenster-APIs für den Zugriff auf den Rückbildschirm freigeben
- Die Test-APIs zum Erstellen einer
FoldingFeature
sind jetzt stabil. - Test-APIs zum Einrichten gefälschter
ActivityEmbedding
-Werte sind jetzt stabil. WindowLayoutInfoPublisherRule
meldet jetzt die Überschreibung, wenn ein Wert von einemUiContext
abgerufen wird.- „
WindowInfoTracker
“ meldet, dass Funktionsdaten inUiContext
-Parameter zusammengefasst werden.
API-Änderungen
- Kennzeichnet
WindowArea
-APIs als experimentell, damit API-Änderungen für eine stabile Version in 1.3 (I857f5) fortgesetzt werden können - API-Dateien wurden aktualisiert, um mit Anmerkungen zur Unterdrückung der Kompatibilität zu versehen (I8e87a, b/287516207)
Version 1.2.0-alpha03
21. Juni 2023
androidx.window:window-*:1.2.0-alpha03
wurde veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.
Neue Funktionen
- Verworfene APIs werden aus der API-Oberfläche entfernt.
- Füge APIs hinzu, um gleichzeitige Darstellungen zu unterstützen.
- Fügen Sie eine Property hinzu, um die erzwungene Überschreibung der Größenänderung zu deaktivieren.
- Fügen Sie eine Property hinzu, um das Überschreiben des minimalen Seitenverhältnisses zu deaktivieren.
- Stabilisieren Sie
ActivityEmbeddingRule
, um Einheitentests rund um das Einbetten von Aktivitäten zu unterstützen.
API-Änderungen
- Verworfene APIs entfernen (I18d39)
- Unterstützung für gleichzeitige Displays wurde hinzugefügt. (Ifcbb0)
Fehlerkorrekturen
- Opt-out-kompatible Property zum Überschreiben der Größenanpassung erzwingen (Ie7ab1)
- Entfernt
SESSION_STATE_CONTENT_INVISIBLE
aus der Oberfläche für Erweiterungen. (I6ed19) - Stabilisieren Sie
ActivityEmbeddingRule
, um Unittests für das Einbetten von Aktivitäten zu unterstützen. (I8d6b6) - Opt-out-kompatible Property zum Überschreiben des minimalen Seitenverhältnisses wird hinzugefügt. (I66390)
- Entfernt verworfene WindowArea APIs (Ieb67c)
- Schleifeneigenschaft der Ausrichtungsanfrage wurde in
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
umbenannt. (Ie2fbd) - Aktualisiert die Namen von Fensterbereich-Sitzungskonstanten (I83675)
- Hinzufügen einer kompatiblen Opt-out-Property, die die Ausrichtungsanforderungsschleife ignoriert, wenn diese erkannt wird (I0a7a2)
- Fügen Sie
WindowAreaComponent#STATUS_ACTIVE
hinzu, um anzuzeigen, dass die Funktion bereits aktiv ist. (I62bc3) RearDisplayPresentationMode
-APIs hinzufügen (I0401c)- Entferne die Hintergrundfarben-API für stabile Ergebnisse. (I34c3e)
- Window Area APIs ausblenden. (I39de0)
- Fügen Sie Methoden hinzu, um
SplitInfo
inSplitController
zu überschreiben. Fügen Sie Testmethoden hinzu, um fürSplitInfo
undActivityStack
ein Double zu erstellen. (Icd69f) - Tag für
ActivityRule.Builder
optional machen. (Ib0b44) - Entfernen Sie
RatioSplitType
,ExpandContainersSplit
undHingeSplitType
. Sie sind jetztSplitType
.- Ersetzen Sie
#splitEqually()
,#expandContainers()
und#splitByHinge
durch die KonstantenSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
undSPLIT_TYPE_HINGE
. - Die Funktion zum Festlegen des Fallback-Typs für den Scharniergelenktyp wurde entfernt. Wenn der Aufteilungstyp „Scharnier“ aufgrund des aktuellen Geräte- oder Fensterstatus nicht angewendet werden kann, wird der übergeordnete Aufgabencontainer gleichmäßig aufgeteilt. Verwenden Sie
SplitController#setSplitAttributesCalculator
, um den Fallback-Aufteilungstyp anzupassen. (Ifcc59)
- Ersetzen Sie
add
/removeSplitCallback
einstellen <ph type="x-smartling-placeholder">- </ph>
add
/removeSplitCallback
nachSplitControllerCallbackAdapter
verschiebenFlow
-Unterstützung hinzufügen, umSplitInfo
-Liste zu erhalten (I7f1b6)
- Testregel für
ActivityEmbeddingController
hinzufügen (I42e9b) ActivityOptionsCompat
wird inActivityEmbeddingOptions
umbenannt (I89301)- Füge
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - Führe
SplitAttributes.BackgroundColor
ein, um den Wert vonDEFAULT
besser darzustellen. Es wurde klargestellt, dass die Hintergrundfarbe einer nicht undurchsichtigen Animation nicht unterstützt wird, sodass alle nicht deckenden Farben als Standardfarben behandelt werden, d. h., die aktuelle Hintergrundfarbe des Designfensters wird verwendet. (IC6b95) - Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. (I3057b) - Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) TestActivityStack
hinzufügen, umActivityStack
für Tests zu erstellen <ph type="x-smartling-placeholder">- </ph>
- Fügen Sie
TestSplitInfo
hinzu, umSplitInfo
für Tests zu erstellen. (I8e779)
- Fügen Sie
- Es wurde eine Möglichkeit hinzugefügt, eine gefälschte
SplitAttributesCalculatorParams
zu erstellen, damit Entwickler ihre benutzerdefinierteSplitAttributesCalculator
(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
wurde veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.
Neue Funktionen
- Die Test-API wurde so aktualisiert, dass sie eine Konstante für nicht angegebene Faltfunktionen hat.
- Beim Überschreiben mit
WindowLayoutInfoPublishRule
werden alle Werte vonwindowLayoutInfo
überschrieben, einschließlich der kontextbasierten API.
API-Änderungen
- Konstante für nicht angegebenes Faltelement mittig hinzufügen. (I7530c)
Fehlerkorrekturen
- Aktualisieren Sie
WindowLayoutInfoPublishRule
, um Überschreibungen fürContext
-basierteWindowLayoutInfo
zu unterstützen. (I2037a)
Version 1.2.0-alpha01
24. Mai 2023
androidx.window:window-*:1.2.0-alpha01
wurde veröffentlicht. Version 1.2.0-alpha01 enthält diese Commits.
Neue Funktionen
Test-APIs zur Aktivitätseinbettung und WindowLayoutInfoTracker
stabilisieren ActivityEmbeddingRule
wurde auf die stabile Ebene hochgestuft.
WindowMetricsCalculatorRule
wurde auf die stabile Ebene hochgestuft.
Dienstprogrammfunktionen zum Erstellen einer FoldingFeature
für Testzwecke wurden auf „stable“ hochgestuft.
API-Änderungen
- Stabilisieren Sie
ActivityEmbeddingRule
, um Unittests für das Einbetten von Aktivitäten zu unterstützen. (I8d6b6) WindowMetrisCalculatorTestRule
ist stabil und ermöglicht Stub-Messwerte für JVM-Tests. Wir empfehlen die Verwendung eines Emulators, um genaue Ergebnisse zu erhalten.- Test-APIs für
WindowLayoutInfo
stabilisieren, um JVM-Tests zu unterstützen (IE036e) - Füge
IntRange
hinzu, um die Werte der Funktionen für das Falten zu testen. (I69f7d)
Version 1.1
Version 1.1.0
7. Juni 2023
androidx.window:window-*:1.1.0
wurde veröffentlicht. Version 1.1.0 enthält diese Commits.
Wichtige Änderungen seit Version 1.0.0
Einbetten von Aktivitäten
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde dem App-Manifest als boolesche Eigenschaft des<application>
-Tags hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen darüber bereitzustellen, warum die Aufteilungsfunktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatus
bereitzustellen. SplitController
wurde auf mehrere Module umgestaltet: <ph type="x-smartling-placeholder">- </ph>
- Modul
ActivityEmbeddingController
fürActivity
- oderActivityStack
-bezogene APIs. isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.- Modul
RuleController
fürEmbeddingRule
-bezogene Vorgänge: SplitController
APIs wurden entfernt:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- Hinzugefügte
RuleController
APIs: addRule()
: Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule()
: Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules()
: Es wird eine Sammlung von Regeln erstellt.clearRules()
: Entfernt alle registrierten Regeln.parseRules()
: parst Regeln aus XML-Regeldefinitionen.
- Modul
- Alle Module erfordern, dass ein Kontext durch die Methode
#getInstance()
initialisiert wird. Dazu gehören: <ph type="x-smartling-placeholder">- </ph>
ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die
EmbeddingAspectRatio
-Klasse wurde hinzugefügt, um Verhaltenskonstanten im Zusammenhang mit Enum-ähnlichen Werten in Bezug auf das Seitenverhältnis von Displayanzeigen zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitController
wurden Rechnerfunktionen fürSplitAttributes
zum Anpassen von unterteilten Layouts hinzugefügt: <ph type="x-smartling-placeholder">- </ph>
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
, um zu prüfen, ob dieSplitAttributesCalculator
APIs auf dem Gerät unterstützt werden
- Das Feld „
EmbeddingRule#tag
“ wurde hinzugefügt. - API-Aktualisierungen in
SplitRule
: <ph type="x-smartling-placeholder">- </ph>
defaultSplitAttributes
hinzugefügt: Definiert das standardmäßige geteilte Layout einer Teilung. ersetztsplitRatio
undlayoutDirection
.- Die Übersetzung der XML-Eigenschaften
splitRatio
undsplitLayoutDirection
wurde zudefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden so geändert, dass dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
mit Standardwert von 600 dp hinzugefügt.- „
minWidth
“ wurde zu „minWidthDp
“ mit dem Standardwert von 600 dp geändert. - „
minSmallestWidth
“ wurde zu „minSmallestWidthDp
“ mit dem Standardwert von 600 dp geändert. maxAspectRatioInHorizontal
mit StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
mit Standardwert 1.4 hinzugefügt.- Es wurde eine verschachtelte Klasse vom Typ
FinishBehavior
definiert, um Konstanten des Abschlussverhaltens zu ersetzen. - Die Attributänderungen wurden auf die verschachtelte Builder-Klasse von
SplitPairRule
undSplitPlaceholderRule
angewendet.
SplitInfo#getSplitRatio()
wurde durchSplitInfo#getSplitAttributes()
ersetzt, um zusätzliche Informationen zur Aufteilung bereitzustellen.
Fensterlayout
- Zu
WindowInfoTracker
wurde eine experimentelle Unterstützung für den UI-Kontext ohne Aktivität hinzugefügt. - Zu
WindowMetricsCalculator
wurde ein experimenteller UI-Kontext ohne Aktivität hinzugefügt.
Migrationsschritte
- Damit die Einbettung von Aktivitäten Aktivitäten in Aufteilungen darstellen kann, müssen Apps das Attribut
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
dem Manifest-<application>
-Tag hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Aufteilungsverhalten für eine Anwendung im Voraus optimieren. SplitInfo
-Seitenverhältnis <ph type="x-smartling-placeholder">- </ph>
- Prüfen Sie, ob die aktuelle Aufteilung 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üfen Sie, ob die aktuelle Aufteilung gestapelt ist:
- SplitController-Migrationen:
<ph type="x-smartling-placeholder">
- </ph>
SplitController.getInstance()
ändert sich zuSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
ändert sich zuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
ändert sich zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
ändert sich zuRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
ändert sich zuRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
ändert sich zuRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
ändert sich zuRuleController.getInstance(Context).getRules()
.
SplitRule
Property-Migrationen: <ph type="x-smartling-placeholder">- </ph>
minWidth
undminSmallestWidth
verwenden jetzt dp-Einheiten anstelle von Pixeln. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder teilen SieminWith
in Pixel einfach durchdisplayMetrics#density
.
- Konstanten für das Beenden-Verhalten müssen zu
FinishBehavior
-Klassenkonstanten migriert werden, die Enum-ähnlichen sind: <ph type="x-smartling-placeholder">- </ph>
FINISH_NEVER
ändert sich zuFinishBehavior.NEVER
.FINISH_ALWAYS
ändert sich zuFinishBehavior.ALWAYS
.FINISH_ADJACENT
ändert sich zuFinishBehavior.ADJACENT
.
- Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden: <ph type="x-smartling-placeholder">- </ph>
ltr
ändert sich zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
ändert sich zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
ändert sich zuSplitAttributes.LayoutDirection.LOCALE
.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
Migrationen: <ph type="x-smartling-placeholder">- </ph>
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
Änderungen ankotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändert sich zukotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
haben die enum-ähnlichen KonstantenFinishBehavior
. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Mit
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
kannst du dir Aufteilungen auf Geräten im Hochformat anzeigen lassen.
SplitPlaceholder.Builder
Migrationen: <ph type="x-smartling-placeholder">- </ph>
- Hat nur die Parameter
filters
undplaceholderIntent
. Andere Properties werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder Migrationen“. setFinishPrimaryWithPlaceholder
verwendet dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Mit
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
kannst du dir Aufteilungen auf Geräten im Hochformat anzeigen lassen.
- Hat nur die Parameter
Version 1.1.0-rc01
10. Mai 2023
androidx.window:window-*:1.1.0-rc01
wurde veröffentlicht. Version 1.1.0-rc01 enthält diese Commits.
Neue Funktionen
- Veröffentlichen Sie
ActivityEmbedding
als stabile API. - Diverse Fehlerkorrekturen.
Version 1.1.0-beta02
5. April 2023
androidx.window:window-*:1.1.0-beta02
wurde veröffentlicht. Version 1.1.0-beta02 enthält diese Commits.
Neue Funktionen
- Interne Fehlerbehebungen und Bereinigung.
Version 1.1.0-beta01
22. März 2023
androidx.window:window-*:1.1.0-beta01
wurde veröffentlicht. Version 1.1.0-beta01 enthält diese Commits.
Eingebettete Aktivitäten
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
wurde dem App-Manifest als boolesche Eigenschaft des<application>
-Tags hinzugefügt.isSplitSupported
wurde eingestellt und durchsplitSupportStatus
ersetzt, um detailliertere Informationen darüber bereitzustellen, warum die Aufteilungsfunktion nicht verfügbar ist.- Die verschachtelte Klasse
SplitController.SplitSupportStatus
wurde hinzugefügt, um Statuskonstanten für das AttributsplitSupportStatus
bereitzustellen. SplitController
wurde auf mehrere Module umgestaltet: <ph type="x-smartling-placeholder">- </ph>
- Modul
ActivityEmbeddingController
fürActivity
- oderActivityStack
-bezogene APIs. isActivityEmbedded
wurde vonSplitController
nachActivityEmbeddingController
verschoben.- Modul
RuleController
fürEmbeddingRule
-bezogene Vorgänge: SplitController
APIs wurden entfernt: <ph type="x-smartling-placeholder">- </ph>
clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- Hinzugefügte
RuleController
APIs: <ph type="x-smartling-placeholder">- </ph>
addRule()
: Fügt eine Regel hinzu oder aktualisiert die Regel mit demselben Tag.removeRule()
: Entfernt eine Regel aus der Sammlung registrierter Regeln.setRules()
: Es wird eine Sammlung von Regeln erstellt.clearRules()
: Entfernt alle registrierten Regeln.- `parseRules() – parst Regeln aus XML-Regeldefinitionen.
- Modul
- Alle Module erfordern, dass ein Kontext durch die Methode
#getInstance()
initialisiert wird. Dazu gehören: <ph type="x-smartling-placeholder">- </ph>
ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- Die
EmbeddingAspectRatio
-Klasse wurde hinzugefügt, um Verhaltenskonstanten im Zusammenhang mit Enum-ähnlichen Werten in Bezug auf das Seitenverhältnis von Displayanzeigen zu definieren. - Die Klasse
SplitAttributes
wurde hinzugefügt, um das geteilte Layout zu definieren. SplitController
wurden Rechnerfunktionen fürSplitAttributes
zum Anpassen von unterteilten Layouts hinzugefügt: <ph type="x-smartling-placeholder">- </ph>
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-Aktualisierungen in
SplitRule
: <ph type="x-smartling-placeholder">- </ph>
defaultSplitAttributes
hinzugefügt: Definiert das standardmäßige geteilte Layout einer Teilung. ersetztsplitRatio
undlayoutDirection
.- Die Übersetzung der XML-Eigenschaften
splitRatio
undsplitLayoutDirection
wurde zudefaultSplitAttributes
hinzugefügt. - Die Definitionen der Mindestabmessungen wurden so geändert, dass dichteunabhängige Pixel (dp) anstelle von Pixeln verwendet werden.
minHeightDp
mit Standardwert von 600 dp hinzugefügt.- „
minWidth
“ wurde zu „minWidthDp
“ mit dem Standardwert von 600 dp geändert. - „
minSmallestWidth
“ wurde zu „minSmallestWidthDp
“ mit dem Standardwert von 600 dp geändert. maxAspectRatioInHorizontal
mit StandardwertALWAYS_ALLOW
hinzugefügt.maxAspectRatioInPortrait
mit Standardwert1.4
hinzugefügt.- Es wurde eine verschachtelte Klasse vom Typ
FinishBehavior
definiert, um Konstanten des Abschlussverhaltens zu ersetzen. - Die Attributänderungen wurden auf die verschachtelte Klasse
Builder
vonSplitPairRule
undSplitPlaceholderRule
angewendet.
SplitInfo#getSplitRatio()
wurde durchSplitInfo#getSplitAttributes()
ersetzt, um zusätzliche Informationen zur Aufteilung bereitzustellen.
Fensterlayout
- Unterstützung für UI-Kontext ohne Aktivität zu
WindowInfoTracker
hinzugefügt. WindowMetricsCalculator
wurde der UI-Kontext ohne Aktivität hinzugefügt.
Migrationsschritte
- Damit die Einbettung von Aktivitäten Aktivitäten in Aufteilungen darstellen kann, müssen Apps das Attribut
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
dem Manifest-<application>
-Tag hinzufügen:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
So kann das System das Aufteilungsverhalten für eine Anwendung im Voraus optimieren. SplitInfo
-Seitenverhältnis <ph type="x-smartling-placeholder">- </ph>
- Prüfen Sie, ob die aktuelle Aufteilung 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üfen Sie, ob die aktuelle Aufteilung gestapelt ist:
SplitController
Migrationen: <ph type="x-smartling-placeholder">- </ph>
SplitController.getInstance()
ändert sich zuSplitController.getInstance(Context)
.SplitController.initialize(Context, @ResId int)
Änderungen anRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
.SplitController.getInstance().isActivityEmbedded(Activity)
ändert sich zuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
.SplitController.getInstance().registerRule(rule)
ändert sich zuRuleController.getInstance(Context).addRule(rule)
.SplitController.getInstance().unregisterRule(rule)
ändert sich zuRuleController.getInstance(Context).removeRule(rule)
.SplitController.getInstance().clearRegisteredRules()
ändert sich zuRuleController.getInstance(Context).clearRules()
.SplitController.getInstance().getSplitRules()
ändert sich zuRuleController.getInstance(Context).getRules()
.
SplitRule
Property-Migrationen: <ph type="x-smartling-placeholder">- </ph>
minWidth
undminSmallestWidth
verwenden jetzt dp-Einheiten anstelle von Pixeln. Apps können den folgenden Aufruf verwenden:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
oder teilen SieminWith
in Pixel einfach durchdisplayMetrics#density
.
- Konstanten für das Beenden-Verhalten müssen zu
FinishBehavior
-Klassenkonstanten migriert werden, die Enum-ähnlichen sind: <ph type="x-smartling-placeholder">- </ph>
FINISH_NEVER
ändert sich zuFinishBehavior.NEVER
.FINISH_ALWAYS
ändert sich zuFinishBehavior.ALWAYS
.FINISH_ADJACENT
ändert sich zuFinishBehavior.ADJACENT
.
- Layoutrichtung muss zu
SplitAttributes.LayoutDirection
migriert werden: <ph type="x-smartling-placeholder">- </ph>
ltr
ändert sich zuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
ändert sich zuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
ändert sich zuSplitAttributes.LayoutDirection.LOCALE
.splitRatio
muss zuSplitAttributes.SplitType.ratio(splitRatio)
migriert werden.
SplitPairRule.Builder
Migrationen: <ph type="x-smartling-placeholder">- </ph>
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
Änderungen ankotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern zukotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
undsetFinishSecondaryWithPrimary
haben die enum-ähnlichen KonstantenFinishBehavior
. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.- Mit
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
kannst du dir Aufteilungen auf Geräten im Hochformat anzeigen lassen.
SplitPlaceholder.Builder
Migrationen: <ph type="x-smartling-placeholder">- </ph>
- Hat nur die Parameter
filters
undplaceholderIntent
. Andere Properties werden in Setter verschoben. Weitere Informationen finden Sie unter „SplitPairRule.Builder Migrationen“. setFinishPrimaryWithPlaceholder
verwendet dieFinishBehavior
-enum-ähnlichen Konstanten. Weitere Informationen finden Sie unter „SplitRule-Migrationen“.setLayoutDirection(layoutDirection)
undsetSplitRatio(ratio)
ändern sich zu:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- Mit
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
kannst du dir Aufteilungen auf Geräten im Hochformat anzeigen lassen.
- Hat nur die Parameter
Version 1.1.0-alpha06
22. Februar 2023
androidx.window:window-*:1.1.0-alpha06
wurde veröffentlicht. Version 1.1.0-alpha06 enthält diese Commits.
Neue Funktionen
- Geben Sie die experimentelle Version des Abrufens von
WindowLayoutInfo
aus einem UI-Kontext frei.
API-Änderungen
- Füge
splitSupportStatus
hinzu, um anzugeben, ob das Einbetten von Aktivitäten verfügbar ist. (I10024) - Die UI Context
WindowLayoutInfo
API als experimentell festlegen. (I58ee0) - Stellt die
WindowAreaController
und APIs vor, um denRearDisplay
-Modus zu aktivieren, um das aktuelle Fenster auf den Bildschirm zu verschieben, der mit der Rückkamera ausgerichtet ist. (Iffcbf) - Aktualisieren Sie die Standardhintergrundfarbe. (I1ac1b)
- Fügen Sie
SplitAttributes
-Parameter hinzu. (I18bdd) - Fügen Sie APIs für
SplitRule
,SplitAttributes
undSplitAttributesCalculator
hinzu. (I92d23) - Verbessere die APIs für
maxAspectRatio
: <ph type="x-smartling-placeholder">- </ph>
- Ersetzen Sie
alwaysAllow()
undalwaysDisallow()
durchALWAYS_ALLOW
undALWAYS_DISALLOW
. - API-Dokumentation von @see mit eigenständiger Dokumentation aktualisieren. (I3057b)
- Ersetzen Sie
- Die folgenden Konstruktoren werden aus öffentlichen APIs entfernt, da sie nicht von Apps aufgerufen werden sollen.
SplitInfo
-KonstruktorActivityStack
-Konstruktor (Ide534)
SplitRule
braucht jetztmaxAspectRatioInPortrait/Landscape
. Aktivitäten können nur dann aufgeteilt werden, wenn das Seitenverhältnis der übergeordneten Grenzen kleiner oder gleich dem angefordertenmaxAspectRatio
ist. (Ia5990)RuleController#parseRules
in statisch ändern (I785df)- APIs zu ActivityEmbedding verbessern
<ph type="x-smartling-placeholder">
- </ph>
- API-Benennung ausrichten – Hinzufügen/Entfernen für mehrere Instanzen verwenden:
registerRule
Änderungen amaddRule
unregisterRule
Änderungen amremoveRule
- Ersetzen Sie
getSplitRules
durchgetRules
, daActivityRule
keine Aufteilungsregel ist RuleController#setRules
hinzufügen, um mehrere Regeln festzulegen- Extrahiert regelbezogene APIs aus
SplitController
in Singleton-RuleController
. Die regionalen Gewinner sind: addRule
removeRule
getRules
setRules
clearRules
parseRules
- Extrahieren Sie
#isActivityEmbedded
ausSplitController
in SingletonActivityEmbeddingController
. Die regionalen Gewinner sind: isActivityEmbedded
SplitController#initialize
entfernen. Verwende zum Festlegen von Regeln aus einer XML-DateiRuleController#parseRules
und#setRules
. Vor dieser Änderung:SplitController.initialize(context, R.xml.static_rules)
Nach dieser Änderung gilt Folgendes:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- Statische Regeln werden nicht mehr von Laufzeitregeln unterschieden. Allerdings werden
#clearRules
-Ergebnisse aufgerufen, um alle Regeln zu löschen, unabhängig davon, ob sie mit statischen XML-Regeldefinitionen oder während der Laufzeit registriert sind. Wenn Sie das alte Verhalten vonSplitController#clearRegisteredRules
übernehmen möchten, rufen SieRuleController#parseRules
mit der XML-Ressourcen-ID undRuleController#setRules
auf, um die Regeln wieder zurückzusetzen. Vor dieser Änderung:SplitController.getInstance(context).clearRegisteredRules()
Nach dieser Änderung gilt Folgendes:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- SplitRule APIs verbessern:
<ph type="x-smartling-placeholder">
- </ph>
- Nehmen Sie für
SplitRule
Mindestabmessungen in DP anstelle von Pixeln an. - Refaktorieren Sie den
SplitRule
Builder so, dass Mindestabmessungen als optional angegeben werden. (I95f17)
- Nehmen Sie für
- Kontext übergeben, um
SplitController
zu initialisieren (I42549) SplitRule#layoutDir
wurde in#layoutDirection
undSplitRule Builder#setLayoutDir
inBuilder#setLayoutDirection
umbenannt. (I3f6d1)
Version 1.1.0-alpha04
9. November 2022
androidx.window:window-*:1.1.0-alpha04
wurde veröffentlicht. Version 1.1.0-alpha04 enthält diese Commits.
Neue Funktionen
- Stellen Sie eine Methode bereit, um festzustellen, ob ein
ActivityStack
fürActivityEmbedding
leer ist. - Experimentelle API-Tags wurden aus
ActivityEmbedding
APIs entfernt. - Blenden Sie den
ActivityRule
-Konstruktor aus, daBuilder
die bevorzugte Methode zum Erstellen ist. - Fügen Sie eine experimentelle Methode hinzu, um
WindowInsets
fürWindowMetrics
abzurufen. - Aktualisiere
SplitPlaceholderFinishBehavior
, damit der Platzhalter nicht fertiggestellt wird. Das Fertigstellen des Platzhalters hat zu einem verwirrenden Verhalten geführt.
API-Änderungen
- Mach
isEmpty
öffentlich, um den SpaßisEmpty
zu ersetzen. - Benennen Sie die Aktivitäten des Parameters
ActivityStack
inactivitiesInProcess
um. (Ia5055) - Entferne
ActivityFilter#matchesClassName
undActivityFilter#matchesClassNameOrWildCard
, da sie verwirrend sind. - Fügen Sie
ActivityFilter#componentName
undActivityFilter#intentAction
hinzu, damit der Aufrufer zwischen verschiedenen Filtern unterscheiden kann (I41f22) - Entfernen Sie die
@Deprecated
-APIs aus der experimentellen API (I216b3) @ExperimentalWindowApi
für APIs zum Einbetten von Aktivitäten (I69ebe) entfernen- Blenden Sie den
ActivityRule
-Konstruktor aus und verwenden Sie stattdessen den Builder. (If4eb6) - Fügen Sie APIs hinzu, um zu prüfen, ob eine Aktivität Teil des
ActivityFilter
ist. (Ia43cf) - API-Dateien aktualisieren, um Änderungen an den Klassen
WindowMetrics
undWindowMetricsCalculatorCompat
widerzuspiegeln (I667fe) ActivityEmbedding
-Property-Javadoc und Klassennamen aktualisieren (Ia1386)- Hinzufügen von Attribut-Tag-Namen für
ActivityEmbedding
zur Verwendung in AndroidManifest.xml (Id1ad4) - Neue API-
SplitPlaceholderFinishBehavior
undSplitPlaceholderRule.finishPrimaryWithPlaceholder
wurden hinzugefügt. Diese ersetzen die vorhandeneSplitPlaceholderRule.finishPrimaryWithSecondary
, die definiert, wann Platzhalteraktivitäten abgeschlossen werden und wie sich verknüpfte Aktivitäten in der Aktivitätseinbettung verhalten sollen. (I64647)
Fehlerkorrekturen
- Stellt die
WindowAreaController
und APIs vor, um denRearDisplay
-Modus zu aktivieren, um das aktuelle Fenster auf den Bildschirm zu verschieben, der mit der Rückkamera ausgerichtet ist. (I388ab)
Version 1.1.0-alpha03
27. Juli 2022
androidx.window:window-*:1.1.0-alpha03
wurde veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.
Neue Funktionen
- Aktualisieren Sie die Standardwerte für Einbettungsregeln.
API-Änderungen
- Aktualisieren Sie die Standardwerte für die Eigenschaften von Einbettungsregeln. (IC4d35)
Version 1.1.0-alpha02
11. Mai 2022
androidx.window:window-*:1.1.0-alpha02
wurde veröffentlicht. Version 1.1.0-alpha02 enthält diese Commits.
Neue Funktionen
- Geben Sie die Adapterbibliotheken frei, damit sie Java und RxJava unterstützen.
Version 1.1.0-alpha01
11. Mai 2022
androidx.window:window-*:1.1.0-alpha01
wurde veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Releaseadapter zur Unterstützung von Java und RxJava
Version 1.1.0-alpha01
20. April 2022
androidx.window:window:1.1.0-alpha01
wurde veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.
Neue Funktionen
- Es wurde ein Fehler behoben, bei dem im Hintergrund einer App keine Fold-Funktionen mehr ausgegeben werden.
- Erweitern Sie die experimentelle ActivityEmbedding API.
API-Änderungen
- Eine öffentliche API, um zu prüfen, ob eine Aktivität eingebettet wird. (I39eb7)
Fehlerkorrekturen
- APIs hinzufügen, die das Endverhalten für Container in Aktivitätsaufteilungen anpassen (I1a1e4)
- Eine neue Konfigurationsoption für Regeln zur Aktivitätsaufteilung wurde hinzugefügt. (Iec6af)
Version 1.0
Version 1.0.0
26. Januar 2022
androidx.window:window-*:1.0.0
wurde veröffentlicht. Version 1.0.0 enthält diese Commits.
Hauptfunktionen von Version 1.0.0
- Unterstützung für faltbare Smartphones über
WindowInfoTracker
undFoldingFeature
.WindowMetricsCalculator
, um den aktuellen WindowMetrics zu berechnen.
Version 1.0.0-rc01
15. Dezember 2021
androidx.window:window-*:1.0.0-rc01
wurde veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.
Neue Funktionen
- Faltbare Smartphones können bis zum
WindowInfoTracker
unterstützt werden. - Fügen Sie Methoden hinzu, um den aktuellen und maximalen
WindowMetrics
zu berechnen. - Unterstützende Test-APIs hinzufügen
Version 1.0.0-beta04
17. November 2021
androidx.window:window-*:1.0.0-beta04
wurde veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.
Neue Funktionen
- Benennen Sie WindowInfoRepository in WindowInfoTracker um.
- Machen Sie Activity zu einer expliziten Methodenabhängigkeit für WindowInfoTracker.
- Fügen Sie eine einfache TestRule für WindowMetricsCalculator hinzu, um Entwickler zu unterstützen, die Robolectric verwenden.
API-Änderungen
- Erweiterungen extrahieren (I25a5f)
- add isEmpty im ActivityStack (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
wurde veröffentlicht. Version 1.0.0-beta03 enthält diese Commits.
Neue Funktionen
- Experimentelle APIs zum Einbetten von Aktivitäten hinzufügen Diese anfängliche Layoutversion ermöglicht die Anzeige von zwei Aktivitäten nebeneinander.
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 Benutzeroberfläche für eine neue Funktion hinzugefügt, mit der Aktivitäten einzubetten und im übergeordneten Element Aufgabenfensters. (I5711d)
- Die Konstruktoren für WindowMetrics und WindowLayoutInfo sind ausgeblendet. Verwenden Sie stattdessen die Test-APIs. (I5a1b5)
- Fügen Sie eine API hinzu, um gefälschte WindowLayoutInfo-Objekte zu erstellen. (I4a2fd)
Fehlerkorrekturen
- Ein Speicherleck wurde behoben. (I3fc79, b/202989046)
Version 1.0.0-beta02
1. September 2021
androidx.window:window-*:1.0.0-beta02
wurde veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.
Neue Funktionen
- Fügen Sie eine experimentelle Annotation hinzu, um experimentelle APIs mit Annotationen zu versehen. (I9f1b6)
- Füge eine Testmethode hinzu, um eine „FoldingFeature“ zum Testen zu erstellen, die eine Rechteck-Funktion akzeptiert. Auf diese Weise können Sie ganz einfach Tests durchführen, wenn Sie Robolectric verwenden – im Gegensatz zu einer tatsächlichen Aktivität. (Id1cca)
Version 1.0.0-beta01
18. August 2021
androidx.window:window-*:1.0.0-beta01
wurde veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.
Neue Funktionen
- Alte Konstanten wurden entfernt und
FoldingFeature
in eine Benutzeroberfläche umgewandelt.
API-Änderungen
- Alte Konstanten entfernen und FoldFeature zu einer Oberfläche machen (I9a2d5)
Fehlerkorrekturen
- Bibliotheken, die von der
Test Core
-Bibliothek abhängen, wurden wurde auf Version1.4.0
aktualisiert und funktioniert jetzt mit der Android-Plattform Version S (I88b72, b/189353863)
Version 1.0.0-alpha10
4. August 2021
androidx.window:window-*:1.0.0-alpha10
wurde 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.
- Konvertieren Sie aktuelle Fenstermesswerte in WindowInfoRepository in einen Ablauf, da sich der Wert im Laufe der Zeit ändert.
- WindowInfoRepoJavaAdapter in WindowInfoRepoCallbackAdapter umbenennen
- Hilfsmethode zum Erstellen von FoldingFeature-Testobjekten hinzufügen
- Aktualisieren Sie Pakete, um Klassen anhand der von ihnen unterstützten Funktion zu gruppieren.
API-Änderungen
- ActivityExt in ActivityExtensions umbenennen Von Repository zu Repository wechseln. (I61a16)
- Pakete für Klassen aktualisieren. (I23ae2)
- WindowMetrics aus WindowInfoRepo entfernen (I24663)
- WindowManager entfernen und WindowInfoRepo verwenden
<ph type="x-smartling-placeholder">
- </ph>
- WindowBackend intern machen. (I06d9a)
- Fenstermesswerte in Flow konvertieren.
- Java-Adapter in WindowInfoRepoCallbackAdapter umbenennen
- Entferne "callbackFlow", damit keine experimentellen APIs mehr verwendet werden. (Ia4d15)
- Hinzufügen einer Hilfsmethode zum Erstellen von Test-Displayfunktionen.
- Von occlusionMode zu occlusionType ändern (If4cff)
Fehlerkorrekturen
- Proguard-Fehler behoben, bei dem die Kernbibliothek entfernt wurde.
- Fehler behoben, bei dem WindowLayoutInfo nicht an zusätzliche Abonnenten ausgeliefert wurde.
- Fehler behoben, bei dem Konfigurationsänderungen keine Updates für Folding-Features auslösten.
Version 1.0.0-alpha09
30. Juni 2021
androidx.window:window-*:1.0.0-alpha09
wurde veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.
Neue Funktionen
- Ändern von ganzzahligen Konstanten in unbegrenzte Enums.
- Füge ein Test-Dienstprogramm hinzu, um Test-Faltfunktionen zu erstellen.
API-Änderungen
- Hinzufügen einer Hilfsmethode zum Erstellen von Test-Displayfunktionen. (I3cf54)
<ph type="x-smartling-placeholder">
- </ph>
- Von
occlusionMode
inocclusionType
ändern.
- Von
Fehlerkorrekturen
- Gibt einen 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
wurde veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.
Neue Funktionen
- Veröffentlichung eines Testartefakts, um das Testen bei Verwendung von WindowInfoRepository zu vereinfachen. 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
wurde veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.
Neue Funktionen
- Migrieren Sie die Hauptfensterbibliothek zu Kotlin. Verwendet Koroutinen und Aussetzungsfunktionen, um in Zukunft asynchrone Daten bereitzustellen.
- Fügen Sie WindowInfoRepo als Hauptinteraktionspunkt zum Abrufen von WindowMetrics und dem Stream von WindowLayoutInfo hinzu.
- Neues
window-java
-Artefakt zur Bereitstellung von Java-freundlichen APIs, um Callbacks zu registrieren und ihre Registrierung aufzuheben. - Neue
window-rxjava2
- undwindow-rxjava3
-Artefakte, um angepasste RxJava-APIs verfügbar zu machen.
API-Änderungen
- Fügen Sie
WindowServices
hinzu, um Abhängigkeiten einheitlich bereitzustellen.- Fügen Sie eine koroutinebasierte API hinzu, um Informationen zum Fensterlayout zu verarbeiten. (Iab70f)
- Migrieren Sie die Hauptbibliothek des Fenstermanagers zu Kotlin. (Icca34)
Fehlerkorrekturen
- Fügen Sie eine neue Datenklasse hinzu, um Featuregrenzen darzustellen. (I6dcd1)
Version 1.0.0-alpha06
5. Mai 2021
androidx.window:window:1.0.0-alpha06
wurde veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
Neue Funktionen
- Wir haben mit der Migration zu Kotlin begonnen und werden im nächsten Release abgeschlossen.
- DeviceState wurde aus der öffentlichen API entfernt. Verwenden Sie stattdessen „FoldingFeature“.
- Wir haben
STATE_FLIPPED
aus dem Status „FoldingFeature“ entfernt, da diese Funktion derzeit für keinen Anwendungsfall unterstützt wird. - Wir haben auch andere eingestellte APIs entfernt.
API-Änderungen
- Kotlin als Abhängigkeit hinzufügen
- Migrieren Sie die Kernbibliothek zu Kotlin. (Idd995)
- Builder für
DisplayFeature
wurde entfernt. (I61fa4) DeviceState
wurde aus der öffentlichen API entfernt. Verwende stattdessenFoldingFeature
. (ID6079)- Gerätestatus-Callback aus Erweiterungen entfernen. (I5ea83)
- „
STATE_FLIPPED
“ aus „FoldingFeature“ entfernen. (I9c4e1) - Entfernen Sie eingestellte Registrierungsmethoden. (Ib381b)
Version 1.0.0-alpha05
24. März 2021
androidx.window:window:1.0.0-alpha05
wurde 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 die Funktion sich öffnet oder verdeckt und die Ausrichtung des Scharniers bestimmt. Außerdem wird der Scharniertyp ausgeblendet,
Die synchronen Lesemethoden werden aus WindowManager entfernt. Synchrone Lesemethoden sind fehleranfällig, da eine implizite Race-Bedingung vorhanden ist. Registrieren Sie Listener und Rückrufe, um Updates zu WindowLayoutInfo zu erhalten.
API-Änderungen
- Praktische Methoden für die Arbeit mit „FoldingFeatures“ hinzufügen (Ie733f)
- Entfernt synchrone Lesemethoden aus WindowManager (I96fd4)
Version 1.0.0-alpha04
10. März 2021
androidx.window:window:1.0.0-alpha04
wurde veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
Neue Funktionen
- Behebt einen Fehler, bei dem keine WindowLayoutInfo ausgegeben wird, wenn keine OEM-Implementierung vorhanden ist. Jetzt geben wir ein leeres WIndowLayoutInfo-Element aus.
- Es wurde ein Fehler behoben, bei dem der Status nicht korrekt aktualisiert wurde, wenn sich der Zustand des Scharniers änderte, während die App im Hintergrund ausgeführt wurde. Jetzt sollte der Zustand einheitlich sein.
- Aktualisieren Sie unsere Proguard-Dateien, um Warnungen aufgrund von Laufzeitabhängigkeiten zu ignorieren.
Fehlerkorrekturen
- Geben Sie 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
wurde 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. Dies sollte es einfacher machen, die Mediathek auf weiteren Geräten zu verwenden. Da die APIs asynchron sind, wird weiterhin empfohlen, dass Anwendungen Abwehrcode schreiben und nach einer Zeitüberschreitung einen Standardwert ausgeben. Wir übernehmen keine Garantien für OEM-Implementierungen und der ursprüngliche Wert kann sich verzögern.
Fehlerkorrekturen
- Geben Sie 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
wurde 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 nennenswerte Beispiele sind das Entfernen der synchronen Lesevorgänge aus WindowManager und die Einstellung von DeviceState. Synchrone Lesevorgänge können zu Race-Bedingungen führen und haben eine falsche Benutzeroberfläche.
Wir haben DisplayFeature in eine Benutzeroberfläche umgewandelt, die in Zukunft von anderen Funktionen implementiert wird. Unsere erste Funktion ist „FoldingFeature“, also die Darstellung einer Displayfaltung oder eines Scharniers. Hier ist auch der Status des Scharniers enthalten, der DeviceState ersetzt.
WindowMetrics wurde in Android 11 eingeführt, um Entwicklern eine einfache Möglichkeit zu bieten, Messwerte zu einem Fenster abzufragen, z. B. seine Position und Größe auf dem Bildschirm und Systemeinblendungen. Wir haben die API in dieser Version zurückportiert, damit Entwickler WindowMetrics nutzen und weiterhin ältere Android-Versionen unterstützen können. WindowMetrics können über die
WindowManager#getCurrentWindowMetrics()
und die WindowManager#getMaximumWindowMetrics() API abgerufen werden.
API-Änderungen
- APIs einstellen, die in der nächsten Alphaversion entfernt werden (Ib7cc4)
ExtensionInterface
wird so aktualisiert, dass explizite Aktivitäten akzeptiert werden Referenzen. (I07ded)- Einführung in die WindowMetrics API. (I3ccee)
- Synchrone Lesemethoden aus WindowManager entfernen (I69983)
- ExtensionWindowBackend-Paket schützen. (ID 208)
Fehlerkorrekturen
- Aktualisieren Sie die
ExtensionInterface
APIs, um visuelle Kontexte zu akzeptieren. (I8e827)
Externer Beitrag
- Zusammenführen von DeviceState und WindowLayoutInfo, damit es einfacher ist, auf Daten zugreifen können. (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
veröffentlicht werden. Version 1.0.0-alpha01 enthält diese Commits.
Dies ist die erste Version der Fenstermanagerbibliothek.
Neue Funktionen
DisplayFeature
: Diese neue API erkennt Störungen in der kontinuierlichen flachen Nutzung Bildschirmoberflächen wie Scharniere oder FaltenDeviceState
: Diese neue API liefert den aktuellen Stand des Smartphones vom eine Liste definierter Sicherheitsstatus (z. B.CLOSED
,OPENED
,HALF_OPENED
, usw.)