Text verfassen

Erstellen Sie Jetpack Compose-Benutzeroberflächen mit einsatzbereiten Material Design-Komponenten. Das ist der übergeordnete Einstiegspunkt von Compose. Hier stellen wir Komponenten bereit, die den unter www.material.io beschriebenen entsprechen.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
3. April 2024 1.6.5 - - 1.7.0-alpha06

Struktur

Compose ist eine Kombination aus sieben Maven-Gruppen-IDs in androidx. Jede Gruppe enthält eine ausgewählte Teilmenge von Funktionen mit jeweils eigenen Versionshinweisen.

In dieser Tabelle werden die Gruppen und Links zu den einzelnen Versionshinweisen erläutert.

GruppeBeschreibung
compose.animationAnimationen in den Jetpack Compose-Anwendungen erstellen, um die Nutzererfahrung zu verbessern.
compose.compiler@Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren
compose.foundationSchreiben Sie Jetpack Compose-Anwendungen mit einsatzbereiten Bausteinen und erweitern Sie die Grundlage, um Ihre eigenen Designsystemteile zu erstellen.
compose.materialErstellen Sie Jetpack Compose-Benutzeroberflächen mit einsatzbereiten Material Design-Komponenten. Das ist der übergeordnete Einstiegspunkt von Compose. Hier stellen wir Komponenten bereit, die den unter www.material.io beschriebenen entsprechen.
compose.material3Erstellen Sie Jetpack Compose-Benutzeroberflächen mit Material Design 3 Components, der nächsten Entwicklung des Material Design. Material 3 enthält aktualisierte Designs und Komponenten sowie Personalisierungsfunktionen wie dynamische Farben. Das Design ist an den visuellen Stil und die System-UI von Android 12 angepasst.
compose.runtimeGrundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie der Kernlaufzeit für das Targeting des Compiler-Plug-ins „Compose“.
compose.uiGrundlegende Komponenten der Editor-UI, die für die Interaktion mit dem Gerät erforderlich sind, einschließlich Layout, Zeichnung und Eingabe.

Abhängigkeiten deklarieren

Zum Hinzufügen einer Abhängigkeit von Compose 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 Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovig

dependencies {
    implementation "androidx.compose.material:material:1.6.5"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.6.5")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie 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 eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.7

Version 1.7.0-alpha06

3. April 2024

androidx.compose.material:material-*:1.7.0-alpha06 wird freigegeben. Version 1.7.0-alpha06 enthält diese Commits.

Mitteilung

  • androidx.compose.material erfordert nicht mehr die Verwendung derselben Version jedes Artefakts in dieser Maven-Gruppe. Nutzer können Versionen von Compose-Basisbibliotheken (Ie5fba) kombinieren und abgleichen.

API-Änderungen

  • Weitere ModalDrawer- und BottomDrawer-Standardwerte wurden in das DrawerDefaults-Objekt verschoben. (Ib5b2e)

Version 1.7.0-alpha05

20. März 2024

androidx.compose.material:material-*:1.7.0-alpha05 wird freigegeben. Version 1.7.0-alpha05 enthält diese Commits.

API-Änderungen

  • Das Flag ScaffoldSubcomposeInMeasureFix wurde entfernt. (I67363)

Version 1.7.0-alpha04

6. März 2024

androidx.compose.material:material-*:1.7.0-alpha04 wird freigegeben. Version 1.7.0-alpha04 enthält diese Commits.

Neue Funktionen

Version 1.7.0-alpha03

21. Februar 2024

androidx.compose.material:material-*:1.7.0-alpha03 wird freigegeben. Version 1.7.0-alpha03 enthält diese Commits.

API-Änderungen

  • BottomDrawer wurde von der experimentellen Version in die stabile Version hochgestuft. In BottomDrawerState wird der Fortschritt jetzt als Funktion angezeigt, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann. Mit BottomDrawerState kann jetzt die Animationsspezifikation angepasst werden und confirmStateChange ist keine nachgestellte Lambda-Funktion mehr. (I9c029, b/261423850)
  • BackdropScaffold wurde von der experimentellen Version in die stabile Version hochgestuft. Die Animationsspezifikation ist jetzt gemäß den Richtlinien eine tween-Spezifikation. Der snackbarHost-Parameter von BackdropScaffold ist nicht mehr der letzte Parameter, um eine Verwechslung mit nachgestellten Lambdas zu vermeiden. BackdropScaffoldState stellt eine progress(from, to)-API zur Abfrage des Fortschritts zwischen Ankern zur Verfügung. (I73f48, b/261423218)
  • Die unteren Standardtabellen wurden von „experimentell“ zu „stabile“ hochgestuft. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist nun eine Spezifikation für ältere Kinder entsprechend den Richtlinien. (I3c1a8, b/278692145, b/261409034)
  • Modale Blatt am unteren Rand wurden von „experimentell“ zu „stabile“ hochgestuft. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt gemäß den Richtlinien eine tween-Spezifikation. (Ic53f4, b/278692145, b/266780235, b/261409034)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem BackdropScaffold in bestimmten Szenarien in Kombination mit LookaheadScope abstürzen konnte. (I51396)
  • Die Unterzusammensetzung von BottomSheetScaffold wurde entfernt, um die Leistung zu verbessern. Es wurde ein Problem behoben, bei dem BottomSheetScaffold in bestimmten Szenarien in Kombination mit LookaheadScope abstürzte. (I2f90c)
  • Die Unterzusammensetzung innerhalb von ModalBottomSheetLayout wurde entfernt. Dadurch wurde die Leistung verbessert. (I7a025)

Version 1.7.0-alpha02

7. Februar 2024

androidx.compose.material:material-*:1.7.0-alpha02 wird freigegeben. Version 1.7.0-alpha02 enthält diese Commits.

Version 1.7.0-alpha01

24. Januar 2024

androidx.compose.material:material-*:1.7.0-alpha01 wird freigegeben. Version 1.7.0-alpha01 enthält diese Commits.

Änderungen des Verhaltens

  • Materialkomponenten wurden migriert, um die neuen Ripple APIs zu verwenden. RippleTheme werden nicht mehr abgefragt.

API-Änderungen

  • rememberRipple und RippleTheme wurden von Material-Ripple eingestellt. Es wurden neue Ripple- und RippleConfiguration-APIs zu Material und anderen Designsystembibliotheken hinzugefügt.

  • Materialkomponenten, für die bisher MutableInteractionSource akzeptiert und standardmäßig { MutableInteractionSource() } gespeichert wurden, akzeptieren jetzt eine MutableInteractionSource, für die Nullwerte zulässig sind, und die standardmäßig auf null gesetzt ist. Wenn Sie MutableInteractionSource nicht aufziehen und verwenden, sollten Sie null übergeben. Dadurch können einige Komponenten eine Instanz bei Bedarf verzögert erstellen, wodurch die Leistung verbessert wird. Es wird auch empfohlen, ähnliche Änderungen an Ihren eigenen Komponenten vorzunehmen.

Version 1.6

Version 1.6.5

3. April 2024

androidx.compose.material:material-*:1.6.5 wird freigegeben. Version 1.6.5 enthält diese Commits.

Version 1.6.4

20. März 2024

androidx.compose.material:material-*:1.6.4 wird freigegeben. Version 1.6.4 enthält diese Commits.

Version 1.6.3

6. März 2024

androidx.compose.material:material-*:1.6.3 wird freigegeben. Version 1.6.3 enthält diese Commits.

Fehlerkorrekturen

  • Korrigieren Sie die Regression in ExposedDropdownMenu, damit sie wieder fokussierbar wird. (c0e0ed, b/323694447)

Version 1.6.2

21. Februar 2024

androidx.compose.material:material-*:1.6.2 wird freigegeben. Version 1.6.2 enthält diese Commits.

Version 1.6.1

7. Februar 2024

androidx.compose.material:material-*:1.6.1 wird freigegeben. Version 1.6.1 enthält diese Commits.

Version 1.6.0

24. Januar 2024

androidx.compose.material:material-*:1.6.0 wird freigegeben. Version 1.6.0 enthält diese Commits.

Version 1.6.0-rc01

10. Januar 2024

androidx.compose.material:material-*:1.6.0-rc01 wird freigegeben. Version 1.6.0-rc01 enthält diese Commits.

Version 1.6.0-beta03

13. Dezember 2023

androidx.compose.material:material-*:1.6.0-beta03 wird freigegeben. Version 1.6.0-beta03 enthält diese Commits.

Version 1.6.0-beta02

29. November 2023

androidx.compose.material:material-*:1.6.0-beta02 wird freigegeben. Version 1.6.0-beta02 enthält diese Commits.

Version 1.6.0-beta01

15. November 2023

androidx.compose.material:material-*:1.6.0-beta01 wird freigegeben. Version 1.6.0-beta01 enthält diese Commits.

Version 1.6.0-alpha08

18. Oktober 2023

androidx.compose.material:material-*:1.6.0-alpha08 wird freigegeben. Version 1.6.0-alpha08 enthält diese Commits.

API-Änderungen

  • Verwerfen Sie eine materialIcon-Funktion zugunsten einer Überlastung, die einen autoMirror-Parameter annimmt. (Ia338d)

Fehlerkorrekturen – Die Höhe des Navigationselements wird bei großen Inhalten automatisch erhöht. (0c4ecc, b/272336962)

Version 1.6.0-alpha07

4. Oktober 2023

androidx.compose.material:material-*:1.6.0-alpha07 wird freigegeben. Version 1.6.0-alpha07 enthält diese Commits.

  • Aktualisierungen von Abhängigkeiten

Version 1.6.0-alpha06

20. September 2023

androidx.compose.material:material-*:1.6.0-alpha06 wird freigegeben. Version 1.6.0-alpha06 enthält diese Commits.

Verhaltensänderung

  • Leistenbezogene Funktionen aus BottomSheetScaffold entfernt. Wenn Sie BottomSheetScaffold in eine zusammensetzbare Funktion in einer Leiste zusammenfassen, können Sie die vorherigen Funktionen nutzen. Ein Beispiel findest du unter BottomSheetScaffoldWithDrawerSample. (I1dcc8)

API-Änderungen

  • Es wurde ein temporäres Flag eingeführt, mit dem gesteuert wird, ob Scaffold die untergeordneten Elemente während der Messung oder des Placements messen soll. Standardmäßig wird dies in Messungen erfasst. Falls es Probleme mit der neuen Funktionsweise gibt, melden Sie bitte ein entsprechendes Problem. (If6e3b)

Version 1.6.0-alpha05

6. September 2023

androidx.compose.material:material-*:1.6.0-alpha05 wird freigegeben. Version 1.6.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Automatisch gespiegelte Symbole werden unterstützt, wenn sie in linksläufigen Layouts gerendert werden. Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze zur Unterstützung der automatischen Spiegelung, wenn das Symbol dies zulässt. Den neuen Sätzen ist das Präfix Icons.AutoMirrored.Filled... usw. vorangestellt. Halte die Symbole gedrückt, die linksläufige Layouts automatisch spiegeln. In der Liste der Material-Symbole finden Sie eine Liste der Symbole, die automatisch gespiegelt werden können und sollten.

API-Änderungen

  • Automatisch gespiegelte Symbole werden unterstützt, wenn sie in linksläufigen Layouts gerendert werden. Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze zur Unterstützung der automatischen Spiegelung, wenn das Symbol dies zulässt. Den neuen Sätzen ist das Präfix Icons.AutoMirrored.Filled... usw. vorangestellt. Halte die Symbole gedrückt, die linksläufige Layouts automatisch spiegeln. In der Liste der Material-Symbole finden Sie eine Liste der Symbole, die automatisch gespiegelt werden können und sollten. Die zuvor bereitgestellten Symboleigenschaften für diese Symbole sind jetzt als veraltet markiert und bieten einen Vorschlag zum Ersetzen von Blockierungen, um die Migration zu vereinfachen. Falls Sie keine besondere Behandlung für das Spiegeln von Symbolen auf der linken Seite haben, empfehlen wir Ihnen, zum neuen Symbolsatz zu migrieren. Beispiel: Icons.Filled.ArrowBack sollte in Icons.AutoMirrored.Filled.ArrowBack refaktoriert werden. (I4b511)

Version 1.6.0-alpha04

23. August 2023

androidx.compose.material:material-*:1.6.0-alpha04 wird freigegeben. Version 1.6.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Einige Komponenten mit Subcomposition (z. B. BottomSheetScaffold) in einem Scaffold in einem LookaheadScope haben versucht, ihre Größe zu früh zu erkennen. Dieses Problem wurde behoben. (If2c5d)
  • Die offset-Berechnung von DropdownMenu wurde korrigiert, sodass die x-Offsets ausschließlich von der lokalen Layoutrichtung abhängen und die y-Offsets nicht mehr umgekehrt werden, wenn sich das Menü am unteren Bildschirmrand befindet. (Iccc74, b/294103942)
  • Das Layout von BottomSheetScaffold wurde optimiert und ein potenzielles Problem mit BottomSheetScaffold in einem LookaheadLayout wurde behoben. (Ic0afa)

Version 1.6.0-alpha03

9. August 2023

androidx.compose.material:material-*:1.6.0-alpha03 wird freigegeben. Version 1.6.0-alpha03 enthält diese Commits.

API-Änderungen

  • Material2-Komponenten haben jetzt eine separate API, um windowInsets zu übergeben und Edge-to-Edge-Funktionen unter Android zu unterstützen. Im Gegensatz zu Material3-Komponenten unterstützen die Material2-Komponenten standardmäßig keine Einfügungen. Der Wert muss manuell übergeben werden. Weitere Informationen finden Sie in den entsprechenden Beispielen. (I655e8)

Version 1.6.0-alpha02

26. Juli 2023

androidx.compose.material:material-*:1.6.0-alpha02 wird freigegeben. Version 1.6.0-alpha02 enthält diese Commits.

API-Änderungen

  • Wir verschieben die Dichteabhängigkeit auf die Komponentenebene. Dies gilt für die folgenden Komponenten: SwipeToDismiss und tabellenbasierte Komponenten. Verwenden Sie die neue Überlastung, bei der „Dichte“ ein Parameter ist. (I1846e)
  • Zusätzliche Annotationen zur Angabe zulässiger Eingaben für zusammensetzbare Funktionen (I51109)
  • Aktualisierte API-Dateien, um die Kompatibilitätsunterdrückung zu erklären (I8e87a, b/287516207)
  • Neue Startausrichtung für FabPosition hinzugefügt (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons wurde in Material 2 zugunsten von TextFieldColors eingestellt. Beim Überschreiben von leadingIconColor oder trailingIconColor, muss die Überlastung auch mit interactionSource überschrieben werden. (Id57ed, b/199377790)

Version 1.6.0-alpha01

21. Juni 2023

androidx.compose.material:material-*:1.6.0-alpha01 wird freigegeben. Version 1.6.0-alpha01 enthält diese Commits.

Änderungen des Verhaltens

  • includeFontPadding ist in der Material 2-Typografie jetzt standardmäßig false. Der Standardstil für die Zeilenhöhe wurde ebenfalls in Trim.None und Alignment.Center geändert und explizite lineHeight (in sp) wurden den TextStyles von Typography hinzugefügt. Wenn Sie diese Werte anpassen möchten, sehen Sie in der API-Dokumentation nach. Eine ausführliche Erläuterung dieser Änderungen finden Sie in diesem Blogpost. (Icabc3, I3f801, I04c03)

API-Änderungen

  • Die Swipeable APIs von Material wurden eingestellt. Weitere Informationen finden Sie in den AnchoredDraggable APIs der Foundation, die für einfache und komplexe Anwendungsfälle optimiert sind. (I732e0)

Fehlerkorrekturen

  • BottomSheetState, ModalBottomSheetState und BottomDrawerState stellen jetzt eine Fortschrittseigenschaft bereit, die den Fortschritt zwischen dem aktuellen (besetzten) Anker und dem nächstgelegenen Anker in Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Version 1.5

Version 1.5.4

18. Oktober 2023

androidx.compose.material:material-*:1.5.4 wird freigegeben. Version 1.5.4 enthält diese Commits.

Version 1.5.3

4. Oktober 2023

androidx.compose.material:material-*:1.5.3 wird freigegeben. Für diese Version wurden keine Änderungen vorgenommen

Version 1.5.2

27. September 2023

androidx.compose.material:material-*:1.5.2 wird freigegeben. Version 1.5.2 enthält diese Commits.

Version 1.5.1

6. September 2023

androidx.compose.material:material-*:1.5.1 wird ohne Änderungen veröffentlicht. Version 1.5.1 enthält diese Commits.

Version 1.5.0

9. August 2023

androidx.compose.material:material-*:1.5.0 wird freigegeben. Version 1.5.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.4.0

API-Änderungen

  • Es wurden Änderungen an den Swipeable1-APIs in BottomSheetScaffold vorgenommen. Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert bereitgestellt. animateTo und snapTo sind intern. Verwende stattdessen expand() und collapse(). direction und overflow wurden entfernt. „offset“ wurde durch „requireOffset()“ ersetzt. I323b4
  • Kennzeichne die Funktion snapTo in der Leiste als API ohne Experimente. (Ib9c18, b/261425368)
  • Es wurde ein Track-Farbparameter für kreisförmige Fortschrittsanzeigen und ein Strich-Cap-Parameter für sowohl kreisförmige als auch lineare Fortschrittsanzeigen hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • ModalBottomSheetState, ModalBottomSheetState.Saver und confirmStateChange von rememberModalBottomSheetState wurden in confirmValueChange umbenannt. (Ib48d1)
  • Modifier.minimumInteractiveComponentSize hinzufügen. Es kann verwendet werden, um eine Größe von mindestens 48 dp zu reservieren, um Touchinteraktionen zu unterscheiden, wenn das Element kleiner ist. (I33f58, b/258495559)
  • Es wurden Änderungen an den Swipe-APIs in ModalBottomSheetLayout vorgenommen. Für „animateTo“ von ModalBottomSheetState wird kein animationSpec-Parameter mehr verwendet und für den Offset-Wert sind jetzt Nullwerte zulässig. Verwenden Sie requireOffset, um den Offset anzufordern. (Ia2e79)
  • Anmerkung @JvmDefaultWithCompatibility hinzufügen (I8f206)
  • Änderungen in den Swipe-APIs in animateTo von ModalDrawer. DrawerState wurden durch die Methoden zum Öffnen und Schließen ersetzt und der Offset ist jetzt Nullwerte zulässig. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Schubladen und Tabellen wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Touch-Gesten zu Scroll-Ereignissen werden können.
  • Der Parameter minLines wurde in Material und Material3 Text, TextField und OutlinedTextField hinzugefügt, mit denen die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d).

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem pullRefresh die Geschwindigkeit nicht verbraucht hat, wodurch das Overscroll-Bild nicht sichtbar war. Außerdem wurde die API-Signatur der Lambda-Funktion onRelease in Modifier.pullRefresh geändert, um einen Gleitkommawert für die aufgenommene Geschwindigkeit zurückzugeben (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState und BottomDrawerState stellen jetzt eine Fortschrittseigenschaft bereit, die den Fortschritt zwischen dem aktuellen (besetzten) Anker und dem nächstgelegenen Anker in Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Die „Schließen“-Aktion „AlertDialog“ wurde korrigiert, die unter der Bestätigungsaktion angezeigt wurde, wenn die Aktionen übereinander gestapelt wurden, um in die Breite des Dialogfelds zu passen. Durch diese Korrektur wird die Implementierung an die Material Design-Spezifikationen angeglichen (I029de, b/235454277).
  • BottomSheetScaffold nimmt nicht mehr am verschachtelten Scrollen teil, wenn gesturesEnabled auf „false“ gesetzt ist. (I634f3, b/215403277)
  • Ein Fehler wurde behoben, bei dem BottomSheetScaffold abstürzte, wenn leerer Inhalt für Anzeigenflächen bereitgestellt wurde. (Ib24a5, b/235588730)
  • Es wurde ein Fehler behoben, der Klick- und Zeigerereignisse von PullRefreshIndicator abfängt. (2494256, b/271777421)
  • Es wurde ein Problem behoben, bei dem ModalBottomSheetLayout bei einer Ausrichtungsänderung in einem Grenzfall abstürzte. Layoutanimationen (z.B. Modifier.animateContentSize) im/auf dem Tabellenblatt funktionieren jetzt reibungslos. (I2f981, b/266780234)

Version 1.5.0-rc01

26. Juli 2023

androidx.compose.material:material-*:1.5.0-rc01 wird freigegeben. Version 1.5.0-rc01 enthält diese Commits.

Version 1.5.0-beta03

28. Juni 2023

androidx.compose.material:material-*:1.5.0-beta03 wird freigegeben. Version 1.5.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • BottomSheetState, ModalBottomSheetState und BottomDrawerState stellen jetzt eine Fortschrittseigenschaft bereit, die den Fortschritt zwischen dem aktuellen (besetzten) Anker und dem nächstgelegenen Anker in Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Version 1.5.0-beta02

7. Juni 2023

androidx.compose.material:material-*:1.5.0-beta02 wird freigegeben. Version 1.5.0-beta02 enthält diese Commits.

Version 1.5.0-beta01

24. Mai 2023

androidx.compose.material:material-*:1.5.0-beta01 wird freigegeben. Version 1.5.0-beta01 enthält diese Commits.

API-Änderungen

  • Die Offsets von DrawerState und BottomDrawerState sind nicht mehr als Nullwerte zulässig. Sie geben stattdessen Float.NaN zurück, um anzugeben, dass der Offset fehlt. (Ie9855)
  • Es wurde eine Option zum Übergeben eines ScrollState hinzugefügt, wenn ein DropdownMenu- oder ExposedDropdownMenu-Element erstellt wird, um den vertikalen Scroll-Status der angezeigten Menüelemente zu steuern. (Idb009, b/185304441)
  • Unterstützung zum Aktivieren/Deaktivieren der Geste von ModalBottomSheetLayout hinzufügen, damit Nutzer dies für weitere empfohlene Bottomsheet-Anfragen konfigurieren können (I40af0)
  • BasicText wurde ein Farbparameter hinzugefügt, um die Textfarbe effizient zu animieren oder festzulegen. (Iffd88, b/246961787)
  • isContainer-Eigenschaft der Semantik wird in isTraversalGroup (I121f6) umbenannt

Fehlerkorrekturen

  • Die „Schließen“-Aktion „AlertDialog“ wurde korrigiert, die unter der Bestätigungsaktion angezeigt wurde, wenn die Aktionen übereinander gestapelt wurden, um in die Breite des Dialogfelds zu passen. Durch diese Korrektur wird die Implementierung an die Material Design-Spezifikationen (I029de, b/235454277) angepasst.

Version 1.5.0-alpha04

10. Mai 2023

androidx.compose.material:material-*:1.5.0-alpha04 wird freigegeben. Version 1.5.0-alpha04 enthält diese Commits.

API-Änderungen

  • Wir verschieben die Dichteabhängigkeit auf die Komponentenebene. Dies gilt für die folgenden Komponenten: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Verwenden Sie die neue Überlastung, bei der „Dichte“ ein Parameter ist. (I8fbd8)

Version 1.5.0-alpha03

19. April 2023

androidx.compose.material:material-*:1.5.0-alpha03 wird freigegeben. Version 1.5.0-alpha03 enthält diese Commits.

API-Änderungen

  • Aktualisieren Sie BottomDrawer-Interna, um die neuen SwipeableV2 APIs zu verwenden. Aus diesem Grund sind für BottomDrawerState jetzt nur noch APIS auf Klassenebene definiert. Es werden keine Methoden/Eigenschaften von SwipeableState übernommen. Wir verwenden die Komposition mit einem internen SwipeableV2State. „Offset“ ist jetzt eine Gleitkommaeigenschaft, für die Nullwerte zulässig sind. Der aktuelle Wert und ein Wischzielwert können weiterhin über die Eigenschaften currentValue und targetValue aufgerufen werden. Die vorherigen Methoden auf Klassenebene wie „open/expand/close“ und Eigenschaften wie isOpen/isClosed werden weiterhin unterstützt. (Iad40c, b/178529942, b/220676296)

Fehlerkorrekturen

  • Die Interna der Switch-Komponente wurde aktualisiert. Beim Ziehen wird jetzt eine Vorschau des nächstgelegenen Zielstatus angezeigt. (Id90d4)
  • Animierter Inhalt von Tabellenblättern (z.B. Modifier.animateContentSize auf Tabellenblattinhalt) in BottomSheetScaffold wurde optimiert und funktioniert jetzt reibungslos. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold nimmt nicht mehr am verschachtelten Scrollen teil, wenn gesturesEnabled auf false gesetzt ist. (I634f3, b/215403277)

Version 1.5.0-alpha02

5. April 2023

androidx.compose.material:material-*:1.5.0-alpha02 wird freigegeben. Version 1.5.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem BottomSheetScaffold abstürzte, wenn leerer Inhalt für Anzeigenflächen bereitgestellt wurde. (Ib24a5, b/235588730)
  • Fehlerkorrektur von PullRefreshIndicator, die Klicks und Zeigerereignisse abfangen (2494256, b/271777421)

Version 1.5.0-alpha01

22. März 2023

androidx.compose.material:material-*:1.5.0-alpha01 wird freigegeben. Version 1.5.0-alpha01 enthält diese Commits.

Fehlerkorrekturen

  • Fügen Sie ein Reflow-Beispiel für eine Chipgruppe hinzu. Aktualisieren Sie den horizontalen Abstand zwischen den untergeordneten Chips im Beispiel für die Chipgruppe mit einer Zeile entsprechend der Spezifikation (I3b155).
  • Es wurde ein Problem behoben, bei dem ModalBottomSheetLayout bei einer Ausrichtungsänderung in einem Grenzfall abstürzte. Layoutanimationen (z.B. Modifier.animateContentSize) im/auf dem Tabellenblatt funktionieren jetzt reibungslos. (I2f981, b/266780234)

Version 1.4

Version 1.4.3

3. Mai 2023

androidx.compose.material:material-*:1.4.3 wird ohne Änderungen (nur ein Versions-Bump) veröffentlicht.

Version 1.4.2

19. April 2023

androidx.compose.material:material-*:1.4.2 wird freigegeben. Version 1.4.2 enthält diese Commits.

Version 1.4.1

5. April 2023

androidx.compose.material:material-*:1.4.1 wird freigegeben. Version 1.4.1 enthält diese Commits.

Version 1.4.0

22. März 2023

androidx.compose.material:material-*:1.4.0 wird freigegeben. Version 1.4.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.3.0

API-Änderungen

  • Modifier.minimumInteractiveComponentSize hinzufügen. Es kann verwendet werden, um eine Größe von mindestens 48 dp zu reservieren, um Touchinteraktionen zu unterscheiden, wenn das Element kleiner ist. (I33f58, b/258495559)
  • Es wurden Änderungen an den Swipe-APIs in ModalDrawer vorgenommen. animateTo von DrawerState wurde durch die Methoden „open“ und „close“ ersetzt und der Offset kann jetzt Nullwerte enthalten. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Der Parameter minLines wurde in Material und Material3 Text, TextField und OutlinedTextField hinzugefügt, mit denen die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d).
  • Der Parameter minLines wurde zu BasicText und BasicTextField hinzugefügt. Sie können damit die Mindesthöhe dieser zusammensetzbaren Funktionen in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634).

Version 1.4.0-rc01

8. März 2023

androidx.compose.material:material-*:1.4.0-rc01 wird ohne Änderungen veröffentlicht. Version 1.4.0-rc01 enthält diese Commits.

Version 1.4.0-beta02

22. Februar 2023

androidx.compose.material:material-*:1.4.0-beta02 wird freigegeben. Version 1.4.0-beta02 enthält diese Commits.

API-Änderungen

  • Es wurden Änderungen an den Swipe-APIs in BottomSheetScaffold vorgenommen. Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert bereitgestellt. animateTo und snapTo sind intern. Verwende stattdessen expand() und collapse(). direction und overflow wurden entfernt. „offset“ wurde durch „requireOffset()“ ersetzt. (I323b4)

Fehlerkorrekturen

  • Semantische Rollen wurden von anklickbaren und auswählbaren Oberflächen entfernt und Komponenten, in denen Rollen mithilfe von „modifizierer.semantik“ (Ibb4ba) festgelegt wurden, aktualisiert.
  • Kleineres Update an den erweiterten Material-Symbolen, durch das die ausgefüllten Symbole für desktop_mac, directions und kitchen optimiert werden. (I65f5e)

Version 1.4.0-beta01

8. Februar 2023

androidx.compose.material:material-*:1.4.0-beta01 wird freigegeben. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

  • Es wurde ein Problem behoben, bei dem pullRefresh die Geschwindigkeit nicht verbraucht hat, wodurch das Overscroll-Bild nicht sichtbar war. Außerdem wurde die API-Signatur der Lambda-Funktion onRelease in Modifier.pullRefresh geändert, um einen Gleitkommawert für die aufgenommene Geschwindigkeit zurückzugeben (I7db65, b/266874741).
  • Property-Getter LocalMinimuTouchTargetEnforcement wiederhergestellt, als eingestellt markiert und Weiterleitung an LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Version 1.4.0-alpha05

25. Januar 2023

androidx.compose.material:material-*:1.4.0-alpha05 wird freigegeben. Version 1.4.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Der Status ModalBottomSheetLayout's HalfExpanded wurde falsch berechnet und das Tabellenblatt scheint unverankert zu sein. Dieses Problem wurde behoben. (I8c615, b/265610459)
  • Ein Fehler in ModalBottomSheetLayout wurde behoben, bei dem das Tabellenblatt unter bestimmten Umständen beim Wechsel vom ausgeblendeten in einen sichtbaren Zustand abgestürzt ist. (Ia9265, b/265444789)

Version 1.4.0-alpha04

11. Januar 2023

androidx.compose.material:material-*:1.4.0-alpha04 wird freigegeben. Version 1.4.0-alpha04 enthält diese Commits.

API-Änderungen

  • In der Semantik-Eigenschaft „IsContainer“ auf Oberflächen hinzugefügt. Diese Eigenschaft wird in einer späteren Änderung verwendet, bei der die Durchquerungsreihenfolge anhand der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379)
  • Kennzeichne die Funktion snapTo in der Leiste als API ohne Experimente. (Ib9c18, b/261425368)
  • Es wurde ein Track-Farbparameter für kreisförmige Fortschrittsanzeigen und ein Strich-Cap-Parameter für sowohl kreisförmige als auch lineare Fortschrittsanzeigen hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • ModalBottomSheetState, ModalBottomSheetState.Saver und confirmStateChange von rememberModalBottomSheetState wurden in confirmValueChange umbenannt. (Ib48d1)
  • Mehr Rückgabemöglichkeit für nicht unterstützte Funktionen, die nicht mehr unterstützt werden (Ibf7b0)
  • Modifier.minimumInteractiveComponentSize hinzufügen. Es kann verwendet werden, um eine Größe von mindestens 48 dp zu reservieren, um Touchinteraktionen zu unterscheiden, wenn das Element kleiner ist. (I33f58, b/258495559)
  • Es wurden Änderungen an den Swipe-APIs in ModalBottomSheetLayout vorgenommen. animateTo von ModalBottomSheetState verwendet keinen animationSpec-Parameter mehr und das exponierte offset-Objekt enthält jetzt Nullwerte. Verwende requireOffset, um die offset anzufordern. (Ia2e79)

Fehlerkorrekturen

  • Das Tabellenblatt eines ModalBottomSheetLayout hat jetzt eine maximale Breite von 640 dp. (I71a4f, b/234927577)
  • Es wurde ein Problem behoben, bei dem refreshThreshold und refreshingOffset von rememberPullRefreshState im Laufe der Zeit nicht aktualisiert wurden. (Ifed10, b/263159832)
  • Der Fortschritt für Fortschrittsindikatoren ist nun korrekt an den erwarteten Bereich begrenzt. (I8a7eb, b/262262727)
  • Wenn ModalBottomSheetState noch keine Anker erhalten hat, wird currentValue ohne Animation aktualisiert, wenn snapTo oder animateTo aufgerufen werden, anstatt eine Ausnahme auszulösen. (I2c91b)
  • Der Aktivierungsstatus bei der FilterChip-Implementierung von Material 2 wurde korrigiert. (Id326a, b/261329817)
  • Es wurde ein Fehler behoben, bei dem ModalBottomSheetLayout beim Drehen vom Hochformat ins Querformat abstürzte, wenn die Datei HalfExpanded war. Achten Sie darauf, dass Sie den richtigen initialValue übergeben, z. B. durch Prüfen der Konfiguration. (Ie8df7, b/182882364)
  • Das Problem, dass ModalBottomSheetLayout abstürzte, wenn der Inhalt des Tabellenblatts leer war, wurde behoben. In ModalBottomSheetLayout sind jetzt leere Tabellenblätter zulässig. Wenn der Inhalt des Tabellenblatts leer ist, hat es nur den Status „Ausgeblendet“. (Ic2288, b/200980998, b/216693030)

Bekanntes Problem

  • Beim Aktualisieren von androidx.compose.foundation:1.4.0-alpha03 auf androidx.compose.foundation:1.4.0-alpha04 kann ein java.lang.NoSuchFieldError-Fehler auftreten. Hier finden Sie die Seite, in der das Problem ursprünglich gemeldet wurde. Eine Fehlerkorrektur wurde gesendet. Sie ist mit dem nächsten Update der Funktion „Compose“ verfügbar. Aktualisieren Sie zur Problemumgehung die androidx.compose.material- und androidx.compose.material3-Bibliotheken auf die neueste Version(1.1.0-alpha04) oder führen Sie ein Downgrade von androidx.compose.foundation auf 1.4.0-alpha03 aus.

Version 1.4.0-alpha03

7. Dezember 2022

androidx.compose.material:material-*:1.4.0-alpha03 wird freigegeben. Version 1.4.0-alpha03 enthält diese Commits.

API-Änderungen

  • Anmerkung @JvmDefaultWithCompatibility hinzufügen (I8f206)
  • Es wurden Änderungen an den Swipeable APIs von ModalDrawer vorgenommen. animateTo von DrawerState wurde durch die Methoden open und close ersetzt und der Offset kann jetzt Nullwerte enthalten. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Es wurde eine Modifier API hinzugefügt, um Scrollinformationen zu Ancestors abzufragen. (I2ba9d, b/203141462)
  • Wird in Clickable verwendet, um Interaktionen beim Drücken korrekt zu verzögern, wenn Touch-Gesten zu Scroll-Ereignissen werden können.
  • Es wurde behoben, dass Clickables die Wellen nicht korrekt verzögert, wenn sie innerhalb eines Scrollable ViewGroup verwendet wurde.
  • Schubladen und Tabellen wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Touch-Gesten zu Scroll-Ereignissen werden können.

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem PullRefreshIndicator hängen geblieben ist, nachdem onRefresh aufgerufen wurde, wenn der Aktualisierungsstatus nicht auf „true“ geändert wurde. (Ie2416, b/248274004)

Aktualisierungen von Abhängigkeiten

  • Die Benutzeroberfläche zum Schreiben und das Schreiben von Material hängen jetzt von Lebenszyklus 2.5.1 ab. (I05ab0, b/258038814)

Version 1.4.0-alpha02

9. November 2022

androidx.compose.material:material-*:1.4.0-alpha02 wird freigegeben. Version 1.4.0-alpha02 enthält diese Commits.

API-Änderungen

  • awaitFirstDown und waitForUpOrCancellation akzeptieren jetzt eine PointerEventPass, um noch flexibler zu sein. (I7579a, b/212091796)
  • Der Parameter minLines wurde in Material und Material3 Text, TextField und OutlinedTextField hinzugefügt, mit denen die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d).
  • Der Parameter minLines wurde zu BasicText und BasicTextField hinzugefügt. Sie können damit die Mindesthöhe dieser zusammensetzbaren Funktionen in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634).

Version 1.4.0-alpha01

24. Oktober 2022

androidx.compose.material:material-*:1.4.0-alpha01 wird freigegeben. Version 1.4.0-alpha01 enthält diese Commits.

API-Änderungen

  • Die neue Methode awaitEachGesture() für Gestendetektoren wurde hinzugefügt. Sie funktioniert ähnlich wie forEachGesture(), aber die Loop-over-Touch-Gesten funktionieren vollständig innerhalb des AwaitPointerEventScope, sodass Ereignisse zwischen den Iterationen nicht verloren gehen können.
  • forEachGesture() wurde zugunsten von awaitEachGesture() eingestellt, da hiermit Ereignisse zwischen Touch-Gesten verloren gehen können. (Iffc3f, b/251260206)

Version 1.3

Version 1.3.1

9. November 2022

androidx.compose.material:material-*:1.3.1 wird freigegeben. Version 1.3.1 enthält diese Commits.

Version 1.3.0

24. Oktober 2022

androidx.compose.material:material-*:1.3.0 wird freigegeben. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

Änderung, die das Verhalten bricht

  • Die maximal unterstützte Höhe in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert.

API-Änderungen

  • Fügen Sie dem Tool „Compose“ die Komponente „Pull-to-Refresh“ hinzu (I29168).
  • Ändern Sie den Parameternamen in RangeSlider (I3b79a) von Werten zu Wert.

Version 1.3.0-rc01

5. Oktober 2022

androidx.compose.material:material-*:1.3.0-rc01 wird freigegeben. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta03

21. September 2022

androidx.compose.material:material-*:1.3.0-beta03 wird freigegeben. Version 1.3.0-beta03 enthält diese Commits.

API-Änderungen

  • Komponente „Zum Aktualisieren nach unten ziehen“ zu „Compose“ hinzufügen (I29168)

Version 1.3.0-beta02

7. September 2022

androidx.compose.material:material-*:1.3.0-beta02 wird freigegeben. Version 1.3.0-beta02 enthält diese Commits.

Keine Änderungen seit 1.3.0-beta01

Version 1.3.0-beta01

24. August 2022

androidx.compose.material:material-*:1.3.0-beta01 wird freigegeben. Version 1.3.0-beta01 enthält diese Commits.

Änderung, die das Verhalten bricht

Die maximal unterstützte Höhe in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert.

Die maximal unterstützte Höhe für Dialogfelder und Pop-ups zum Schreiben wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl benutzerdefinierte Dialogfelder und Pop-ups auf der Benutzeroberfläche als auch Material. Diese Änderung wird vorgenommen, um einen Fehler bei der Barrierefreiheit in Android-Versionen unter S abzuschwächen und sicherzustellen, dass Bedienungshilfen in diesen Fenstern mit dem Inhalt des Dialogfelds oder Pop-ups interagieren können.

Sie sind nur von dieser Änderung betroffen, wenn Sie eine benutzerdefinierte Dialog- oder Pop-up-Implementierung mit einer Höhe von mehr als 8 dp erstellen. Ziehen Sie in Betracht, das Dialogfeld oder Pop-up deutlich anzuheben. Wenn Sie dieses neue Verhalten deaktivieren müssen, können Sie ein eigenes Dialogfeld oder Pop-up-Fenster mit der gewünschten Höheneinstellung erstellen. Dies wird nicht empfohlen, da die Barrierefreiheit beeinträchtigt werden könnte. Der Entwickler muss dafür sorgen, dass der untere Teil des Dialogfelds oder Pop-ups interaktiv und lesbar ist.

Version 1.3.0-alpha03

10. August 2022

androidx.compose.material:material-*:1.3.0-alpha03 wird freigegeben. Version 1.3.0-alpha03 enthält diese Commits.

Version 1.3.0-alpha02

27. Juli 2022

androidx.compose.material:material-*:1.3.0-alpha02 wird freigegeben. Version 1.3.0-alpha02 enthält diese Commits.

Externer Beitrag

  • AnimatedVisibility-Problem mit FloatingActionButton in Scaffold beheben (I3a0ae, b/224005027)

Version 1.3.0-alpha01

29. Juni 2022

androidx.compose.material:material-*:1.3.0-alpha01 wird freigegeben. Version 1.3.0-alpha01 enthält diese Commits.

API-Änderungen

  • Parameternamen in RangeSlider (I3b79a) von Werten in Wert ändern

Fehlerkorrekturen

  • Aktualisiere das Beispiel für das Badge, um eine aussagekräftigere Inhaltsbeschreibung bereitzustellen. (I10b9d)

Version 1.2

Version 1.2.1

10. August 2022

androidx.compose.material:material-*:1.2.1 wird freigegeben. Version 1.2.1 enthält diese Commits.

Version 1.2.0

27. Juli 2022

androidx.compose.material:material-*:1.2.0 wird freigegeben. Version 1.2.0 enthält diese Commits.

Version 1.2.0-rc03

29. Juni 2022

androidx.compose.material:material-*:1.2.0-rc03 wird freigegeben. Version 1.2.0-rc03 enthält diese Commits.

  • Keine Änderungen seit 1.2.0-rc02.

Version 1.2.0-rc02

22. Juni 2022

androidx.compose.material:material-*:1.2.0-rc02 wird freigegeben. Version 1.2.0-rc02 enthält diese Commits.

Version 1.2.0-rc01

15. Juni 2022

androidx.compose.material:material-*:1.2.0-rc01 wird freigegeben. Version 1.2.0-rc01 enthält diese Commits.

API-Änderungen

  • Schnittstellen in compose-Bibliotheken werden jetzt mit den jdk8-Standardschnittstellenmethoden (I5bcf1) erstellt.

Fehlerkorrekturen

  • Aktualisiert das Logo mit dem führenden Symboltab, um das Badge statt des Symbols auf dem Label anzubringen. (I90993)

Version 1.2.0-beta03

1. Juni 2022

androidx.compose.material:material-*:1.2.0-beta03 wird freigegeben. Version 1.2.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem BottomSheetScaffold den Schatten der oberen App-Leiste überlag. BottomSheetScaffold berücksichtigt jetzt auch den Status des Tabellenblatts beim Platzieren von Snackbars: Im minimierten Zustand werden Snackbars über dem Tabellenblatt und dem FAB platziert. Im maximierten Zustand sind Snackbars am unteren Rand des Tabellenblatts verankert. (Ia80b5, b/187771422)

Version 1.2.0-beta02

18. Mai 2022

androidx.compose.material:material-*:1.2.0-beta02 wird freigegeben. Version 1.2.0-beta02 enthält diese Commits.

Version 1.2.0-beta01

11. Mai 2022

androidx.compose.material:material-*:1.2.0-beta01 wird freigegeben. Version 1.2.0-beta01 enthält diese Commits.

Neue Funktionen

  • Dies ist die erste Betaversion von 1.2.

API-Änderungen

  • Die zusammensetzbare Funktion TextFieldDefaults.BorderStroke, die in „OutlinedTextField“ einen Rahmenstrich zeichnet, wurde in „TextFieldDefaults.BorderBox“ umbenannt. (I5f295)

Version 1.2.0-alpha08

20. April 2022

androidx.compose.material:material-*:1.2.0-alpha08 wird freigegeben. Version 1.2.0-alpha08 enthält diese Commits.

API-Änderungen

  • Der teilweise Verbrauch (Position unten ODER unten) wurde in PointerInputChange eingestellt. Mit consume() können Sie die Änderung vollständig übernehmen. Mit isConsumed können Sie feststellen, ob eine andere Person die Änderung bereits übernommen hat.
  • PointerInputChange::copy() erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien von PointerInputChange verbraucht sind, sobald eine der Kopien verbraucht ist. Wenn Sie ein ungebundenes PointerInputChange erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)

Version 1.2.0-alpha07

6. April 2022

androidx.compose.material:material-*:1.2.0-alpha07 wird freigegeben. Version 1.2.0-alpha07 enthält diese Commits.

Version 1.2.0-alpha06

23. März 2022

androidx.compose.material:material-*:1.2.0-alpha06 wird freigegeben. Version 1.2.0-alpha06 enthält diese Commits.

API-Änderungen

  • Updates an der anklickbaren Card API gemäß den Änderungen an der Surface API (I56bcb)
  • Updates für die Material 2 Surface API mit zusätzlichen überlasteten Funktionen für auswählbare und ein-/ausschaltbare Oberflächen. (Ifcca5)

Version 1.2.0-alpha05

9. März 2022

androidx.compose.material:material-*:1.2.0-alpha05 wird freigegeben. Version 1.2.0-alpha05 enthält diese Commits.

API-Änderungen

  • LazyVerticalGrid und LazyHorizontalGrid sind jetzt stabil. (I307c0)
  • LazyVerticalGrid/LazyHorizontalGrid und alle zugehörigen APIs wurden in das .grid-Teilpaket verschoben. Bitte aktualisieren Sie Ihre Importe von androidx.compose.foundation.lazy auf androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • Die vorherige Änderung, bei der ausschließlich eine Ansicht für WindowInsetsControllerCompat verwendet wurde, wurde rückgängig gemacht. Auch hier ist ein Fenster erforderlich, das für die Verwaltung einiger Fenster-Flags erforderlich ist. ViewCompat.getWindowInsetsController wurde zugunsten von WindowCompat.getInsetsController verworfen, damit das richtige Fenster verwendet wird (z. B. wenn sich die Ansicht in einem Dialogfeld befindet). (I660ae, b/219572936)
  • Text:includeFontPadding ist jetzt standardmäßig deaktiviert. Die Clipping-Probleme als Ergebnis von includeFontPadding=false werden behandelt und bei großen Skripts sollte keine Clipping-Funktion auftreten. (I31c84, b/171394808)
  • Neue LazyVerticalGrid API zum Definieren von Querachsgrößen (I17723) hinzugefügt

Version 1.2.0-alpha04

23. Februar 2022

androidx.compose.material:material-*:1.2.0-alpha04 wird freigegeben. Version 1.2.0-alpha04 enthält diese Commits.

API-Änderungen

  • Add support for filter chips (I39a6e, b/192585545)
  • TextFieldDecorationBox und OutlinedTextFieldDecorationBox wurden hinzugefügt. Wenn Sie diese zusammen mit BasicTextField verwenden, können Sie ein benutzerdefiniertes Textfeld erstellen, das auf Material Design-Textfeldern basiert, aber mit mehr Anpassungsoptionen ausgestattet ist.
  • Es wurde eine Möglichkeit geschaffen, horizontale und vertikale Abstände in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003}
  • ComposableTarget, ComposableTargetMarker und ComposableOpenTarget wurden hinzugefügt. Damit können während der Kompilierungszeit Berichte dazu erstellt werden, wann eine zusammensetzbare Funktion aufgerufen wird, die auf eine Anwendung ausgerichtet ist, für die sie nicht vorgesehen ist.

    In den meisten Fällen können die Annotationen vom Compiler-Plug-in „compose“ abgeleitet werden, sodass die direkte Verwendung dieser Annotationen eher selten ist . Zu den Fällen, die sich nicht ableiten lassen, gehören das Erstellen und Verwenden einer benutzerdefinierten Anwendung, abstrakten zusammensetzbaren Funktionen (z. B. Schnittstellenmethoden), Feldern oder globalen Variablen, die zusammensetzbare Lambdas sind (lokale Variablen und Parameter werden abgeleitet), oder die Verwendung von ComposeNode oder einer zugehörigen zusammensetzbaren Funktion.

    Bei benutzerdefinierten Anwendungen müssen die zusammensetzbaren Funktionen, die ComposeNode oder ReusableComposeNode aufrufen, eine CompoableTarget-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es empfiehlt sich jedoch, eine Annotation zu erstellen, die mit ComposableTargetMarker annotiert ist, und dann direkt die markierte Annotation anstelle von ComposableTarget zu verwenden. Eine zusammensetzbare Annotation, die mit ComposableTargetMarker gekennzeichnet ist, entspricht einer ComposbleTarget mit dem voll qualifizierten Namen der Attributklasse als Anwendungsparameter. Ein Beispiel für die Verwendung von ComposableTargetMarker finden Sie unter anroidx.compose.ui.UiComposable. (I38f11)

Version 1.2.0-alpha03

9. Februar 2022

androidx.compose.material:material-*:1.2.0-alpha03 wird freigegeben. Version 1.2.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

Version 1.2.0-alpha02

26. Januar 2022

androidx.compose.material:material-*:1.2.0-alpha02 wird freigegeben. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • NonRestartableComposable wurde Methoden hinzugefügt, die Überlastungen vorhandener Methoden ohne komplexe Logik darstellen. Dadurch werden die vom Compiler generierten Memoisierungsprüfungen (gleich) für alle Parameter reduziert, die in der inneren Funktion, die aufgerufen wird, wiederholt werden. (I90490)
  • Unterstützung für Aktionschip hinzufügen (I07100, b/192585545)

Version 1.2.0-alpha01

12. Januar 2022

androidx.compose.material:material-*:1.2.0-alpha01 wird freigegeben. Version 1.2.0-alpha01 enthält diese Commits.

Aktualisierungen von Abhängigkeiten

  • Jetzt hängt der Kotlin-Code 1.6.10 ab.

Externer Beitrag

  • ModalBottomSheetState hat jetzt ein isSkipHalfExpanded-Flag. Er kann entweder über den Konstruktor festgelegt oder später aktualisiert werden, indem Sie die Eigenschaft isSkipHalfExpanded von ModalBottomSheetState auf true setzen. Wenn Sie den Wert von isSkipHalfExpanded aktualisieren, wird das Tabellenblatt neu zusammengesetzt. (I18b86, b/186669820)

Version 1.1

Version 1.1.1

23. Februar 2022

androidx.compose.material:material-*:1.1.1 wird freigegeben. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • NullPointerException korrigieren unter androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • Ein Absturz wurde behoben, der durch Inhalte in der Zwischenablage beim Lesen aus der Zwischenablage auf Android-Geräten verursacht wurde. (I06020, b/197769306)
  • RTL in LazyVerticalGrid korrigiert (aosp/1931080, b/207510535)

Version 1.1.0

9. Februar 2022

androidx.compose.material:material-*:1.1.0 wird freigegeben. Version 1.1.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.0.0

  • Stabile Unterstützung für den Overscroll-Effekt von Android 12
  • Verbesserungen bei der Größe von Berührungszielbereichen
  • Beachten Sie, dass in Compose 1.0 der Layoutbereich von Material-Komponenten erweitert wird, um die Material-Richtlinien für Barrierefreiheit im Hinblick auf die Größe des Berührungszielbereichs zu erfüllen. Beispielsweise wird das Berührungsziel der Schaltfläche auf eine Mindestgröße von 48 x 48 dp maximiert, auch wenn Sie eine kleinere Größe für die Schaltfläche festgelegt haben. Dadurch wird das Verhalten von „Compose-Material“ an das gleiche Verhalten wie Material Design-Komponenten angepasst, was beim Mischen von Ansichten und der Funktion „Compose“ zu einem einheitlichen Verhalten führt. Durch diese Änderung wird auch sichergestellt, dass beim Erstellen Ihrer Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit des Berührungszielbereichs erfüllt werden.
  • Stabile Unterstützung für die Navigationsschiene
  • Eine Reihe von zuvor experimentellen APIs wird zu einer stabilen Version umgestellt
  • Unterstützung neuerer Versionen von Kotlin

Version 1.1.0-rc03

26. Januar 2022

androidx.compose.material:material-*:1.1.0-rc03 wird freigegeben. Version 1.1.0-rc03 enthält diese Commits.

Geändertes Verhalten

Beachten Sie, dass in Compose 1.0 der Layoutbereich von Material-Komponenten entsprechend den Richtlinien für Barrierefreiheit des Touch-Ziels von Material erweitert wird. Beispielsweise wird das Berührungsziel der Schaltfläche auf eine Mindestgröße von 48 x 48 dp maximiert, auch wenn Sie eine kleinere Größe für die Schaltfläche festgelegt haben. Dadurch wird das Verhalten von „Compose-Material“ an das gleiche Verhalten wie Material Design-Komponenten angepasst, was beim Mischen von Ansichten und der Funktion „Compose“ zu einem einheitlichen Verhalten führt. Durch diese Änderung wird auch sichergestellt, dass beim Erstellen Ihrer Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit des Berührungszielbereichs erfüllt werden.

Fehlerkorrekturen

  • Es wurden bessere Informationen zur Fehlerbehebung für den Layout Inspector bei der Untersuchung der Modifikatoren für die Mindestanzahl von Berührungszielbereichen hinzugefügt. (aosp/1955036)

Version 1.1.0-rc01

15. Dezember 2021

androidx.compose.material:material-*:1.1.0-rc01 wird freigegeben. Version 1.1.0-rc01 enthält diese Commits.

Fehlerkorrekturen

Version 1.1.0-beta04

1. Dezember 2021

androidx.compose.material:material-*:1.1.0-beta04 wird freigegeben. Version 1.1.0-beta04 enthält diese Commits.

Neue Funktionen

  • Für Kotlin-Kompatibilität aktualisiert 1.6.0

Version 1.1.0-beta03

17. November 2021

androidx.compose.material:material-*:1.1.0-beta03 wird freigegeben. Version 1.1.0-beta03 enthält diese Commits.

Version 1.1.0-beta02

3. November 2021

androidx.compose.material:material-*:1.1.0-beta02 wird freigegeben. Version 1.1.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Ripples und andere Hinweise werden jetzt nur verzögert angezeigt, wenn sie sich in einem „Modifier.scrollable()“-Container befinden, und nicht mehr bei einem Down-Ereignis. (Ibefe0, b/203141462)

Version 1.1.0-beta01

27. Oktober 2021

androidx.compose.material:material-*:1.1.0-beta01 wird freigegeben. Version 1.1.0-beta01 enthält diese Commits.

Neue Funktionen

  • Ripples unterstützen jetzt den Mouseover- und den Fokusstatus. Wenn Sie den Mauszeiger auf eine Komponente wie eine Schaltfläche bewegen, wird also jetzt das richtige Status-Overlay angezeigt.

Version 1.1.0-alpha06

13. Oktober 2021

androidx.compose.material:material-*:1.1.0-alpha06 wird freigegeben. Version 1.1.0-alpha06 enthält diese Commits.

API-Änderungen

  • Für das Layout wurde eine Überlastung ohne untergeordnete Elemente mit verbesserter Effizienz hinzugefügt (Ib0d9a).
  • Implementierung von ExposedDropdownMenu auf Basis von ExposedDropdownMenuBox mit TextField und DropdownMenu darin (If60b2)
  • dismissOnOutsideClick wurde zu PopupProperties hinzugefügt und ersetzt die veraltete dismissOnClickOutside. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen und ermöglicht so eine genauere Kontrolle darüber, ob onDismissRequest aufgerufen werden soll oder nicht. So lässt sich beispielsweise verhindern, dass der Anker bei Berührungen ignoriert wird.
    • updateAndroidWindowManagerFlags wurde zu PopupProperties hinzugefügt. Dies bietet eine einfache Kontrolle über die Flags, die vom Pop-up an Android WindowManager übergeben werden. Der Parameter der Lambda-Funktion ist die Flags, die aus den PopProperties-Werten berechnet werden, die WindowManager-Flags ergeben, z.B. fokussierbar. Das Ergebnis der Lambda-Funktion ist die endgültigen Flags, die an den Android WindowManager übergeben werden. Standardmäßig bleiben „updateAndroidWindowManagerFlags“ die Flags, die anhand von Parametern berechnet wurden, unverändert. Diese API sollte mit Vorsicht verwendet werden, nur in Fällen, in denen das Pop-up sehr spezifische Verhaltensanforderungen hat. (I6e9f9)

Version 1.1.0-alpha05

29. September 2021

androidx.compose.material:material-*:1.1.0-alpha05 wird freigegeben. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Fügt die minimale Größe des Berührungszielbereichs für Materialkomponenten hinzu, die kein zugängliches Berührungsziel haben. Da dadurch zusätzlicher Abstand um Komponenten erweitert wird, um sicherzustellen, dass die Berührungszielbereiche groß genug sind, kann sich dies auf bestehende Benutzeroberflächen ändern, die davon ausgehen, dass die Größe dieser Komponenten ihrer visuellen Größe entspricht, und die Größe des Berührungszielbereichs nicht berücksichtigen. Sie können die experimentelle lokale LocalMinimumTouchTargetEnforcement-Zusammensetzung verwenden, um dieses Verhalten in einer Hierarchie zu deaktivieren. Dies soll jedoch nur als vorübergehende Notlösung dienen, während vorhandene Benutzeroberflächen aktualisiert werden, um die neue Mindestgröße zu berücksichtigen. (I9b966, b/149691127, b/171509422)
  • Es wurde die experimentelle TextFieldColorsWithIcons-Oberfläche hinzugefügt, mit der TextFieldColors erweitert wird, um InteractionSource für die führenden Farb- und Nachfolgefarben zur Verfügung zu stellen. Dadurch kann die Darstellung von TextField an den Fokusstatus angepasst werden. (I66923, b/198402662)

Version 1.1.0-alpha04

15. September 2021

androidx.compose.material:material-*:1.1.0-alpha04 wird freigegeben. Version 1.1.0-alpha04 enthält diese Commits.

API-Änderungen

  • performGesture und GestureScope wurden verworfen und durch performTouchInput und TouchInjectionScope ersetzt. (Ia5f3f, b/190493367)
  • touchBoundsInRoot zu SemanticsNode hinzugefügt, die die Mindestgröße für Berührungszielbereiche enthält, damit Entwickler sicherstellen können, dass Berührungszielbereiche die Mindestanforderungen für die Barrierefreiheit erfüllen. (I2e14b, b/197751214)

Fehlerkorrekturen

  • "Zuschneiden", um die Berührungszielgrenzen über den Clip-Bereich hinaus zu erweitern, um die Berührungszielbereiche zu minimieren. (I43e10, b/171509422)
  • Die zusammensetzbare Funktion Divider wurde aktualisiert, um Dp.Hairline für den Parameter „Stärke“ zu berücksichtigen. So wird das Zeichnen von Trennlinien mit einem Pixel unabhängig von der Dichte des Displays unterstützt. (I16ffb, b/196840810)

Version 1.1.0-alpha03

1. September 2021

androidx.compose.material:material-*:1.1.0-alpha03 wird freigegeben. Version 1.1.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Aktualisierung von „Compose“-1.1.0-alpha03 auf eine Abhängigkeit von Kotlin-1.5.30 wurde aktualisiert. (I74545)

API-Änderungen

  • Eine Testmethode zum Abrufen der verkürzten Grenzen wurde hinzugefügt. (I6b28e)
  • Zur Gewährleistung der Zugänglichkeit wurde die Mindestgröße des Berührungszielbereichs zur Verwendung in der Semantik und der Zeigereingabe zu ViewConfiguration hinzugefügt. (Ie861c)

Version 1.1.0-alpha02

18. August 2021

androidx.compose.material:material-*:1.1.0-alpha02 wird freigegeben. Version 1.1.0-alpha02 enthält diese Commits.

Externer Beitrag

  • Das Verhalten von „SwipeableState“ wurde korrigiert, wenn der Wisch-Offset innerhalb eines Rundungsfehlers eines Ankers liegt. (I03d39, b/191993377)

Version 1.1.0-alpha01

4. August 2021

androidx.compose.material:material-*:1.1.0-alpha01 wird freigegeben. Version 1.1.0-alpha01 enthält diese Commits.

API-Änderungen

  • Aktualisierte Methode DrawScope#drawImage, die Quell- und Zielrekte nutzt, um einen optionalen Parameter „FilterQuality“ zu verarbeiten. Dies ist nützlich für Pixelart, die verpixelt werden soll, wenn sie für pixelbasierte Grafiken hochskaliert werden. Die zusammensetzbare Funktion „BitmapPainter + Image“ wurde aktualisiert, sodass auch ein optionaler Parameter „FilterQuality“ verwendet wird (Ie4fb0, b/180311607).
  • BadgeBox wurde in BadgedBox umbenannt, die Parameter wurden so geändert, dass die zusammensetzbare Funktion Badge akzeptiert wird. Badge-Komponente hinzugefügt, die den typischen Badge-Inhalt für eine BadgedBox darstellt. (I639c6)
  • Die NavigationRail-Komponente wurde hinzugefügt. Siehe Dokumentation und Beispiele für Nutzungsinformationen (I8de77)

Fehlerkorrekturen

  • Wir haben ein am unteren Rand ausgerichtetes NavigationRail-Beispiel und eine Demo der Catalog App hinzugefügt. (I3cffc)
  • Die Dialogfelder folgen nun dem Größenverhalten der Plattform. Setze „usePlatformDefaultWidth“ auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
  • Der Katalog-App wurde eine Demo für Navigationsschienen hinzugefügt. (I04960)
  • Abzeichen-Demo zur Katalog-App hinzugefügt (If285d)

Version 1.0

Version 1.0.5

3. November 2021

androidx.compose.material:material-*:1.0.5 wird freigegeben. Version 1.0.5 enthält diese Commits.

Fehlerkorrekturen

  • Ein Absturz-Tracking für abgeleiteteStateOf-Instanzen wurde behoben. (aosp/1792247)

Version 1.0.4

13. Oktober 2021

androidx.compose.material:material-*:1.0.4 wird freigegeben. Version 1.0.4 enthält diese Commits.

Aktualisierungen von Abhängigkeiten

  • Aktualisiert und hängt von Kotlin ab 1.5.31

Version 1.0.3

29. September 2021

androidx.compose.material:material-*:1.0.3 wird freigegeben. Version 1.0.3 enthält diese Commits.

Aktualisierungen von Abhängigkeiten

  • Aktualisiert und hängt von Kotlin ab 1.5.30

Version 1.0.2

1. September 2021

androidx.compose.material:material-*:1.0.2 wird freigegeben. Version 1.0.2 enthält diese Commits.

Aktualisiert, um den Compose-Release 1.0.2 zu unterstützen. „Compose“ 1.0.2 ist weiterhin mit Kotlin 1.5.21 kompatibel.

Version 1.0.1

4. August 2021

androidx.compose.material:material-*:1.0.1 wird freigegeben. Version 1.0.1 enthält diese Commits.

Aktualisierungen von Abhängigkeiten

  • Aktualisiert, sodass sie von Kotlin-1.5.21 abhängig sind.

Version 1.0.0

28. Juli 2021

androidx.compose.material:material-*:1.0.0 wird freigegeben. Version 1.0.0 enthält diese Commits.

Hauptfunktionen von Version 1.0.0

Dies ist die erste stabile Version von „Compose“. Weitere Informationen finden Sie im offiziellen Blog zur Compose-Version.

Bekannte Probleme

  • Wenn du Android Studio Bumblebee Canary 4 oder AGP 7.1.0-alpha04/7.1.0-alpha05 verwendest, kann es zu folgendem Absturz kommen:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Erhöhen Sie in der Datei build.gradle vorübergehend die minSdkVersion auf 24 oder höher. Dieses Problem wird in der nächsten Version von Android Studio Bumblebee und AGP 7.1 behoben. (b/194289155)

Version 1.0.0-rc02

14. Juli 2021

androidx.compose.material:material-*:1.0.0-rc02 wird freigegeben. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Die Dialogfelder folgen nun dem Größenverhalten der Plattform. Setzen Sie usePlatformDefaultWidth auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)

Version 1.0.0-rc01

1. Juli 2021

androidx.compose.material:material-*:1.0.0-rc01 wird freigegeben. Version 1.0.0-rc01 enthält diese Commits.

API-Änderungen

  • Die BadgeBox-Komponente wurde hinzugefügt. Siehe Dokumentation und Beispiele für Nutzungsinformationen (I5e284)
  • useDefaultMaxWidth wurde in PopupProperties in usePlatformDefaultWidth umbenannt. (I05710)
  • Für Dialogfelder kann jetzt die gesamte Bildschirmbreite verwendet werden. (I83929, b/190810877)
  • Implementierung eines experimentellen Bereichsschiebereglers (I2f4b3) hinzugefügt

Fehlerkorrekturen

  • Zur Anpassung an die Material Design-Spezifikationen verwendet OutlinedTextField bei ungültiger Eingabe keine Fehlerfarbe für das Label, wenn das Label als Platzhalter verwendet wird. Letzteres gilt, wenn das Textfeld keinen Eingabetext enthält und das Textfeld nicht im Fokus ist. Mit dieser Änderung hat sich auch die Bedeutung des error:Boolean-Parameters in der TextFieldColors.labelColor()-Funktion geändert: Sie gibt jetzt false zurück, selbst wenn die Eingabe ungültig ist, wenn das Label als Platzhalter verwendet wird. (I45f78)

Version 1.0.0-beta09

16. Juni 2021

androidx.compose.material:material-*:1.0.0-beta09 wird freigegeben. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Der Parameter „Shape“ wurde zu OutlinedTextField hinzugefügt, um die Form des Rahmens anpassen zu können (I8f39e, b/181322957).
  • TextOverflow wird in eine Inline-Klasse geändert. (I433af)

Fehlerkorrekturen

  • Das Scrim in BottomDrawer, BackdropScaffold und ModalBottomSheetLayout wird dann ausgeblendet und die Farbe „Color“ wird ausgeblendet. Keine Angabe wird übergeben (I2d899, b/182063309).

Hinzugefügte Profilregeln

In diesem Release werden Profilregeln zu den folgenden Erstellungsmodulen (I14ed6) hinzugefügt:

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometrie
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util-Datei

Was sind Profilregeln?

  • Profilregeln für eine Bibliothek sind in der Textdatei baseline-prof.txt im src/main oder einem entsprechenden Verzeichnis angegeben. In der Datei ist eine Regel pro Zeile angegeben, wobei eine Regel in diesem Fall ein Muster für den Abgleich mit Methoden oder Klassen in der Bibliothek ist. Die Syntax für diese Regeln ist eine Obermenge des menschenlesbaren ART-Profilformats, das bei Verwendung von adb shell profman --dump-classes-and-methods ... verwendet wird. Für die Ausrichtung auf Methoden oder Klassen stehen zwei Regeln für diese Regeln zur Verfügung.

  • Eine Methodenregel hat das folgende Muster:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Und eine Klassenregel hat das folgende Muster:

    <CLASS_DESCRIPTOR>
    
  • In diesem Fall ist <FLAGS> mindestens eines der Zeichen H, S und P, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.

  • <CLASS_DESCRIPTOR> ist der Deskriptor für die Klasse, zu der die Zielmethode gehört. Die Klasse androidx.compose.runtime.SlotTable hätte beispielsweise den Deskriptor Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> ist die Signatur der Methode und enthält den Namen, die Parametertypen und Rückgabetypen der Methode. Die Methode fun isPlaced(): Boolean für LayoutNode hat beispielsweise die Signatur isPlaced()Z.

  • Diese Muster können Platzhalter (**, * und ?) enthalten, damit eine einzelne Regel mehrere Methoden oder Klassen umfasst.

Wozu dienen die Regeln?

  • Eine Methode mit dem Flag H gibt an, dass diese Methode eine "heiße" Methode ist und im Voraus kompiliert werden sollte.

  • Eine Methode mit dem Flag S gibt an, dass es sich um eine Methode handelt, die beim Start aufgerufen wird und im Voraus kompiliert werden sollte, um Kosten für Kompilierung und Interpretation der Methode beim Start zu vermeiden.

  • Eine Methode mit dem Flag P gibt an, dass es sich um eine Methode handelt, die nach dem Start aufgerufen wird.

  • Eine in dieser Datei vorhandene Klasse weist darauf hin, dass sie beim Start verwendet wird und im Heap vorab zugewiesen werden sollte, um die Kosten für das Laden der Klasse zu vermeiden.

So funktioniert's

  • Bibliotheken können diese Regeln definieren, die in AAR-Artefakte verpackt werden. Wenn dann ein APK erstellt wird, das diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das für das APK spezifisch ist. ART kann dieses Profil dann bei der Installation des APK auf Geräten nutzen, um vorab eine bestimmte Teilmenge der Anwendung zu kompilieren und so die Leistung der Anwendung, insbesondere der ersten Ausführung, zu verbessern. Dies hat keine Auswirkungen auf Anwendungen, die debuggen werden können.

Version 1.0.0-beta08

2. Juni 2021

androidx.compose.material:material-*:1.0.0-beta08 wird freigegeben. Version 1.0.0-beta08 enthält diese Commits.

Neue Funktionen

Behavior Breaking API-Änderung

  • AUFBRECHUNG DES VERHALTENS: Für die Karte werden jetzt Klicks verbraucht, d. h. Klicks, die über Card(Modifier.clickable) hinzugefügt werden, sind zwecklos. Verwenden Sie eine neue zu testende Überlastung einer Karte, die {8/} unterstützt. (Ia8744, b/183775620)
    • Eine neue Kachelüberlastung wurde hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: Anzeige, InteraktionSource, aktiviert/deaktiviert. Es war nicht möglich, eine normale, nicht anklickbare Karte mit der Modifier.clickable zu verwenden, da die Karte in diesen Fällen die Wellenbewegung nicht verhindert.
  • VERHALTEN: Surface verbraucht nun Klicks, sodass über Surface(Modifier.clickable) hinzugefügte Klicks vermeintlich unkompliziert sind. Verwenden Sie eine neue zu testende Überlastung von Surface, die Quick unterstützt. (I73e6c, b/183775620)
    • Eine neue Surface-Überlastung wurde hinzugefügt, um Klicks sowie andere anklickbare Funktionen zu verarbeiten: Anzeige, InteraktionSource, aktiviert/deaktiviert. Es war nicht möglich, eine normale, nicht klickbare Oberfläche mit dem Modifier.clickable zu verwenden, da die Oberfläche die Welle in diesen Fällen nicht begrenzt.

API-Änderungen

  • FabPosition wurde von „enum“ in eine Inline-Klasse konvertiert, um eine potenzielle Erweiterung in der Zukunft zu unterstützen (I030fb)
  • Die Verwendung von Aufzählungen wurde auf Inline-Klassen umgestaltet, um Probleme mit Vollständigkeit bei Anweisungen zu vermeiden, wenn neue Aufzählungswerte hinzugefügt werden. (I2b5eb)
  • Fügt ein Zeitlimit für Tippvorgänge für anklickbar bzw. ein-/ausschaltbar hinzu, um zu verhindern, dass beim Scrollen / Ziehen eine Welle angezeigt wird (Ia2704, b/168524931)
  • Die Attribute „ContentDescription“ und „Text“ sind keine einzelnen Werte mehr, sondern Listen. Auf diese Weise können sie unverändert zusammengeführt werden, anstatt Verkettungen. Außerdem wurden bessere Test-APIs zur Nutzung dieser Änderungen bereitgestellt (Ica6bf, b/184825850).
  • Modifier.focusModifier() wurde verworfen und durch Modifier.focusTarget() (I6c860) ersetzt
  • FocusState-Enum durch eine FocusState-Schnittstelle ersetzt (Iccc1a, b/187055290)
  • LocalRippleNativeRendering wurde entfernt, da die durch View-through-Videos gestützte Ripple-Implementierung stabil ist (I7fab3, b/188569367).

Fehlerkorrekturen

  • Modifier.onGloballyPositioned() wurde geändert, um nach Anwendung aller Modifikatoren die Koordinaten dieses Modifikators in die Ausgabe aufzunehmen, nicht die Layoutkoordinaten. Das bedeutet, dass sich jetzt die Reihenfolge der Modifikatoren darauf auswirkt, welche Koordinaten gemeldet werden. (Ieb67d, b/177926591)
  • Dem vorhandenen Compose Material-Katalog wurde eine INFODATEI hinzugefügt. (If9191)

Version 1.0.0-beta07

18. Mai 2021

androidx.compose.material:material-*:1.0.0-beta07 wird freigegeben. Version 1.0.0-beta07 enthält diese Commits.

API-Änderungen

  • Sie müssen in „Navigation Compose“ keine Erweiterungsmethoden mehr für die Routenunterstützung verwenden. (I22beb, b/172823546)

Version 1.0.0-beta06

5. Mai 2021

androidx.compose.material:material-*:1.0.0-beta06 wird freigegeben. Version 1.0.0-beta06 enthält diese Commits.

API-Änderungen

  • Ripple wurde migriert, um RippleDrawable intern auf Android-Geräten zu verwenden. Dies bedeutet, dass sich Ripple-Animationen im RenderThread abspielen und damit auch dann flüssig sind, wenn der UI-Thread unter Last ist, z. B. beim Wechseln zwischen Bildschirmen. Die API-Oberfläche der Wellenbewegung ändert sich dadurch nicht. Es kann jedoch zu Änderungen im Verhalten kommen. Zur Unterstützung der Migration wurde LocalRippleNativeRendering hinzugefügt. Geben Sie diesem CompositionLocal den Wert false an, um auf die vorherige Ripple-Implementierung innerhalb von CompositionLocalProvider zurückzugreifen. Diese API ist temporär und wird zukünftig entfernt. Sollten Probleme auftreten, die zur Verwendung dieser API führen, melden Sie den Fehler. (I902f8, b/168777351, b/183019123)
  • Bedienungshilfen-APIs für CollectionInfo und CollectionItemInfo wurden hinzugefügt, mit denen Sammlungen und zugehörige Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
  • Die Accessibility API error, die das Markieren eines Knotens mit ungültigen Eingaben ermöglicht, wurde hinzugefügt (I12997, b/180584804, b/182142737).

Fehlerkorrekturen

  • Die Implementierung des Katalogs für Compose-Material wurde aktualisiert von: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Untergeordnete Zeilen und Spalten mit "weight(fill = false)" füllen nicht mehr den gesamten verfügbaren Bereich der Hauptachse aus. (Ied94d, b/186012444, b/184355105)

Version 1.0.0-beta05

21. April 2021

androidx.compose.material:material-*:1.0.0-beta05 wird freigegeben. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Dem vorhandenen Compose Material-Katalog wurden Kachelbilder für Komponenten, die Designauswahl und spezifischere Menü-URLs hinzugefügt. (I9b58e)

Version 1.0.0-beta04

7. April 2021

androidx.compose.material:material-*:1.0.0-beta04 wird freigegeben. Version 1.0.0-beta04 enthält diese Commits.

API-Änderungen

  • API-ÄNDERUNG: Der DrawerState-Status erweitert den experimentellen SwipeableState nicht mehr.
    • API-ÄNDERUNG: BottomDrawerState ist jetzt als „Experimentell“ gekennzeichnet, um der bereits experimentellen BottomDrawer-Komponente zu entsprechen (I81114, b/181656094)
  • Benennen Sie hideSoftwareKeyboard und showSoftwareKeyboard in SoftwareKeyboardController in hide() bzw. show() um.
    • Die vollständige CompositionLocal-Schnittstelle für LocalSoftwareKeyboardController bereitstellen, um diese festzulegen (besonders bei Tests nützlich) (I579a6)
  • Die LiveRegion Accessibility API wurde hinzugefügt. Wenn der Knoten als Live-Region markiert ist, benachrichtigen die Bedienungshilfen den Nutzer automatisch über die Änderungen (Idcf6f, b/172590946).

Fehlerkorrekturen

  • Die Implementierung des Katalogs „Compose Material“ wurde dem vorhandenen Modul hinzugefügt. Derzeit fehlen: Kachelbilder der Komponenten, Designauswahl (wird bei nachfolgenden Änderungen hinzugefügt). (Ie7a94)

Version 1.0.0-beta03

24. März 2021

androidx.compose.material:material-*:1.0.0-beta03 wird freigegeben. Version 1.0.0-beta03 enthält diese Commits.

API-Änderungen

  • DefaultMonotonicFrameClock wurde verworfen. Durch den Aufruf von withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock wird jetzt IllegalStateException ausgegeben. (I4eb0d)
  • Eine neue API LeadingIconTab wurde hinzugefügt, um die Anzeige eines Symbols und Inline-Textes in einem Tab zu unterstützen. (I23267)

Externer Beitrag

  • [von Jossi Wolf] BottomDrawer umschließt jetzt den Inhalt des Leistenbereichs. BottomDrawer gibt kein IllegalStateException aus, wenn das übergeordnete Element eine unendliche Größe hat. Die untere Leiste wird jetzt maximiert geöffnet, wenn sie kleiner als 50% des übergeordneten Elements ist. Dokumente für BottomDrawerState und ModalBottomSheetLayoutState wurden aktualisiert. BottomDrawerState#isOpen gibt jetzt „true“ zurück, wenn die Datei entweder geöffnet oder maximiert ist. (I87241)

Version 1.0.0-beta02

10. März 2021

androidx.compose.material:material-*:1.0.0-beta02 wird freigegeben. Version 1.0.0-beta02 enthält diese Commits.

API-Änderungen

  • Eine neue lokale API für die LocalSoftwareKeyboardController-Zusammensetzung wurde hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle in TextField zu ersetzen. (I5951e, b/168778053)

Fehlerkorrekturen

  • Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
  • Die standardmäßige horizontale Ausrichtung für TopAppBar und BottomAppBar wurde in „Start“ geändert, entsprechend der Zeile (Ib2dc7)
  • Ein neues Modul und eine Platzhalter-UI wurden für einen Compose Material-Katalog hinzugefügt, der derzeit in vorhandenen Integrationstest-Demos verschachtelt ist. (Idfcb3)
  • androidx.compose.ui:ui ist nicht mehr von AppCompat oder Fragment abhängig. Wenn Sie in Ihrer Anwendung eine ComposeView und Fragment und/oder AppCompat verwenden, sollten Sie AppCompat 1.3 oder höher bzw. Fragment 1.3 oder höher verwenden. Diese Versionen sind erforderlich, um Lebenszyklus- und gespeicherte Statusinhaber für ComposeView korrekt festzulegen. (I1d6fa, b/161814404)

Version 1.0.0-beta01

24. Februar 2021

androidx.compose.material:material-*:1.0.0-beta01 wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.

Dies ist die erste Version der Betaversion von Compose 1.0.0.

API-Änderungen

  • Größenmodifikatoren wurden umbenannt. "Modifier.width/height/size" wurde in "requiredWidth/requiredHeight/requiredSize" umbenannt. "Modifier.preferredWidth/preferredHeight/preferredSize" wurden in "width/height/size" umbenannt. (I5b414)
  • „imageResource“ und „vectorResource“ sind jetzt Erweiterungsfunktionen für die Companions „ImageBitmap“ und „ImageVector“. load{Image,Vector,Font}Ressourcenfunktionen wurden gelöscht. (I89130)
  • Modifikatoren zur Größenanpassung an intrinsische Elemente sind nicht mehr experimentell. (I15744)
  • dp-Assertions entfernt (I798d2)
  • Der SoftwareKeyboardController-Callback wurde aus allen Textfeldern entfernt, der bald durch eine neue API ersetzt werden soll. (Iae869, b/168778053)
  • Die Aktions-Lambdas „Switch“, „Checkbox“ und „RadioButton“ können jetzt Nullwerte zurückgeben. Beispiele für Kästchen in anklickbaren Zeilen wurden für die Verwendung dieser Funktion aktualisiert. (If601b, b/171819073)
  • InteractionState wurde durch [Mutable]InteractionSource ersetzt.
    • Schnittstellen sind für das Senden und Erfassen von Interaktionsereignissen verantwortlich.
    • Verwenden Sie interactionSource = remember { MutableInteractionSource() }, anstatt interactionState = remember { InteractionState() } an Komponenten wie Button und Modifier.clickable() zu übergeben.
    • Verwenden Sie statt Interaction.Pressed in interactionState die Erweiterungsfunktionen für InteractionSource, z. B. InteractionSource.collectIsPressedAsState().
    • Bei komplexen Anwendungsfällen können Sie mit InteractionSource.interactions den Stream von Interaktionen beobachten. Weitere Informationen finden Sie in der Dokumentation zu InteractionSource und in Beispielen.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • AccessibilityMananger-Oberfläche und „LocalAccessibilityMananger“ in „CompositionLocals“ hinzufügen (I53520)
  • Die nicht mehr unterstützten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie die Funktion „function“ anstelle der Eigenschaft für „positionInParent“ und „boundsInParent“ (I580ed, b/169874631, b/175142755).
  • Schieberegler unterstützt jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
  • Für Eingabesitzungen über Low-Level-Textkomponenten wie CoreTextField wurde eine neue TextInputSession erstellt. (I8817f, b/177662148)
  • AnimationEndReason.Interrupted wurde entfernt. CancelException wird geworfen, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
  • @ExperimentalRippleApi wurde entfernt und RippleAlpha in eine Klasse mit Attributen anstelle einer Schnittstelle geändert. (I6df7c)
  • Die TextFieldColors-Schnittstelle wurde hinzugefügt, um verschiedene Farben darzustellen, die in TextField und OutlinedTextField in verschiedenen Zuständen verwendet werden. Informationen zur Standardimplementierung finden Sie unter TextFieldDefaults.textFieldColors und TextFieldDefaults.outlinedTextFieldColors.
    • Der Parameter „isErrorValue“ innerhalb von TextField und OutlinedTextField wurde in „isError“ umbenannt. (I831f9, b/171305338, b/168004067)
  • Modifikator „selectGroup“ hinzufügen, mit dem eine Sammlung von Tabs oder Optionsfeldern für Bedienungshilfen markiert werden kann (Ie5c29)
  • LazyListState.animateScrollToItem hinzufügen

    Mit dieser Methode wird automatisch zu einem bestimmten Element in der Liste gescrollt. I4bfd7.

  • ScrollableState.smoothScrollBy() wurde in animateScrollBy() umbenannt LazyListState.snapToItemIndex() wurde in scrollToItem() umbenannt ScrollState.smoothScrollTo() wurde in animateScrollTo() (I35ded) umbenannt

  • Alle zusammensetzbaren Funktionen, die mit @ReadOnlyComposable gekennzeichnet sind, werden jetzt nach der Kompilierungszeit validiert, damit nur Aufrufe an andere @ReadOnlyComposables (I58961) gesendet werden

  • TargetAnimation API wurde entfernt. (If47d1, b/177457083)

  • Die Scrollposition in Modifier.verticalScroll()/horizontalScroll() wird jetzt mit Ints dargestellt (I81298).

  • Die Pakete der Methoden „smoothScrollBy“ und „scrollBy“ wurden in androidx.compose.foundation.gestures.* (I3f7c1, b/175294473) geändert

  • FlingConfig wurde in FlingBehavior umbenannt und ermöglicht nun die Anpassung der Animierungsanimation anstelle vordefinierter Verkleinerungen. (I02b86, b/175294473)

  • Größenmodifikatoren wurden umbenannt. "Modifier.width/height/size" wurde in "requiredWidth/requiredHeight/requiredSize" umbenannt. "Modifier.preferredWidth/preferredHeight/preferredSize" wurden in "width/height/size" umbenannt. (I5b414)

  • „defaultMinSizeConstraints“ wurde in „defaultMinSize“ umbenannt. (I4eaae)

  • Die Ausrichtung wurde in das Foundation-Paket verschoben. VelocirtTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)

  • „DrawerState.open()“ und „drawerState.close()“ sind jetzt angehaltene Funktionen. Mit MemorystoreScope() können Sie den Umfang der Zusammensetzung ermitteln, um sie aufzurufen (I16f60, b/175294473).

  • Provider wurde in CompositionLocalProvider umbenannt

    • Der Kompositionskonstruktor akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
    • CurrentsCompositeKeyHash wurde in eine zusammensetzbare Top-Level-Eigenschaft anstelle einer zusammensetzbaren Funktion der obersten Ebene umgewandelt.
    • CompositionData und CompositionGroup wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben
    • ComposableLambda wurde anstelle einer konkreten Klasse als Interface erstellt und verfügt nicht mehr über Typparameter.
    • ComposableLambdaN wurde als Schnittstelle anstelle einer konkreten Klasse erstellt und verfügt nicht mehr über Typparameter.
    • Die Funktion „SnapshotFlow“ wurde in den Namespace „androidx.compose.runtime“ verschoben
    • Die Zusammenführungsmethode von SnapshotMutationPolicy ist nicht mehr experimentell
    • Die Funktion „clearRoots“ der obersten Ebene von @TestOnly wurde entfernt. Es ist nicht mehr erforderlich.
    • Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie werden nicht mehr benötigt.
    • Composer.collectKeySourceInformation wurde entfernt. Es ist nicht mehr erforderlich.
    • Die Methoden "isJoinedKey", "joinKeyLeft" und "joinKeyRight" wurden entfernt. Sie werden nicht mehr benötigt.
    • Verschiedene APIs auf oberster Ebene wurden verschoben und in verschiedene Dateien neu organisiert. Aufgrund der Semantik der Dateiklassen von Kotlin beeinträchtigt dies die Binärkompatibilität, aber nicht die Quellkompatibilität. Daher sollte dies für die meisten Nutzer kein Problem sein.
    • (I99b7d, b/177245490)
  • Modifier.scrollable wurde überarbeitet. Jetzt wird die scrollbare Schnittstelle anstelle der ScrollableController-Klasse verwendet (I4f5a5, b/174485541, b/175294473).

  • Modifier.draggable akzeptiert jetzt DraggableState anstelle eines einfachen Lambda-Elements. Du kannst einen Status über rememberDraggableState { delta -> } erstellen, um das gleiche Verhalten wie zuvor zu erhalten (Ica70f, b/175294473).

  • ZoomableController.smoothScaleBy und ZoomableController.stopAnimation sind jetzt Sperrfunktionen. (I7f970, b/177457083)

  • Einige zuvor verworfene APIs (Ice5da, b/178633932) wurden gelöscht.

  • Die folgenden Material API-Änderungen wurden vorgenommen:

    • Der contentPadding-Parameter wurde zu Top/BottomAppBar hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen.
    • Parameter in BackdropScaffold neu geordnet, um den API-Richtlinien zu entsprechen, wenn erforderliche Parameter vor optionalen Parametern liegen.
    • Der Parameter icon in BottomNavigationItem wurde so verschoben, dass er nach selected und onClick liegt.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • bodyContent-Parameter wurden in einigen Komponenten in nur content umbenannt.
    • Parameter in ButtonDefaults.buttonColors() neu geordnet. Da sich der Typ der Parameter nicht geändert hat, führt dies nicht zu einem Fehler in Ihrem Code. Stellen Sie sicher, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert der Code nicht wie zuvor.
    • Der Parameter secondaryVariant wurde zu darkColors() hinzugefügt. Diese Farbe hat in der Regel die gleiche Farbe wie secondary im dunklen Design, sie bietet aber mehr Einheitlichkeit und eine weitere Anpassung.
    • ElevationDefaults und animateElevation() wurden von der öffentlichen API-Oberfläche entfernt, da sie nicht häufig verwendet bzw. nützlich waren.
    • onValueChangeEnd wurde in Slider in onValueChangeFinished umbenannt und Nullwerte zulässig.
    • Der Parameter text in Snackbar wurde aus Gründen der Einheitlichkeit in content umbenannt.
    • Der Parameter contentPadding wurde zu DropdownMenuItem hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen. Außerdem wurde content als Erweiterung für RowScope entwickelt.
    • ModalDrawerLayout wurde in ModalDrawer umbenannt.
    • BottomDrawerLayout wurde in BottomDrawer umbenannt.
    • (I1cc66)
  • Zur besseren Anpassung wird für BasicTextField jetzt Pinsel anstelle von „Color“ unterstützt (I83a36).

  • „imageResource“ und „vectorResource“ sind jetzt Erweiterungsfunktionen für die Companions „ImageBitmap“ und „ImageVector“. load{Image,Vector,Font}Ressourcenfunktionen wurden gelöscht. (I89130)

  • Indication#createIndication() zu Indication#rememberUpdatedIndication(InteractionState) geändert und InteractionState-Parameter aus IndicationInstance#drawIndication() entfernt. IndicationInstance sollte nur für das Zeichnen von visuellen Effekten verantwortlich sein und nicht das Starten von Animationen bzw. den Schreibstatus als Reaktion auf InteractionState-Änderungen. Diese Animationen und Schreibvorgänge für Status sollten stattdessen innerhalb von rememberUpdatedIndication() erfolgen. Der Parameter indication in Modifier.indication wurde ebenfalls in einen erforderlichen Parameter geändert. (Ic1764, b/152525426)

Fehlerkorrekturen

  • Eine neue lokale Zusammensetzungs-API LocalSoftwareKeyboardController wurde hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle in TextField zu ersetzen. (I658b6, b/168778053)

Version 1.0.0-alpha12

10. Februar 2021

androidx.compose.material:material-*:1.0.0-alpha12 wird freigegeben. Version 1.0.0-alpha12 enthält diese Commits.

API-Änderungen

  • Für Modifier.pointerInput sind nun Schlüssel zum Merken erforderlich, die angeben, wann die Koroutine für die Zeigereingabeerkennung bei neuen Abhängigkeiten neu gestartet werden soll. (I849cd)
  • BottomDrawerLayout und ListItem wurden als @ExperimentalMaterialApi (Id766e) gekennzeichnet
  • PaddingValues.Absolute wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
  • „onImeActionPerformed“ wurde eingestellt. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523).
  • Um die Namenskonventionen besser mit ImageBitmap und ImageVector abzugleichen, wurde ImagePainter in BitmapPainter umbenannt, damit parallel zu VectorPainter. (Iba381, b/174565889)
  • Animatable.snapTo und Animatable.stop sind jetzt Funktionen zum Anhalten (If4288)
  • ComponentActivity.setContent wurde nach androidx.activity.compose.setContent im Modul androidx.activity:activity-compose verschoben. ICF416
  • Die Methoden "Destrukturierung" und "copy()" wurden aus mehreren Klassen entfernt, in denen sie nur selten verwendet wurden. (I26702, b/178659281)
  • In „ModalBottomSheetState“ wird in „HalfExpand()“ und „expand()“ intern (Ic914e) verwendet
  • Indication#createInstance wurde in @Composable geändert und LocalIndication in einen Indication geändert, nicht () -> Indication. (I5eeea, b/157150564)
  • AlarmDialog und Drop-down-Menü sind vorerst nur für Android verfügbar. Der Pop-upProperties-Parameter wurde dem Drop-down-Menü hinzugefügt, um das zugrunde liegende Pop-up weiter zu konfigurieren. (I9c443)
  • „loadFontResource“ wurde eingestellt. Verwenden Sie stattdessen fontResource. „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ wurden eingestellt. Verwenden Sie stattdessen PainterResource. (I6b809)
  • Die Parameter toggle und toggleModifier wurden aus dem Drop-down-Menü entfernt und dropdownModifier, dropdownOffset und dropdownContent wurden in modifier, offset bzw. content umbenannt. Das Drop-down-Menü funktioniert jetzt einheitlich wie Popup, bei dem das übergeordnete Layout für die Position des Menüs verwendet wird. In den meisten Fällen können Sie toggle in ein gleichgeordnetes Element von DropdownMenu verschieben und beide in eine Box zusammenfassen. Weitere Informationen zur Verwendung dieser API finden Sie im aktualisierten Beispiel in der Dokumentation. (I884fb)
  • „toIntPx()“ wurde in „roundToPx()“ umbenannt. (I9b7e4, b/173502290)
  • IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
  • Semantische Aktionen zum Maximieren und Minimieren wurden hinzugefügt. In ModalBottomSheetState (Ib5064) wurden „expand“ und „HalfExpand“ hinzugefügt.
  • Modifier.dragGestenFilter wurden eingestellt. Verwende stattdessen Modifier.pointerInput { detectDragGestures (...)}. Alternativ können Sie Modifier.draggable für Ziehbewegungen einer Achse verwenden (I0ba93, b/175294473).
  • Ambients wurden umbenannt, sodass sie unter Ambient > CompositionLocal umbenannt werden. Ambients hießen früher „AmbientFoo“, jetzt heißt „CompositionLocals“ LocalFoo. (I2d55d)
  • Die Auswahl wurde auf die Grundlage verschoben. (I7892b)
  • Ähnlich wie wir die zusammensetzbare Funktion state { 0 } zuvor entfernt haben und jetzt die Verwendung wie remember { mutableStateOf(0) } fördern, entfernen wir jetzt die zusammensetzbare Funktion savedInstanceState { 0 }. Sie sollten stattdessen rememberSaveable { mutableStateOf(0) } verwenden. Es wird automatisch gespeichert und wiederhergestellt, wenn der in „MuttableState“ verwendete Typ im Bundle gespeichert werden kann. Wenn Sie zuvor ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie jetzt eine neue Überlastung von savedSaveable mit dem Parameter stateSaver verwenden. Die Nutzung sieht so aus: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • ProgressBarRangeInfo.Indeterminate wurde hinzugefügt, um unbestimmte Fortschrittsbalken für Barrierefreiheit zu markieren (I6fe05).
  • @ComposableContract wurde eingestellt und durch drei spezifischere Annotationen ersetzt.

    • @ComposableContract(restartable = false)“ ist jetzt „@NonRestartableComposable
    • @ComposableContract(readonly = true)“ ist jetzt „@ReadOnlyComposable
    • @ComposableContract(preventCapture = true)“ ist jetzt „@DisallowComposableCalls
    • @ComposableContract(tracked = true) wurde entfernt.
    • (I60a9d)
  • Die Dienstprogramme emptyContent() und (@Composable () -> Unit).orEmpty() wurden verworfen, da sie keine positiven Auswirkungen auf die Leistung oder ihren Wert mehr haben (I0484d).

  • MemorystoreSavedInstanceState() wurde in noteSaveable() umbenannt und in das Paket „androidx.compose.runtime.saveable“ verschoben. (I1366e, b/177338004)

  • Saver, listSaver(), MapSaver(), autoSaver wurde von androidx.compose.runtime.savedinstancestate nach androidx.compose.runtime.saveable verschoben (I77fe6)

  • Die Parameter von RounderCornerShape, CutCornerShape und CornerBasedShape wurden von links/rechts in Anfang/Ende umbenannt, um die automatische Spiegelung der Form in RTL-Richtung zu unterstützen. AbsoluteRounderCornerShape und AbsoluteCutCornerShape wurden für Fälle eingeführt, in denen eine automatische Spiegelung nicht erwünscht ist. (I61040, b/152756983)

  • Die Parameter text und icon des Tabs sowie der Parameter label von BottomNavigationItem wurden so geändert, dass Nullwerte zulässig sind, um das Verhalten der Komponente besser zu vermitteln, wenn diese Parameter angegeben sind bzw. nicht angegeben werden. Dies wirkt sich auf die Größe und das Layout der Komponente aus. Wenn Sie derzeit emptyContent() übergeben, um keinen Text, kein Symbol oder kein Label zu verwenden, sollten Sie stattdessen null verwenden. (I57ed4)

  • Der Parameter „contentColorFor“ wurde in „backgroundColor“ (I5bb67) umbenannt.

  • TabDefaults wurde eingestellt und durch TabRowDefaults ersetzt. (I0f189)

  • Einführung der ColorMatrix API zum Ändern der RGB-Werte von Quellinhalten und der Refactored ColorFilter API als Schnittstelle, die der Implementierung von PathEffect entspricht (Ica1e8)

  • Die Funktion „AnimierteWert/Gleitkommazahl“ wird jetzt nicht mehr unterstützt. Bitte verwende stattdessen „Animatable“. (I71345, b/177457083)

  • SemanticsProperties.PaneTitle API hinzugefügt. (I20d5a)

  • Aktivierte Parameter wurden zu Tab und BottomNavigationItem hinzugefügt, um zu verhindern, dass sie anklickbar sind. BottomNavigationItem wurde in RowScope.BottomNavigationItem geändert, um die Layoutanforderungen in der API besser auszudrücken. (Id683d)

  • tapGestenFilter, doubleTapGestenFilter, longPressGestenFilter und pressIndicaitonGMSFilter wurden eingestellt. Verwende stattdessen "Modifier.clickable" oder "Modifier.pointerInput" mit der Funktion detectTapTouch. (I6baf9, b/175294473)

  • Fügen Sie den Parameter „ layoutDirection“ zu „createOutline“ der Form hinzu. Dies ermöglicht das Erstellen von richtungsabhängigen Formen. (I57c20, b/152756983)

  • Recomposer.current() wurde entfernt. [Summary]ComposeView verwenden jetzt standardmäßig verzögerte, fensterbezogene Recomposers, die vom ViewTreeLifecycleOwner für das Fenster gesteuert werden. Die Neuzusammensetzung und mit FrameNanos-basierte Animationsmarkierungen werden pausiert, während der Hostlebenszyklus angehalten wird. (I38e11)

Fehlerkorrekturen

  • Das Symbol wird nun unter Berücksichtigung der auf das Symbol angewendeten Größenmodifikatoren vertikal skaliert. Beispielsweise zeichnet Icon(.., modifier = Modifier.size(50.dp) jetzt in einem Bereich von 50 x 50 dp. (Ib2ba9, b/178796190)

Version 1.0.0-alpha11

28. Januar 2021

androidx.compose.material:material-*:1.0.0-alpha11 wird freigegeben. Version 1.0.0-alpha11 enthält diese Commits.

API-Änderungen

  • Bewirkt, dass einige Material APIs nicht mehr @Experimental (I5d20e) sind
  • Dem Bild und Symbol wurde der Parameter für die Inhaltsbeschreibung hinzugefügt. Es wird verwendet, um die Bedienungshilfen zu beschreiben (I2ac4c).
  • Ändert die Schnittstellen für zustandsorientierte Material-Parameter in @Composable-Funktionen, die State<T> zurückgeben. Fügt Animatable.asState() hinzu, um das Konvertieren eines animatablen in einen Status zu vereinfachen. Außerdem wird „animateElevation“ in eine Erweiterung zum Anhalten auf Animatable geändert. (If613c)
  • Snackbar, SnackbarHost, SnackbarHostState sind nicht mehr @ExperimentalMaterialAPI (Id1fb5)
  • Ändert Typografie, Formen und TabPosition so, dass sie keine Datenklassen mehr sind. Fügt eine Kopierfunktion für Typografie und Formen hinzu, um die generierten zu ersetzen. (I40037)
  • Einige zuvor eingestellte Material APIs wurden gelöscht (Ifaa25)

Fehlerkorrekturen

  • onCommit, onDispose und onActive wurden zugunsten der SideEffect und DisposableEffect APIs (If760e) eingestellt
  • Die auf TransitionDefinition basierende Umstellung wurde eingestellt (I0ac57).
  • Initial State in updateTransition wird jetzt unterstützt (Ifd51d)
  • WithConstraints wurde in „BoxWithConstraints“ umgestaltet und nach „fundation.layout“ verschoben. (I9420b, b/173387208)
  • „scrollBy“ ohne Sperrung verwerfen, „scrollTo nicht sperren“ entfernen

    Wir empfehlen jetzt, Funktion zum Sperren zu verwenden, um das Scrollen zu steuern und zu warten, bis das Scrollen beendet ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht gesperrt sind, eingestellt und/oder entfernt. (Ie9ced)

  • smoothScrollBy ohne Sperrung einstellen. Wir empfehlen jetzt die Verwendung von Sperrfunktionen, um das Scrollen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht gesperrt sind, eingestellt. (I12880)

  • ComposeContentTestRule wurde eingeführt, das ComposeTestRule erweitert und setContent definiert, das aus ComposeTestRule entfernt wurde. Die Factory-Methode createEmptyComposeRule() wurde hinzugefügt, die ein ComposeTestRule zurückgibt und keine Activity für Sie startet. Verwenden Sie diese Option, wenn Sie Ihre Activity während des Tests starten möchten, z. B. mit ActivityScenario.launch (I9d782, b/174472899).

  • Die in Button und FloatingActionButton verwendete Ripple kann nicht mehr durch eine neue Angabe über AmbientIndication angepasst werden. Dies war nie eine Möglichkeit zur Anpassung dieser Komponenten und sorgt jetzt dafür, dass diese Komponenten mit anderen Material-Komponenten übereinstimmen. Informationen zum Anpassen von Ripples innerhalb einer App finden Sie unter "RippleTheme". (I546c5)

  • "animateAsState" ist jetzt "animateFooAsState", wobei Foo der Typ der animierten Variablen ist, z. B. Float, Dp, Offset (Ie7e25)

  • BasicTextField hat einen neuen Parameter namens decorationBox erhalten. Sie können Dekorationen wie Symbole, Platzhalter, Beschriftungen und Ähnliches wie das Textfeld hinzufügen und den Zielbereich des Textfelds vergrößern. (I16996)

  • Behebung eines Fehlers, bei dem die Breite des Material-Textfelds nicht auf weniger als 280.dp festgelegt werden konnte (I78373)

  • Der Parameter „canDrag“ wurde aus „Modifier.draggable“ entfernt (Ic4bec, b/175294473).

  • Entfernen Sie displaySize. Dies sollte vermieden werden. Normalerweise ist es besser, die Größe onRoot() oder mindestens die Fenstergröße zu verwenden. (I62db4)

  • Oberflächen können jetzt mehrere untergeordnete Layoutelemente haben. (I66a92, b/144488459)

  • "invalid" und "compositionReference()" wurden zugunsten von "currentRecomposeScope" und "memoryCompositionReference" eingestellt. (I583a8)

  • Ändert Pop-upPositionProvider so, dass fensterrelative Koordinaten verwendet werden, keine globalen Koordinaten. Benennt „parentGlobalBounds“ in „anchorBounds“ und ändert „windowGlobalBounds“ in windowSize: IntSize (I2994a)

  • Dauer und Betriebszeit werden durch lange Millisekunden ersetzt. Mit diesem Schritt wird die Abhängigkeit der Zeigereingabe von diesen Klassen beseitigt. (Ia33b2, b/175142755, b/177420019)

  • Die Funktion „AnimierteFloat.fling“, die FlingConfig akzeptiert, wurde entfernt. Verwenden Sie stattdessen „animatable.animateDecay“. (I4659b, b/177457083)

  • klickbar, ein-/ausschaltbar und auswählbar, können jetzt außerhalb der Komposition erstellt werden (I0a130, b/172938345, b/175294473)

  • Easing wurde in eine funktionale Schnittstelle geändert (Ib14e5).

  • ScrollableColumn/Zeile wurde eingestellt. Die Verwendung von ScrollableColumn ist im Vergleich zu LazyColumn bei einem großen Scroll-Inhalt weniger effizient, da wir mit LazyColumn nur sichtbare Elemente erstellen/messen/zeichnen können. Um zu verhindern, dass Nutzer ineffizient arbeiten, haben wir „ScrollableColumn“ und „ScrollableRow“ eingestellt und stattdessen die Nutzung von LazyColumn und LazyRow erhöht. Nutzer können trotzdem entscheiden, dass sie das Lazy-Verhalten nicht benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • Neue Factory-Methode items(count: Int) für den Bereich von LazyColumn/LazyRow/LazyVerticalGrid. „items(items: List)“ und „itemsIndexed(items: List)“ sind jetzt Erweiterungsfunktionen. Sie müssen sie also manuell importieren, wenn sie verwendet werden. Neue Erweiterungsüberlastungen für Arrays: items(items: Array) und itemsIndexed(Array) (I803fc, b/175562574)

  • Die experimentellen monotonicFrameAnimationClockOf-Methoden (Ib753f, b/170708374) wurden entfernt.

  • Globale Koordinatenmethoden wurden verworfen und neue fensterbasierte Koordinatenmethoden eingeführt. (Iee284)

  • Modifier.toolingGraphicsLayer wurde hinzugefügt, das einen Grafikebenen-Modifikator hinzufügt, wenn die Überprüfung aktiviert ist. (I315df)

  • FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da es sich möglicherweise ändern kann. (I2d898, b/177000821)

  • „SemanticsPropertyReceiver.hidden“ wurde in „invisibleToUser“ umbenannt und mit „@ExperimentalComposeUiApi“ gekennzeichnet. „AccessibilityRangeInfo“ wurde in „ProgressBarRangeInfo“ umbenannt. „stateDescriptionRange“ wurde in „progressBarRangeInfo“ umbenannt. „AccessibilityScrollState“ wurde in „ScrollAxisRange“ umbenannt. „horizontalAccessibilityScrollState“ wurde in „horizontalAccessibilityScrollState“ umbenannt. „verticalAccessibilityScrollState“ wurde in „VerticalScrollAxisRange“ umbenannt. (Id3148)

  • TestCoroutineDispatcher beim Testen verwenden (I532b6)

  • Die Vektorgrafik-API wurde aktualisiert, um das Parsen von Tönungen zu unterstützen, die auf die Wurzel der Vektorgrafiken angewendet wurden. (Id9d53, b/177210509)

Version 1.0.0-alpha10

13. Januar 2021

androidx.compose.material:material-*:1.0.0-alpha10 wird freigegeben. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • Die Geschwindigkeit wurde so geändert, dass Komponenten und mathematische Operationen enthalten sind. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt, damit sie mit ähnlichen experimentellen API-Annotationen übereinstimmt (Ia4502, b/171464963)
  • Position wurde in DpOffset umbenannt und getDistance() (Ib2dfd) entfernt
  • Ranamed Color.useOrElse() zu Color.takeOrElse() (Ifdcf5)
  • Ein/Aus-Schaltfläche zu Foundation Strings.kt hinzufügen (I4a5b7, b/172366489)
  • FlowRow und FlowColumn wurden eingestellt. Bitte verwenden Sie stattdessen ein benutzerdefiniertes Layout. (I09027)
  • Modifier.focus() und Modifier.focusRequester() wurden eingestellt. Verwenden Sie stattdessen Modifier.focusModifier() und Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • „nativeClass“ wurde in ein UI-Modul verschoben und intern gemacht. Die Verwendung von „nativeClass“ in gleich-Implementierungen wurde aktualisiert, um stattdessen „is MyClass“ zu verwenden. (I4f734)

Fehlerkorrekturen

  • Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
  • animate() wird jetzt durch animateAsState() ersetzt, wodurch ein State<T> anstelle von T zurückgegeben wird. Dies führt zu einer besseren Leistung, da der Entwertungsbereich darauf beschränkt werden kann, wo der Statuswert gelesen wird. (Ib179e)
  • Fügen Sie die Semantics Role API und den klickbaren, auswählbaren und ein-/ausschaltbaren SemanticsModifier als Parameter hinzu. Modifizierer.progressSemantics geändert, sodass der Slider ihn ebenfalls verwenden kann. (I216cd)

Version 1.0.0-alpha09

16. Dezember 2020

androidx.compose.material:material-*:1.0.0-alpha09 wird freigegeben. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • Es wurde eine API hinzugefügt, um die Animation manuell auszulösen und in Modifier.swipeable zu ziehen (Iaa17a, b/162408885).
  • *Constants-Objekte wie ButtonConstants wurden umbenannt, sodass sie stattdessen mit Standardeinstellungen wie ButtonDefaults enden. Außerdem werden unnötige default-Präfixe aus Attributen in diesen neuen Objekten entfernt. (Ibb915, b/159982740)
  • Compose unterstützt Attribut-Getter, die zusammensetzbare Aufrufe erstellen können. Dies wird auch weiterhin unterstützt, aber die Syntax, mit der ein Property-Getter als „@Composable“ deklariert wird, ändert sich.

    Die inzwischen eingestellte Syntax hierfür war das Annotieren der Property selbst:

        @Composable val someProperty: Int get() = ...
    

    Die nun korrekte Syntax hierfür ist das Annotieren des Getter der Eigenschaft:

       val someProperty: Int @Composable get() = ...
    

    Beide Syntaxen funktionieren noch einige Zeit, aber die frühere veraltete Syntax wird letztendlich zu einem Kompilierungsfehler werden. (Id9197)

  • Die androidx.compose.material:material-ripple-Bibliothek mit Ripple-APIs wurde hinzugefügt, um die Erstellung interaktiver Komponenten zu ermöglichen, ohne dass der Rest der Material-Bibliothek erforderlich ist. Erinnern Sie sich daran, dass RippleIndication nicht mehr verfügbar ist und durch MemorystoreRipple ersetzt wurde. (Ibdf11)

Fehlerkorrekturen

  • Lambdas in Offset-Modifikatoren geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
  • Überarbeitetes ShaderBrush, um eine Shader-Instanz langsam zu erstellen, wenn Größeninformationen aus der Zeichenumgebung verfügbar sind. Dies ist nützlich, um Farbverläufe zu definieren, die zum Zeitpunkt der Erstellung die gesamten Zeichengrenzen einer zusammensetzbaren Funktion einnehmen, ohne benutzerdefinierte DrawModifier-Implementierungen zu implementieren.

    Die Konstruktor-APIs für Gradientenfunktionen wurden zugunsten von Factory-Methoden für ein Gradient-Objekt eingestellt. (I511fc, b/173066799)

  • Modifier.focusObserver wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484).

  • LazyColumnFor, LazyRowFor, LazyColumnForIndexed und LazyRowForIndexed werden eingestellt. Stattdessen LazyColumn und LazyRow verwenden (I5b48c)

  • Dp.VectorConverter, Position.VectorConverter usw. in den Animationskern verschoben und die alten VectorConveters (If0c4b) eingestellt

  • Die Autofill API ist jetzt eine experimentelle API und erfordert eine Aktivierung (I0a1ec).

  • Destrukturierungsdeklarationen zum Erstellen von FocusRequester-Instanzen hinzufügen (I35d84, b/174817008)

  • „AccessibilityLabel“ wurde in „contentDescription“ umbenannt. „accessibilityValue“ wurde in „stateDescription“ umbenannt. (I250f2)

  • Neue infiniteRepeatable-Funktion zum Erstellen einer InfiniteRepeatableSpec (I668e5)

  • Das Positionierungsverhalten des Drop-down-Menüs wurde gemäß den Material-Spezifikationen leicht geändert (I34c72, b/168594123).

  • InteractionState-Unterstützung für Textfelder wurde hinzugefügt. (I61d91)

  • Modifier.clearAndSetSemantics wurde hinzugefügt, um die Semantik der untergeordneten Elemente zu löschen und neue festzulegen. (I277ca)

  • „ContentDrawScope“ wurde in das ui-graphics-Modul verschoben, (Iee043, b/173832789)

Version 1.0.0-alpha08

2. Dezember 2020

androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08 und androidx.compose.material:material-icons-extended:1.0.0-alpha08 wurden veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

API-Änderungen

  • „MaterialTheme“ legt jetzt die richtigen Farben für Auswahlziehpunkte und Auswahlhintergrund fest. Nicht-Material-Apps können AmbientTextSelectionColors manuell verwenden, um die für die Auswahl verwendeten Farben anzupassen. (I1e6f4, b/139320372, b/139320907)
  • Es wurde eine Lint-Prüfung für die Benennung und Position von zusammensetzbaren Lambda-Parametern hinzugefügt, um die Konsistenz mit den Erstellungsrichtlinien zu prüfen. Außerdem wurden einige APIs mit children als Name für die nachgestellte Lambda-Funktion gemäß Lint-Prüfung und Anleitung zu content migriert. (Iec48e)
  • VectorAsset wurde in ImageVector verschoben und VectorAsset wurde in Builder umbenannt, um gemäß den Richtlinien des API-Berats eine innere Klasse von ImageVector zu sein. typealias von VectorAssetBuilder wurde zur Verknüpfung mit ImageVector.Builder für Compat hinzugefügt. (Icfdc8)
  • Umbenennung von ImageAsset und zugehörigen Methoden in ImageBitmap. (Ia2d99)
  • Semantik-Eigenschaften der Grundlage in die Benutzeroberfläche verschoben (I6f05c)
  • fun RippleIndication() wurde aus Gründen der Konsistenz mit anderen APIs durch rememberRippleIndication() ersetzt. (Id8e2c)
  • Ein singeLine-Parameter wurde in „BasicTextField“, „TextField“ und „OutlinedTextField“ hinzugefügt. Setzen Sie diesen Parameter auf „true“, um das Textfeld zu einer einzelnen horizontal scrollbaren Zeile zu machen. (I57004, b/168187755)

Fehlerkorrekturen

  • Semantische Aktion hinzufügen – Schließen (I2b706)
  • Die DrawModifier APIs wurden aus dem Paket „androidx.compose.ui“ in das Paket „androidx.compose.ui.draw“ verschoben. Erstellung der Datei DrawModifierveraltet.kt zur Einbindung von typealiases/helper-Methoden zur Unterstützung der Migration von den eingestellten zu den aktuellen APIs (Id6044, b/173834241)
  • Umbenennung von Modifier.drawLayer in Modifier.graphicsLayer. Verwandte Klassen wurden entsprechend dem API-Feedback in "GraphicsLayer" aktualisiert. (I0bd29, b/173834241)
  • <T> wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können sie jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)
  • Modifier.scale/rotate APIs wurden als Funktionen fürdrawLayer hinzugefügt.
    • Modifier.drawOpacity wurde in Modifier.alpha umbenannt
    • Modifier.drawShadow wurde in Modifier.shadow umbenannt (I264ca, b/173208140)
  • Der Ausrichtungsparameter von Box wurde in contentAlignment umbenannt. (I2c957)
  • Die Modifikatoren „offsetPx“ wurden in „offset“ umbenannt. Sie verwenden jetzt Lambda-Parameter anstelle von „State“. (Ic3021, b/173594846)
  • Einführung der APIs SweepGradientShader und SweepGradientBrush. (Ia22c1)
  • In den zusammensetzbaren Funktionen wurde eine Lint-Prüfung für Modifikatorparameter hinzugefügt. Mit dieser Lint-Prüfung werden Benennung, Rückgabetyp, Standardwert und Reihenfolge des Parameters auf Konsistenz mit den Erstellungsrichtlinien geprüft. (If493b)
  • Die TextFieldValue API wurde aktualisiert.
    • TextFieldValue.composition schreibgeschützt
    • Entfernte Ausnahme für ungültigen Auswahlbereich ausgelöst (I4a675, b/172239032)
  • Eine neue Modifier.drawLayer()-Überlastung wurde hinzugefügt. Dabei wird ein Lambda-Block auf einem neuen GraphicsLayerScope-Element verwendet, in dem die Ebenenparameter so definiert werden, dass bei einer Statusänderung Neuzusammensetzung und Layout übersprungen werden können. DrawLayerModifier ist jetzt intern verfügbar, um die Migration der Logik in die placeable.placeWithLayer()-Methode von LayoutModifier (I15e9f, b/173030831) durchzuführen.
  • Ambients mit dem Namen Ambient als Suffix wurden eingestellt und durch neue Properties mit dem Präfix „Ambient“ ersetzt. Dabei wurden andere Richtlinien für Ambients und die Compose API befolgt. (I33440)
  • Eine Lint-Prüfung wurde hinzugefügt, um zu überprüfen, ob Modifikator-Factorys intern androidx.compose.ui.composed {} verwenden, anstatt als @Composable markiert zu sein. (I3c4bc)
  • Das Semantics-Argument „mergeAllDescendants“ wurde in „mergeDescendants“ umbenannt. (Ib6250)
  • Die Zeitsteuerung in Tests (TestAnimationClock und deren Nutzung) ist jetzt experimentell (I6ef86, b/171378521).
  • Entfernen Sie das alte UI-Test-Modul und die zugehörigen Stubs (I3a7cb).
  • "TextUnit.Inherit" wird in "TextUnit.Unspecific" (TextUnit.Inherit) umbenannt. (Ifce19)
  • Die Ausrichtungsoberfläche wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
  • ID für LayoutIdParentData in layoutId umbenannt. „Measurable.id“ wurde in „Measurable.layoutId“ umbenannt. (Iadbcb, b/172449643)

Version 1.0.0-alpha07

11. November 2020

androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 und androidx.compose.material:material-icons-extended:1.0.0-alpha07 wurden veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • Hervorhebung wurde eingestellt und durch AmbientContentAlpha ersetzt. AmbientContentAlpha ist eine einfachere Abstraktion, die den bevorzugten Alpha-Inhalt für einen Teil der Hierarchie darstellt, ähnlich wie AmbientContentColor die bevorzugte Inhaltsfarbe darstellt. Text und Symbol übernehmen jetzt standardmäßig den aktuellen Wert aus AmbientContentAlpha. Du kannst manuell Folgendes tun: color.copy(alpha = AmbientContentAlpha.current), um in deinen Komponenten denselben Effekt zu haben. Statt ProvideEmphasis zu verwenden, könnt ihr einfach direkt über AmbientContentAlpha einen Wert angeben und die alten EmphasisLevels durch die neuen Standardebenen in ContentAlpha ersetzen. (Idf03e, b/159017896)
  • Fügt androidx.compose.material.AmbientContentColor hinzu, um androidx.compose.foundation.AmbientContentColor zu ersetzen (I84f7b, b/172067770)
  • Fügt „androidx.compose.material.Text“ hinzu, um „androidx.compose.foundation.Text“ als thematische allgemeine Textkomponente zu ersetzen. Für eine einfache Textkomponente, die keine Farben / Textstile aus dem Design nutzt, verwenden Sie BasicText. (Ie6ae0)
  • „maxLines“ wurde zu Textfeldern hinzugefügt (Ib2a5b)
  • Textfelder aktualisieren, damit KeyboardOptions unterstützt werden (Ida7f3)
  • Für die Oberfläche wird bei der Berechnung von Höhen-Overlays jetzt die absolute (gesamte) Höhe verwendet. Eine in einer anderen Oberfläche verschachtelte Oberfläche verwendet also die kombinierte Höhe zum Zeichnen des Overlays. (I7bd2b, b/171031040)

Fehlerkorrekturen

  • captureToBitmap nach "captureToImage" verschoben (I86385)
  • Die Grundlagen „AmbientTextStyle“, „ ProvideTextStyle“ und „AmbientContentColor“ wurden eingestellt. Verwenden Sie stattdessen die neuen Versionen, die in der Materialbibliothek verfügbar sind. Für Anwendungen, die keine Material sind, sollten Sie stattdessen Ihr eigenes Designsystem erstellen, das Themen als Ambients definiert, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
  • „fundation.Text“ wurde eingestellt und durch „material.Text“ ersetzt. Eine einfache, neutrale Text-API, die keine Werte aus einem Design verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
  • Benennen Sie KeyboardOptions in ImeOptions um (I82f36).
  • KeyboardType und ImeAction wurden in KeyboardOptions (I910ce) verschoben.
  • „BaseTextField“ wurde eingestellt. Verwenden Sie stattdessen „BasicTextField“. (I896eb)
  • Die Annotation ExperimentalSubcomposeLayoutApi wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn verwendet werden (I708ad)
  • FirstBaseline und LastBaseline wurden in das Paket „androidx.compose.ui.layout“ (Ied2e7) verschoben
  • Die Icon API wurde aktualisiert, sodass „Color.Nicht angegeben“ als mögliche Farbton verwendet wird, mit der das bereitgestellte Asset oder Painter ohne „ColorFilter“ gezeichnet wird. Bisher wurde versucht, die Färbung mit „Color“ zu ignorieren.Wenn keine Angabe gemacht wurde, wurde eine transparente Farbe verwendet, wodurch überhaupt nichts gerendert wurde. (I049e2, b/171624632)
  • relativePaddingFrom wurde in „addingFrom“ umbenannt. Der Modifikator „addingFromBaseline“ wurde hinzugefügt, um Abstände zwischen Layoutgrenzen und Textreferenzen einfacher angeben zu können. (I0440a, b/170633813)
  • LaunchedTask wurde aus Gründen der Konsistenz mit den SideEffect und DisposableEffect APIs in LaunchedEffect umbenannt. LaunchedEffect ohne Themenparameter ist nicht zulässig, um Best Practices zu fördern. (Ifd3d4)
  • „MeasureResult“ wurde aus MeasureScope verschoben. (Ibf96d, b/171184002)
  • Einige Layout-Symbole wurden von androidx.compose.ui nach androidx.compose.layout.ui verschoben. (I0fa98, b/170475424)

Version 1.0.0-alpha06

28. Oktober 2020

androidx.compose.material:material:1.0.0-alpha06, androidx.compose.material:material-icons-core:1.0.0-alpha06 und androidx.compose.material:material-icons-extended:1.0.0-alpha06 wurden veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

API-Änderungen

  • „androidx.compose.foundation.Icon“ wurde nach „androidx.compose.material.Icon“ verschoben. Sie können die Image-Komponente / Modifier.paint() auch mit einem Painter verwenden, wenn Sie die Material-Bibliothek nicht verwenden möchten. (I9f622)
  • Fügt FloatingActionButtonElevation hinzu, um die von FABs in verschiedenen Zuständen verwendete Elevation darzustellen. Informationen zur Standardimplementierung finden Sie unter FloatingActionButtonConstants.defaultElevation() (I2d4f5).
  • Fügt die SwitchColors-Schnittstelle hinzu, um Farben darzustellen, die von einem Switch in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
  • Fügt die Oberflächen ButtonElevation und ButtonColors hinzu, um Höhe und Farben darzustellen, die von Schaltflächen in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen dieser Parameter finden Sie in den Standardfunktionen in ButtonConstants. (Ic5b7b)
  • Fügt die RadioButtonColors-Schnittstelle hinzu, um Farben darzustellen, die von einem Optionsfeld in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen der Farben in verschiedenen Zuständen finden Sie unter RadioButtonConstants.defaultColors(). (I74130)
  • Fügt die CheckboxColors-Schnittstelle hinzu, um Farben darzustellen, die von einem Kästchen in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen der Farben in verschiedenen Zuständen finden Sie unter CheckboxConstants.defaultColors(). I7dbdb:

Fehlerkorrekturen

  • Für Materialkomponenten wird die Höhe nicht mehr als zIndex festgelegt. Das bedeutet, dass innerhalb desselben übergeordneten Elements das untergeordnete Element mit größerer Schattengröße nicht automatisch über das untergeordnete Element gezeichnet wird. Wenn Sie ein solches Verhalten dennoch benötigen, legen Sie Modifier.zIndex() bei Bedarf manuell fest (I70417, b/170623932).
  • Sie sollten VectorPainter zugunsten von MemorystorePainter abschaffen, um besser darauf hinzuweisen, dass die zusammensetzbare API intern das „Erinnern“ nutzt, um Daten über mehrere Kompositionen hinweg zu speichern. (Ifda43)
  • Übergänge in ComposeTestRule aktivieren und die Option zum Aktivieren des blinkenden Cursors in ComposeTestRule entfernen. (If0de3)
  • CoreTextField (I72e6d) bietet eine einzeilige Tastaturoption.
  • Die Radius API wurde in CornerRadius umbenannt, um ihre Verwendung in der Funktion „Compose“ besser zu verdeutlichen. Die Dokumentation wurde aktualisiert, um anzugeben, dass negative Eckradien auf null gebunden sind. (I130c7, b/168762961)
  • DrawScope und ContentDrawScope wurden in Schnittstellen statt abstrakten Klassen umgestaltet.
    • Wir haben eine CanvasDrawScope- Implementierung von DrawScope erstellt,
    • Wir haben CanvasScope-Implementierungen refaktoriert, um stattdessen CanvasScope zu verwenden.
    • Wir haben DrawContext erstellt, um Abhängigkeiten für DrawScope
    • Veraltete Methoden in DrawScope entfernt (I56f5e)
  • Box wurde als Inline-Funktion erstellt. (Ibce0c, b/155056091)

Version 1.0.0-alpha05

14. Oktober 2020

androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 und androidx.compose.material:material-icons-extended:1.0.0-alpha05 wurden veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

API-Änderungen

  • Pop-ups und Dialogfelder übernehmen jetzt FLAG_SECURE vom übergeordneten Fenster. Außerdem wurde eine Option hinzugefügt, um dies explizit zu konfigurieren (I64966, b/143778148, b/143778149).
  • Modifier.swipeable hat standardmäßig 56.dp-Schwellenwerte für Bundesstaaten (Iab825, b/168610267).
  • alle Scaffold-Status als @Stable markiert sind. (I36645, b/168297016)
  • Entfernt einen Typ, für den Nullwerte zulässig sind, aus Scaffold-Lambda-Parametern. Sie können emptyContent() verwenden, um für einen bestimmten Parameter keinen Inhalt darzustellen. (I2b318, b/157633857, b/158551084)
  • Die APIs „contentColor()“ und „currentTextStyle()“ werden verworfen und durch die AmbientContentColor- bzw. die AmbientTextStyle-Ambiente ersetzt. Wie bei allen anderen Ambient-Attributen können Sie mit .current auf den aktuellen Wert zugreifen. Diese Änderung wurde aus Gründen der Einheitlichkeit vorgenommen, um zu vermeiden, dass mehrere Wege für das Gleiche verfügbar sind. Außerdem werden einige Umgebungseigenschaften umbenannt, um ihren Zweck besser zu beschreiben:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Fügt AmbientElevationOverlay hinzu, wodurch das standardmäßige Höhen-Overlay für Oberflächen im dunklen Design angepasst / deaktiviert werden kann. (I5b74d)

Fehlerkorrekturen

  • Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen müssen Sie „Color.Unset“ in „Color.Unset“ umbenennen, um Konsistenz mit anderen Inline-Klassen zu gewährleisten (I97611, b/169797763).
  • TextOverflow.None wird eingeführt. Wenn der overflow-Objekt den Wert "None" hat, verarbeitet der Text den Überlauf nicht mehr und meldet seine tatsächliche Größe an LayoutNode. (I175c9, b/158830170)
  • „launchInComposition“ wurde in „LaunchedTask“ umbenannt, um den Richtlinien für die Compose API zu entsprechen (I99a8e).
  • "OnPositionedModifier" wird in "OnGloballyPositionedModifier" und "onPositioned()" in "onGloballyPositioned()" umbenannt. (I587e8, b/169083903)

Version 1.0.0-alpha04

1. Oktober 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 und androidx.compose.material:material-icons-extended:1.0.0-alpha04 wurden veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

API-Änderungen

  • Macht InteractionState-Parameter in zustandsorientierten Material-Komponenten verfügbar, um das Hochziehen des Zustands und das Lesen / Steuern des Zustands zu ermöglichen. (Iaca5f, b/168025711, b/167164434)
  • Ändert die *color-Parameter für RadioButton und TriStateCheckbox, um die in den einzelnen Stadien verwendeten Farben vollständig anzupassen sowie gegebenenfalls zu ändern, wie die Farben zwischen den Zuständen animiert werden. Weitere Informationen finden Sie in den neuen Farbfunktionen „animateDefault*“ in „CheckboxConstants“ und „RadioButtonConstants“. (I1c532)
  • erinnerungBackdropState wurde in BackdropScaffoldState umbenannt und ein zusätzlicher Parameter für die Animationsuhr wurde hinzugefügt. Der Parameter „backdropScaffoldState“ von BackdropScaffold wurde in scaffoldState umbenannt. BackdropConstants wurde in BackdropScaffoldConstants umbenannt. (Ib644d)
  • Experimentelle BottomSheetScaffold-Komponente wurde hinzugefügt. (Ie02f0, b/148996320)
  • Experimentelle ModalBottomSheetLayout-Komponente wurde hinzugefügt. (Ic209e, b/148996320)
  • Benennt ButtonConstants/FloatingActionButtonConstants.defaultAnimationElevation in defaultElevation um und gibt jetzt einen Dp-Wert anstelle von animateValue zurück. (I5f3ed)

Fehlerkorrekturen

  • Viele Graphics APIs wurden aktualisiert.
    • Die APIs für Skalierungs- und Rotationstransformationen wurden aktualisiert, sodass ein einziger Offset-Parameter zur Darstellung der Pivot-Koordinaten anstelle separater Gleitkomma-Parameter für die x/y-Koordinaten in DrawScope und DrawTransform verwendet wird.
    • Die Methoden Rect.expandToInclude und Rect.join wurden entfernt.
    • Die Dokumentation für den Radius wurde aktualisiert, sodass jetzt neben dem Ellipsentrainer auch „Oval“ angezeigt wird.
    • Es wurde eine Dokumentation hinzugefügt, in der angegeben wird, dass der öffentliche Konstruktor für die Inline-Radius-Klasse nicht direkt aufgerufen werden soll. Radius-Objekte sollten stattdessen über ihre Funktionskonstruktoren instanziiert werden.
    • RoundRect APIs zur Abfrage von topRight, bottomRight, bottomCenter usw. wurden entfernt.
    • Rect.shift wurde zugunsten von Rect.translate eingestellt
    • RoundRect.grow und Rect.shrink APIs entfernt
    • RoundRect.outerRect wurde in Rect.boundingRect umbenannt
    • Die Methoden RoundRect.middleRect/tallMiddleRect/wideMiddleRect und Rect.isStadium wurden entfernt.
    • RoundRect.longestSide wurde umbenannt in RoundRect.maxDimension
    • RoundRect.shortestSide wurde in RoundRect.minDimension umbenannt
    • RoundRect.center wurde in eine Eigenschaft anstelle einer Funktion geändert
    • Der RoundRect-Konstruktor wurde so aktualisiert, dass Radiuseigenschaften anstelle einzelner Parameter für x/y-Radiuswerte verwendet werden.
    • APIs für die Größe, bei denen angenommen wurde, dass es sich um ein Rechteck mit dem Ursprung 0,0 handelt, wurden entfernt.
    • Zerstörende API zu Radius hinzugefügt
    • Verschiedene RoundRect-Erweiterungsfunktionen wurden zu Eigenschaften migriert
    • (I8f5c7, b/168762961)
  • Foundation.Box wurde eingestellt. Verwende stattdessen „Foundation.layout.Box“. (Ie5950, b/167680279)
  • Stack wurde in Box umbenannt. Die zuvor vorhandene Box wird zugunsten der neuen Box in compose.foundation.layout eingestellt. Das Verhalten des neuen Box besteht darin, untergeordnete Elemente übereinander zu stapeln, wenn es mehrere untergeordnete Elemente hat. Dies unterscheidet sich vom vorherigen Box, das sich ähnlich wie eine Column verhält. (I94893, b/167680279)
  • Parameter für die Dekoration von Boxen wurden eingestellt. Wenn Ihre Box Dekorationen/Füllungen enthalten soll, verwenden Sie stattdessen Modifiers (Modifier.background, Modifier.bound, Modifier.adding) (Ibae92, b/167680279).
  • Viele Graphics APIs wurden aktualisiert.
    • Wir haben die DrawScope APIs mit bereichsspezifischen Transformationsmethoden aktualisiert, um anzuzeigen, dass die Transformation nur innerhalb des Callbacks angewendet und entfernt wird, nachdem der Callback aufgerufen wurde.
    • Die „clipPath“-Dokumentation wurde aktualisiert, sodass jetzt auf „Pfad“ und nicht auf ein abgerundetes Rechteck verwiesen wird.
    • In der Dokumentation wurde der Abstand für den rechten Parameter in „clipPath“ festgelegt.
    • „DrawScope.drawCanvas“ wurde in „drawIntoCanvas“ umbenannt und der Größenparameter wurde entfernt.
    • Umbenennung der dx/dy-Parameter in der Einfügungsmethode in horizontal und vertikal
    • Zusätzliche Überlastung, die allen 4 Grenzen denselben Wert bietet,
    • Die Dokumentation zur Einfügungsmethode, die darauf hinweist, dass Einsatz auf alle 4 Seiten angewendet wird, wurde entfernt.
    • Aktualisierte Dokumentation für die Rect-Klasse
    • Die Kommentare zu den Rect-Parametern wurden aktualisiert, damit sie dem kdoc-Stil entsprechen.
    • Rect.join und Rect.expandToInclude entfernt
    • Überlastung für Rect.translate(offset) erstellt und Rect.shift eingestellt
    • (If086a, b/167737376)
  • Statische Importe von Inhalten von Layoutbereichen (z.B. „alignWithSiblings“ in RowScope) wurden verhindert. Stattdessen sollte die explizite Option „with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }“ verwendet werden. (I216be, b/166760797)

Version 1.0.0-alpha03

16. September 2020

androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 und androidx.compose.material:material-icons-extended:1.0.0-alpha03 wurden veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

API-Änderungen

  • Benennt den Parameter onSelect von BottomNavigationItem in onClick um (I91925, b/161809324)
  • Fügt den InteractionState-Parameter zu BottomNavigationItem und Tab hinzu, wodurch dieser Status hochgezogen und die Darstellung der Komponente in verschiedenen Zuständen angepasst werden kann. (Ia3e9e, b/168025711)
  • Entfernt die Parameter disabledBackgroundColor und disabledContentColor von Schaltflächen. Sie sollten stattdessen die neuen Standardfarbfunktionen in ButtonConstants verwenden. Wenn Sie „contentColor/backgroundColor“ bereits explizit festlegen, sollten Sie stattdessen diese Standardfunktionen verwenden und einige/alle Parameter anpassen, um zu vermeiden, dass die Farbe sowohl für den aktivierten als auch für den deaktivierten Status überschrieben wird. (If9b52)
  • Durch die Hintergrundfarbe von Textfield wird nicht mehr implizit die Alpha-Transparenz für die Transparenz übernommen. Stattdessen wird jede über den Parameter „backgroundColor“ angegebene Farbe direkt angewendet. (Iecee9, b/167951441)
  • InnerPadding wurde in PaddingValues umbenannt. (I195f1, b/167389171)
  • Die Parameter resistanceFactorAtMin und resistanceFactorAtMax in Modifier.swipeable wurden durch einen einzelnen Widerstandsparameter ersetzt. In SwipeableConstants wurde die neue defaultResistanceConfig-Methode hinzugefügt. (I54238)
  • Fügt Unterstützung animierter zustandsorientierter Höhendaten für Button und FloatingActionButton hinzu. Die Höhe wird nun zwischen dem Standardstatus und dem Modus „Betätigt“ animiert. Verwenden Sie zum Anpassen der Höhe zwischen Bundesstaaten ButtonConstants.defaultAnimatedElevation() und FloatingActionButtonConstants.defaultAnimatedElevation(), anstatt in allen Fällen einen flachen Dp-Wert festzulegen. (I37925)
  • „Label“ wurde zu einem optionalen Parameter in TextField und OutlinedTextField (I267f6, b/162234081)

Fehlerkorrekturen

  • Globale Testfunktionen wie onNode oder waitForIdle wurden verworfen. Migrieren Sie zu ihren neuen Entsprechungen, die in ComposeTestRule (I7f45a) definiert sind.
  • DpConstraints und APIs, die sie verwenden, wurden eingestellt. (I90cdb, b/167389835)
  • Die Parameter „minWidth“ und „maxWidth“ von „widthIn“ wurden in „min“ und „max“ umbenannt. Ähnliches gilt für „preferredWidthIn“, „heightIn“ und „preferredHeightIn“. (I0e5e1, b/167389544)
  • Aktionen zur Semantik zum Vor- und Zurückscrollen wurden entfernt. Schritte wurden in „AccessibilityRangeInfo“ hinzugefügt. (Ia47b0)
  • Die Nutzung der Gravitation wurde konsequent umbenannt, um die Layout-APIs auszurichten. (I2421a, b/164077038)
  • onNode und andere globale Methoden wurden zu ComposeTestRule hinzugefügt, da die aktuellen globalen Methoden nicht mehr unterstützt werden. (IEAe36)
  • createAndroidComposeRule und AndroidInputDispatcher von androidx.ui.test.android nach androidx.ui.test verschoben (Idef08, b/164060572)

Version 1.0.0-alpha02

2. September 2020

androidx.compose.material:material:1.0.0-alpha02, androidx.compose.material:material-icons-core:1.0.0-alpha02 und androidx.compose.material:material-icons-extended:1.0.0-alpha02 wurden veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

  • Eine experimentelle BackdropScaffold-Komponente wurde hinzugefügt. (Iad908)

Fehlerkorrekturen

  • Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des vectormath-Pakets wurden entfernt. (Ibd665, b/160140398)

Version 1.0.0-alpha01

26. August 2020

androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 und androidx.compose.material:material-icons-extended:1.0.0-alpha01 wurden veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Bekanntes Problem

= Das erste Zeichen im TextField kann nicht mithilfe einer Rücktaste entfernt werden (b/165956313).

Version 0.1.0-dev

Version 0.1.0-dev17

19. August 2020

androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 und androidx.compose.material:material-icons-extended:0.1.0-dev17 wurden veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.

API-Änderungen

  • Zuvor verworfene „RadioGroup“ und „RadioGroupItems“ wurden entfernt. Stattdessen Row und RadioBotton verwenden (I381b7, b/163806637)
  • onFocusChanged-Callbacks wurden aus TextField entfernt. Verwenden Sie stattdessen Modifier.focusObserver. (I51089, b/161297615)
  • „Modifier.drawBorder“ wurde eingestellt. Verwende stattdessen Modifier.Border. Border-Datenklasse wurde durch BorderStroke (I4257d, b/158160576) ersetzt
  • Einige Eigenschaften in „SwipeableState“ wurden umbenannt: „wipeTarget“ -> „targetValue“. Es wurde eine Funktion zum Speichern von Swipe-States hinzugefügt. (I2fc9c, b/163129614, b/163132293)
  • Snackbar-Unterstützung mit Positionierung und korrekter Wiedergabeliste wurde hinzugefügt. Sie können über die Sperrfunktion SnackbarHostState.showSnackbar darauf zugreifen. Außerdem gilt:
    • SnackbarHost-Komponenten wurden hinzugefügt. Sie hostet Snackbars je nach Zustand und ist für den Übergang zwischen den Snackbars verantwortlich.
    • SnackbarHostState wurde hinzugefügt, um die Kontrolle über Snackbars und Snackbar-Hosts zu ermöglichen und sie vom ScaffoldState zu entkoppeln. Du kannst auch über scaffoldState.snackbarHostState auf diesen Status zugreifen.
    • Die Snackbar-Überlastung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen SnackbarHostState und Snackbars selbst zu unterstützen. (I79aaa)
  • Fügt aktivierte Parameter zu IconButton hinzu und ordnet Parameter in IconToggleButton (I0a941, b/161809385, b/161807956) neu an
  • Die ListItem-Version mit der String-basierten API wurde entfernt. Verwenden Sie stattdessen die Slotversion. (Ib8f57, b/161804681)
  • Die eingestellte FilledTextField-Komponente wurde entfernt. Verwende stattdessen „TextField“, um die Material Design-Implementierung des ausgefüllten Textfelds zu erhalten. (I5e889)
  • AlertDialog verwendet jetzt FlowRow für Schaltflächen (I00ec1, b/161809319, b/143682374)
  • In "Modifier.swipeable" wurden Parameter hinzugefügt, mit denen der Widerstand beim Überschreiten der Grenzen geändert werden kann. [min/max]Wertparameter wurden entfernt. (I93d98)
  • Der Parameter „backgroundColor“ wurde zu „LinearProgressIndicator“ hinzugefügt und der interne Abstand aus dem CircularProgressIndicator entfernt. Neue ProgressIndicatorConstants.DefaultProgressAnimationSpec zur Verwendung als Standard-AnimationSpec bei der Animation des Fortschritts zwischen Werten hinzugefügt (If38b5, b/161809914, b/161804677)
  • Optionaler Parameter velocityThreshold zu Modifier.swipeable hinzugefügt. (I698ba)
  • bottomBarSize, fabSize und andere und nicht mehr in ScaffoldState verfügbar. Verwenden Sie stattdessen Modifier.onPosition für die Komponente, deren Größe Sie wissen möchten. contentColor und Modifier-Parameter wurden zum Scaffold hinzugefügt (Ic6f7b, b/161811485, b/157174382).
  • Benennt einige Parameter auf dem Tab um und ordnet sie neu an, um Konsistenz mit anderen APIs zu gewährleisten (Ia2d12, b/161807532)
  • Teilt TabRow in TabRow und ScrollableTabRow auf und entfernt isScrollable aus TabRow. Blendet außerdem EdgePadding in ScrollableTabRow-Zeilen aus, mit dem der kostenlose Bereich vor und nach den Tabs gesteuert werden kann. (I583e8, b/161809544)
  • Das TabRow-Objekt wurde entfernt und durch TabConstants ersetzt. TabRow.TabPosition wurde auf die oberste Ebene (TabPosition) verschoben und „indicatorContainer“ wurde in „indicator“ umbenannt. Ausführliche Informationen zur Verwendung der aktualisierten API und der Standardeinstellungen finden Sie in den Beispielen und der Dokumentation. (I54d45, b/161809544)
  • Der Parameter für Schwellenwerte in Modifier.swipeable wurde optimiert. Jetzt übernimmt er ein Statuspaar (Typ T) und gibt den Schwellenwert dazwischen in Form einer ThresholdConfig zurück. SwipeTolüften wurde ein Parameter endingThresholds hinzugefügt, bei dem es sich um Lambda (DismissDirection) -> ThresholdConfig) handelt. (Ie1080)
  • Der Schieberegler hat mehr Farben für eine detaillierte Anpassung (I73e64, b/161810475).
  • Der Farbparameter der Karte wurde in „backgroundColor“ umbenannt (I01fc1, b/161809546).
  • Snackbar hat jetzt anpassbare Hintergrundfarben und Inhaltsfarben (I238f2, b/161804381)
  • Die Anpassungsparameter für Modifikator, backgroundColor, contentColor und scrimColor wurden zu den Drawers hinzugefügt (I23655, b/161804378).
  • Die zusammensetzbare Funktion state { ... } wurde verworfen und durch explizite Aufrufe von remember { mutableStateOf(...) } ersetzt. Dies reduziert die API-Oberfläche insgesamt und die Anzahl der Konzepte für die Statusverwaltung und entspricht dem Muster by mutableStateOf() für die Delegierung von Klassenattributen. (Ia5727)
  • Der Parameter für den Abstand der Schaltfläche wurde in „contentPadding“ umbenannt (Id252e, b/161809394).
  • Fügen Sie eine Wisch-To-Schließen-Komponente zu einer experimentellen Materialkomponente hinzu. (I129e5)

Fehlerkorrekturen

  • onChildPositioned und OnChildPositionedModifier wurden entfernt. Entwickler sollten im untergeordneten Layout stattdessen onPositioned und OnPositionedModifier verwenden. (I4522e, b/162109766)
  • „MergePolicy Lambda“ zu SemanticsPropertyKey hinzugefügt. Damit kann eine benutzerdefinierte Richtlinie für die Zusammenführung von „MergeAllDescendants“ definiert werden. Standardmäßig wird der übergeordnete Wert verwendet, falls dieser bereits vorhanden ist. Andernfalls wird der untergeordnete Wert verwendet. (Iaf6c4, b/161979921)
  • IntSize ist jetzt eine Inline-Klasse (I2bf42)
  • PlacementScope.placeAbsolute() wurde in PlacementScope.place() umbenannt und die vorherige PlacementScope.place() wurde in PlacementScope.placeRelative() umbenannt. Daher spiegelt die Methode PlacementScope.place() die Position in linksläufigen Kontexten nicht mehr automatisch wider. Wenn dies gewünscht ist, verwenden Sie stattdessen PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds wurde zugunsten von Rect eingestellt. Alle Verwendungen von PxBounds mit rect wurden aktualisiert und die korrekte Einstellung zum Verwerfen/Ersetzen durch Anmerkungen hinzugefügt, um die Migration zu erleichtern. (I37038, b/162627058)
  • RRect wurde in RoundRect umbenannt, um besser zu Zusammensetzungsmustern zu passen. Ähnliche Funktionskonstruktoren wie RRect und eingestellte RRect-Funktionskonstruktoren wurden erstellt (I5d325).

Version 0.1.0-dev16

5. August 2020

androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16 und androidx.compose.material:material-icons-extended:0.1.0-dev16 wurden veröffentlicht. Version 0.1.0-dev16 enthält diese Commits.

API-Änderungen

  • „Colors“ ist nun eine endgültige Klasse anstelle einer Schnittstelle. Anstatt eine benutzerdefinierte Implementierung zu erweitern und bereitzustellen, sollten Sie ein neues Ambient-Objekt für Ihr benutzerdefiniertes Designobjekt erstellen und über das neue Ambient-Objekt in Ihren Komponenten auf das Designobjekt zugreifen, ähnlich wie bei MaterialTheme intern. (Ibae84)
  • Umbenennung von ColorPalette in Colors, um das Farbsystem Material besser abzubilden und Unklarheiten darüber zu beseitigen, dass ColorPalette ein "generisches" Themenobjekt ist, anstatt eine spezifische Implementierung des Material-Farbsystems zu sein. Außerdem benennt „lightColorPalette“ und „darkColorPalette“ auch in „lightColors“ und „darkColors“ um. (I9e976, b/161812111)
  • Benennt den Parameter text von BottomNavigationItem in label um, onSelected in onSelect, activeColor in selectedContentColor und inactiveColor in unselectedContentColor und aktualisiert die Parameterreihenfolge, sodass er den Richtlinien entspricht. (Icb605, b/161809324)
  • Modifier.stateDraggable wurde vollständig überarbeitet und in „Modifier.swipeable“ umbenannt. Es wurde eine neue SwipeableState-Klasse eingeführt und DrawerState und BottomDrawerState wurden refaktoriert, um von ihr zu übernehmen. [Modal/Bottom]DrawerLayout verwendet keinen onStateChange-Parameter mehr. (I72332, b/148023068)
  • „fundation.shape.corner“-Pakete wurden zu „fundation.share“ vereinfacht (I46491, b/161887429).
  • Die Annotation ExperimentalMaterialApi wurde hinzugefügt. RippleTheme ist als experimentell gekennzeichnet (Ic5fa0, b/161784800)
  • Material FilledTextField wurde in TextField umbenannt und das grundlegende TextField in BaseTextField umbenannt, damit die einfachste gewünschte API leichter zu finden und zu verwenden ist (Ia6242, b/155482676).

Fehlerkorrekturen

  • „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen OnPositioned für das untergeordnete Element. (I87f95, b/162109766)
  • Umfangreiche API-Fehlerkorrekturen (I077bc)
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Die Klassen „Align Offset“ und „IntOffset“ für eine einheitliche API-Oberfläche
    3. Benennen Sie „IntOffset.Origin“ in „IntOffset.Zero“ um, um der Offset API zu entsprechen.
    4. Die nativeCanvas-Methode wurde aus der Canvas-Oberfläche verschoben, damit Nutzer ihre eigenen Canvas-Instanzen erstellen können.
    5. Die Stub-EmptyCanvas-Klasse wurde erstellt, um DrrawScope in einen Nicht-Null-Parameter anstelle von lateinit zu refaktorieren und eine Nicht-Null-Zulässigkeit des Felds zu gewährleisten.
    6. ClipOp-Enums wurden in Pascal Case umbenannt
    7. FilterQuality-Enums wurden in Pascal Case umbenannt
    8. Die StrokeJoin-Enums wurden in „Pascal Case“ umbenannt
    9. PointMode-Enums wurden in Pascal Case umbenannt
    10. PaintingStyle-Enums wurden in Pascal Case umbenannt
    11. PathFillType-Enums wurden in Pascal-Case-Schreibweise umbenannt
    12. Die StrokeCap-Enums wurden in „Pascal Case“ umbenannt
    13. Die DrawCache-Implementierung wurde so aktualisiert, dass latinit-Parameter nicht mehr verwendet werden.
    14. DrawScope aktualisiert, um die Lazy-Delegierung für die internen Parameter „fillPaint“ und „StrokePaint“ nicht mehr zu verwenden.
    15. Die zusammensetzbare Image-Funktion wurde aktualisiert, um die Nutzung von Box zu vermeiden und so den Aufwand zu reduzieren.
    16. Die Outline-Klasse wurde so aktualisiert, dass sie @Unmutable-Annotationen enthält.
    17. PathNode wurde aktualisiert und enthält nun @Immutable-Annotationen für jede Pfadanweisung.
    18. Die Vektorunterzusammensetzung wurde aktualisiert, um redundante bedingte Prüfungen auf Gleichheit zu entfernen, da sie in der Zusammensetzung bereits verarbeitet werden.
    19. Eingestellte Methoden des Companion-Konstruktors „Rect“ zugunsten von Funktionskonstruktoren
    20. Aktualisierte Brush-Klassen und Funktionskonstruktoren mit den APIs @Immutable und @Stable
    21. VertexMode-Enum wurde auf „PascalCase“ aktualisiert
    22. Wir haben die DrawScope selectPaint-Methode aktualisiert, damit Strichparameter der Farbdarstellung bedingt überschrieben werden, wenn sie sich geändert haben.
    23. „Größe“ wurde aktualisiert, um eine destruktive API hinzuzufügen, „UnspecificSize“ in „Nicht angegeben“ umzubenennen und nicht verwendete Methoden zu entfernen
  • Dialogfeld in Benutzeroberfläche verschieben (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture wurde entfernt. Verwenden Sie stattdessen SemanticsNodeInteraction.performGesture. (Id9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() wurde in SemanticsNodeInteraction.getUnclippedBoundsInRoot() umbenannt (Icafdf, b/161336532)
  • Die APIs für die Unterstützung von rechts nach links wurden aktualisiert. LayoutDirectionAmbient wurde hinzugefügt, mit dem sich die Layoutrichtung lesen und ändern lässt. Modifier.rtl und Modifier.ltr wurden entfernt. (I080b3)
  • Modifier.deternimateProgress wurde in Modifier.progressSemantics (I9c0b4) umbenannt.
  • Aktualisiert material-icons mit den neuesten Symbolen, die unter Material.io/icons hinzugefügt wurden (I4b1d3)
  • Legen Sie fest, dass Typ T explizit für „transitDefinition“ angegeben wird. (I1aded)
  • Modifier.plus wurde eingestellt. Verwende stattdessen Modifier.then. „Dann“ gibt ein stärkeres Signal für die Sortierung, verhindert aber auch die Eingabe von Modifier.padding().background() + anotherModifier, wodurch die Kette unterbrochen wird und schwerer zu lesen ist (Iedd58, b/161529964).
  • AndroidComposeTestRule wurde in „createAndroidComposeRule“ umbenannt. (I70aaf)
  • Fügen Sie isFocused() und isNotFocused() SemanticsMatcher hinzu. (I0b760)
  • BaseGestureScope.globalBounds, das nicht in Tests verwendet werden sollte, wurde entfernt. Verwenden Sie stattdessen die lokalen Koordinaten des Knotens, mit dem Sie interagieren. (Ie9b08)
  • Die Pop-up-Position auf ausgeschnittenen Displays wurde korrigiert. (Idd7dd)
  • "Modifier.drawBackground" wurde in "Modifier.background" (I13677) umbenannt.

Version 0.1.0-dev15

22. Juli 2020

androidx.compose.material:material:0.1.0-dev15, androidx.compose.material:material-icons-core:0.1.0-dev15 und androidx.compose.material:material-icons-extended:0.1.0-dev15 wurden veröffentlicht. Version 0.1.0-dev15 enthält diese Commits.

Abhängigkeiten aktualisieren

  • Wenn Sie die 0.1.0-dev15-Version von Compose verwenden möchten, müssen Sie Ihre Abhängigkeiten gemäß den neuen Code-Snippets aktualisieren, die oben unter Abhängigkeiten deklarieren gezeigt werden.

API-Änderungen

  • Die Anmerkung @Model wurde eingestellt. Verwenden Sie stattdessen state und mutableStateOf. Diese Entscheidung wurde nach sorgfältiger Diskussion getroffen.

    Begründung

    Die Begründung umfasst unter anderem:

    • Reduziert die API-Fläche und die Konzepte, die wir vermitteln müssen
    • Entspricht eher anderen Toolkits (Swift UI, React, Flutter)
    • Reversible Entscheidung. Wir können @Model später jederzeit wiederherstellen.
    • Die Verwendung von Sonderfällen und schwierig zu beantwortenden Fragen zur Konfiguration von @Model werden vermieden.
    • @Model-Datenklassen, Gleichheitszeichen, Hashcode usw.
    • Wie kann ich festlegen, dass einige Eigenschaften „beobachtet“ werden und andere nicht?
    • Wie lege ich für die Beobachtung die strukturelle im Vergleich zur referenziellen Gleichheit fest?
    • Reduziert die „Magie“ im System. Würde die Wahrscheinlichkeit verringern, dass jemand annimmt, dass das System schlauer ist als es ist (d. h. es weiß, wie eine Liste zu unterscheiden ist).
    • Sorgt für einen intuitiveren Detaillierungsgrad der Beobachtung.
    • Verbesserte Refaktorierbarkeit von Variable -> Eigenschaft in Klasse
    • Dadurch ergeben sich möglicherweise neue Möglichkeiten für speziell auf den jeweiligen Bundesstaat zugeschnittene Optimierungen
    • Passt sich besser an das restliche Ökosystem an und verringert die Ambiguität in Bezug auf einen unveränderlichen Zustand oder die „Akzeptanz eines veränderlichen Zustands“

    Migrationshinweise

    Nahezu alle bestehenden Verwendungen von @Model werden auf eine von zwei Arten relativ einfach umgewandelt. Im folgenden Beispiel wird die Klasse @Model mit zwei Eigenschaften verwendet und in einer zusammensetzbaren Funktion verwendet.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternative 1: Verwenden Sie State<OriginalClass> und erstellen Sie Kopien.

    Dieser Ansatz wird durch die Datenklassen von Kotlin erleichtert. Im Grunde genommen wandeln Sie alle zuvor var-Properties in val-Properties einer Datenklasse um und verwenden dann state anstelle von remember. Weisen Sie den Statuswert dann mithilfe der Datenklasse-copy(...)-Methode den geklonten Kopien des Originals zu.

    Wichtig: Dieser Ansatz funktioniert nur, wenn die einzigen Mutationen an dieser Klasse in demselben Bereich ausgeführt wurden, in dem die Instanz State erstellt wird. Wenn sich die Klasse intern außerhalb des Umfangs der Verwendung mutiert und Sie sich auf deren Beobachtung verlassen, ist der nächste Ansatz der von Ihnen zu verwendende Ansatz.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    Alternative 2: „mutableStateOf“ und Attributdelegate verwenden

    Dieser Ansatz wird durch die Attributdelegate von Kotlin und die mutableStateOf API erleichtert, mit der Sie MutableState-Instanzen außerhalb der Zusammensetzung erstellen können. Ersetzen Sie im Wesentlichen alle var-Properties der ursprünglichen Klasse durch var-Properties mit mutableStateOf als Property-Delegaten. Dies hat den Vorteil, dass sich die Verwendung der Klasse gar nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht vollständig identisch mit dem ursprünglichen Beispiel, da jetzt jede Property einzeln beobachtet/abonniert wird, sodass die Neuzusammensetzungen, die Sie nach dieser Refaktorierung sehen, möglicherweise enger gefasst werden könnten.

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143413}921413}3, 41413}

  • onFocusChange-Callback in Textfeldern wurde in onFocusChanged (Ida4a1) umbenannt

  • Der Parameter für Schwellenwerte wurde in stateDraggable hinzugefügt, um Schwellenwerte zwischen Ankern anzugeben. Damit wurde in der unteren Leiste ein Grenzwert von 56 dp festgelegt. Außerdem verwendet BottomDrawerLayout jetzt eine separate BottomDrawerState-Enum. (I533fa)

  • Entfernt den in der Vergangenheit verworfenen Modifier.ripple. Für „Anklickbar“ wird jetzt die Welle als Standardanzeige verwendet (wenn Sie in Ihrer App ein MaterialTheme-Element {} festgelegt haben). In den meisten Fällen können Sie die Ripple-Anzeige also kostenlos anzeigen lassen. Wenn Sie den Parameter „color“, „size“ oder „bounded“ für die Wellen anpassen möchten, können Sie manuell eine „RippleIndication“-Parameter erstellen und sie an „anklickbar“ als „indikationsparameter“ übergeben. (I663b2, b/155375067)

  • Die eingestellte Überschreibung der zusammensetzbaren Funktion „FilledTextField“ (I7f8f8) wurde entfernt.

  • Schaltflächenobjekt umbenennen (mit den von der Schaltflächenfunktion verwendeten Standardeinstellungen) in ButtonConstants (I7c5f7, b/159687878)

  • Der Inhaltsbereich der Schaltfläche verhält sich jetzt wie eine Zeile (nützlich, wenn Sie ein Symbol mit einem Text benötigen, siehe Beispiele für das Schreiben der Schaltfläche) (I0ff10, b/158677863).

  • „RadioGroup“ und „RadioGroupItem“ wurden eingestellt. Verwenden Sie „Box“ mit Modifier.selectable, Row und Column, um die richtigen Optionsfelder je nach Design auszuwählen (I7f5cf, b/149528535).

  • „Material Outlined Textfield“ wurde hinzugefügt (I1a518)

  • „androidx.ui.foundation.TextFieldValue“ und „androidx.ui.input.EditorValue“ wurden eingestellt. Die zusammensetzbaren Funktionen „TextField“, „FilledTextField“ und „CoreTextField“, die diesen Typ verwenden, wurden ebenfalls eingestellt. Verwenden Sie stattdessen androidx.ui.input.TextFieldValue (I4066d, b/155211005).

  • TabRow.TabPosition enthält keine Position in Dp, nicht in IntPx (I34a07, b/158577776)

  • Die Verwendung von „IntPx“ wurde durch „Int“ ersetzt. „IntPxPosition“ wurde durch „IntOffset“ ersetzt. IntPxSize durch IntSize ersetzt. (Ib7b44)

  • Wenn Sie die Anzahl der Klassen zur Darstellung von Größeninformationen konsolidieren möchten, sollten Sie die Verwendung der Klasse „Size“ anstelle von „PxSize“ standardisieren. Dies bietet die Vorteile einer Inline-Klasse, da ein „Long“ verwendet werden kann, um zwei Gleitkommawerte zu verpacken, um Breite und Höhe als Gleitkommazahlen darzustellen. (Ic0191)

  • Modifier.ripple wird eingestellt. Für „Anklickbar“ wird jetzt die Welle als Standardanzeige verwendet (wenn Sie in Ihrer App ein MaterialTheme-Element {} festgelegt haben). In den meisten Fällen können Sie die Ripple-Anzeige also kostenlos anzeigen lassen. Wenn Sie den Parameter „color“, „size“ oder „bounded“ für die Wellen anpassen möchten, können Sie manuell eine „RippleIndication“-Parameter erstellen und sie an „anklickbar“ als „indikationsparameter“ übergeben. (I101cd, b/155375067)

  • Die Scaffold API wurde überarbeitet: Einige Parameter haben ihren Namen geändert und zur besseren Anpassung neue Parameter hinzugefügt. Getter zu Abfragegrößen von Fab, TopBar und BottomBar hinzugefügt (I0e7ce)

  • Die Drop-down-Menü-Komponente wurde in ui-material hinzugefügt, einer Material Design-Menüimplementierung. (I9bb3d)

  • Softwaretastatur manuell mit SoftwareKeyboardController ein-/ausblenden (Ifb9d6, b/155427736)

  • Modifier.indication wurde zum Foundation-Paket hinzugefügt. Verwenden Sie dieses Symbol, um die Elemente durch Drücken bzw. Ziehen oder andere Elemente auf Ihren benutzerdefinierten interaktiven Elementen einzublenden (I8425f, b/155287131).

  • CanvasScope-Implementierungen wurden konsolidiert. Es gibt jetzt nur noch DrawScope und ContentDrawScope haben CanvasScope in DrawScope umbenannt. DrawScope wurde aktualisiert, um die Dichte-Schnittstelle zu implementieren und die LayoutDirection Deleted DrawScope Unterklasse in ContentDrawScope bereitzustellen. Painter und PainterModifier wurden aktualisiert, um eine RTL-Eigenschaft selbst nicht mehr zu verwalten.

  • Benennt Emphasis.understand() in Emphasis.applyEmphasis() (Iceebe) um

  • Deaktivierte Schaltflächen entsprechen jetzt visuell der Material Design-Spezifikation (I47dcb, b/155076924).

  • FilledTextField unterstützt Aktionen, visuelle Transformation und Tastatureingabe (I1f9cf, b/155075201)

  • Fügt dem CircularProgressIndicator-Parameter den Parameter „strokeWidth“ hinzu, um die Strichgröße anzupassen. Zum Ändern der Strichgröße (Höhe) eines LinearProgressIndicator-Elements können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)

  • Fügt dem CircularProgressIndicator-Parameter den Parameter „strokeWidth“ hinzu, um die Strichgröße anzupassen. Zum Ändern der Strichgröße (Höhe) eines LinearProgressIndicator-Elements können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)

  • Slot-API für nachgestellte und führende Symbole in FilledTextField und Behandlung des Fehlerstatus (Ic12e0) hinzugefügt

  • Die Standardfarbe der UAS und des erweiterten FAB wurde in MaterialTheme.colors.secondary geändert. (I3b9b9, b/154118816)

  • Alle Farbverwendungen, bei denen Nullwerte zulässig sind, in der API durch Werte ohne Nullwerte ersetzt und „Color.Unset“ anstelle von null (Iabaa7) verwendet

  • EdgeInsets wurde in „InnerPadding“ umbenannt. Der Parameter „innerPadding“ von „Material Buttons“ wurde in „Padding“ umbenannt. (I66165)

  • Der Schieberegler ist jetzt zustandslos. Nutzer müssen den Status wie bei anderen Steuerelementen selbst übergeben und aktualisieren. (Ia00aa)

  • StaticDrawer wurde entfernt. Bei Bedarf können Sie stattdessen Box mit der vom Material angegebenen Breite verwenden (I244a7).

  • Die Material Design-Implementierung des ausgefüllten Textfelds wurde hinzugefügt (Ic75cd).

  • Ein Modifikatorparameter wurde zu ListItem und neu angeordneten Parametern hinzugefügt, um den abschließenden Lambda-Text hochzustufen (I66e21).

  • Fügt den Konstruktorparameter „defaultFontFamily“ zur Typografie hinzu, sodass die Standardschriftfamilie angegeben werden kann, die für alle angegebenen TextStyles ohne Familienanordnung verwendet wird. (I89d07)

  • Material-Datentabellen wurden vorübergehend von der API-Oberfläche entfernt. (Iaea61)

  • Umbenannte Parameter in der zusammensetzbaren Funktion „Trennlinie“ (Ic4373)

  • Kinder (Ia6d19)

  • Entfernt MaterialTheme.emphasisLevels. Verwenden Sie stattdessen EmphasisAmbient.current, um die Hervorhebungsstufen abzurufen (Ib5e40).

  • Das Formthema-System wird gemäß der Material Design-Spezifikation aktualisiert. Sie können jetzt kleine, mittlere und große Formen für die meisten Komponenten angeben (Ifb4d1).

  • MaterialTheme-APIs wie MaterialTheme.colors() und MaterialTheme.typography() wurden in Eigenschaften und nicht in Funktionen geändert. Entfernen Sie Klammern aus vorhandenen Aufrufen. Es ist keine Verhaltensänderung zu erwarten. (I3565a)

  • FloatingActionButton APIs wurden überarbeitet, um zusammensetzbare Lambdas anstelle von Primitiven zu akzeptieren. Informationen zur Verwendung finden Sie in den aktualisierten Beispielen. (I00622)

  • Parameter enabled zu Kästchen, Schalter und Umschaltbar hinzufügen (I41c16)

  • Welle ist jetzt ein Modifikator. Die anklickbare Schaltfläche wurde noch nicht konvertiert, die empfohlene Verwendung ist Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763).

  • Oberfläche und Karte wurden von androidx.ui.material.surface nach androidx.ui.material verschoben (I88a6d, b/150863888)

  • Schaltfläche, FloatingActionButton und Clickable haben jetzt einen separaten enabled-Parameter. Einige Parameter der Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)

  • Umbenennung von „Image“ in „ImageAsset“, um den Unterschied zwischen den Bilddaten und der neuen zusammensetzbaren Funktion „Bild“ für das Layout und das Zeichnen von Inhalten besser zu unterscheiden. _Body:Erstellte Erweiterungsmethode auf android.graphics.Bitmap, Bitmap.asImageAsset(), um eine Instanz eines ImageAsset zu erstellen, das sich für die Kombination der traditionellen Android-Anwendungsentwicklung mit dem Compose-Framework eignet (Id5bbd)

  • Snackbar API mit String-Parametern wurde entfernt, um die Überlastung zu empfehlen, die zusammensetzbare Lambdas akzeptiert. Aktualisierte Beispiele für Nutzungsinformationen (I55f80)

  • Überarbeitete Tab-APIs zur Annahme von text- und icon-Lambdas (Ia057e)

  • Die BottomNavigation-Komponente wurde hinzugefügt. Weitere Informationen finden Sie in den Dokumenten und Beispielen (I731a0).

  • Symbol, IconButton und IconToggleButton hinzugefügt, wodurch AppBarIcon entfernt wurde. Sie können vorhandene Verwendungen von AppBarIcon direkt durch IconButton ersetzen, und diese haben jetzt das richtige Berührungsziel. Informationen zur Verwendung findest du in den Beispielen und in den Symbolen für die bereitgestellten Material Icons, die du direkt mit diesen Komponenten verwenden kannst. (I96849)

  • ButtonStyle wurde durch eindeutige Funktionen ersetzt und Textüberlastung (String) beseitigt. Informationen zur Nutzung finden Sie in den aktualisierten Beispielen. (If63ab, b/146478620, b/146482131)

  • Border-Modifikator in DrawBorder umbenennen (I8ffcc)

  • LayoutCoordinates weist keine Positionseigenschaft mehr auf. Die Eigenschaft "position" ist im Hinblick auf LayoutModifiers, Rotation oder Skalierung nicht sinnvoll. Stattdessen sollten Entwickler die Elemente „parentCoordinates“ und „childToLocal()“ verwenden, um die Transformation von LayoutCoordinate in eine andere zu berechnen.

    LayoutCoordinates verwendet für die Größeneigenschaft IntPxSize anstelle von PxSize. Bei Layouts werden für Layouts ganze Pixelgrößen verwendet. Daher sollten für alle Layoutgrößen Ganzzahlen und keine Gleitkommawerte verwendet werden. (I9367b)

  • Wichtige Änderungen an der Ambients API. Weitere Informationen finden Sie in der Protokoll- und Ambient<T>-Dokumentation (I4c7ee, b/143769776).

  • Die Komponente „Gerüstmaterial“ wurde hinzugefügt. Gerüst implementieren (I7731b)

  • DrawBorder ersetzt Border Modifier (Id335a)

Fehlerkorrekturen

  • FocusModifizierer wurde zugunsten von Modifier.focus, Modifier.focusRequester, Modifier.focusObserver eingestellt. FocusState und FocusDetailState wurden zugunsten von FocusState2 eingestellt (I46919, b/160822875, b/160922136).
  • VerticalScroller und HoriziontalScroller wurden eingestellt. Verwende ScrollableColumn und ScrollableRow, um integrierte Funktionen mit Spalten-/Zeilenverhalten und -parametern zu nutzen, oder Modifier.verticalScroll und Modifier.horizontalScroll für dein eigenes Element. In ähnlicher Weise wurde ScrollerPosition zugunsten von ScrollState verworfen (I400ce, b/157225838, b/149460415, b/154105299).
  • Die APIs Modifier.draggable und Modifier.scrollable wurden überarbeitet. DragDirection wurde zugunsten der Ausrichtung entfernt. Der Status, der für „scrollable“ erforderlich ist, wurde vereinfacht. ScrollableState wurde in ScrollableController umbenannt (Iab63c, b/149460415).
  • runOnIdleCompose umbenannt in runOnIdle (I83607)
  • Semantische Einzelwert-Attribute verwenden jetzt einen aufrufenden Stil. Beispiel: „Semantik {hidden = true }“ wird jetzt so geschrieben: „Semantik {hidden() }“. (Ic1afd, b/145951226, b/145955412)
  • Mehrere Test-APIs wurden umbenannt, um die Benutzerfreundlichkeit zu verbessern. Alle „findXYZ“ APIs wurden in „onNodeXYZ“ umbenannt. Alle doXYZ APIs wurden in „performanceXYZ“ umbenannt. (I7f164)
  • Die Transition API wurde geändert, um einen TransitionState zurückzugeben, anstatt ihn an untergeordnete Elemente zu übergeben. Dadurch erhöht sich die Einheitlichkeit der API mit animate()-APIs. (I24e38)
  • Eine IntBounds-Einheitenklasse wurde hinzugefügt, die Ganzzahl-Pixel-Grenzen aus dem Layout darstellt. Die API von PopPositionProvider wurde aktualisiert, um sie zu verwenden. (I0d8d0, b/159596546)
  • Den Testfindern wurde das neue optionale Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
  • Veraltete APIs für Größentests wurden entfernt. (Iba0a0)
  • Die Inline-Klasse „Shader“ wurde entfernt, die die Erwartungsklasse von NativeShader umschlossen hat. „NativeShader“ wurde in „Shader“ umbenannt. Die gepackte Shader-Inline-Klasse hat der API-Oberfläche keine wertvollen Daten hinzugefügt und war eine Inline-Klasse. Verwenden Sie die NativeShader-Klasse daher direkt. (I25e4d)
  • Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextabhängige MaterialTheme (Ia3665, b/156527485).
  • Das Drop-down-Menü für Material kann jetzt gescrollt werden. (Ide699)
  • Der Layout-Richtungsparameter wurde aus dem Messungsblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch innerhalb des Callbacks über das Messwertbereich-Objekt (Ic7d9d) verfügbar.
  • Verwenden Sie in den APIs der obersten Ebene AnimationSpec anstelle von AnimationBuilder, um das Konzept der Spezifikation für statische Animationen zu verdeutlichen. - Verbessern Sie die Übergangs-DSL, indem Sie die Lambda-Anforderung zum Erstellen von AnimationSpecs wie Tween, Feder verwenden. Stattdessen werden Konstruktorparameter direkt übernommen. – Verbessern der allgemeinen Nutzerfreundlichkeit von AnimationSpec, die Konstruktoren öffnet, anstatt sich auf Builder zu verlassen. – Ändern Sie die Dauer und Verzögerung für KeyFrames und "Tween" in "Int". Dadurch werden unnötige Typumwandlungen und eine Methodenüberlastung vermieden (zur Unterstützung von Long und Int). (Ica0b4)
  • Der Schalter wird jetzt deaktiviert, wenn enabled auf „false“ gesetzt ist (If4624, b/155941869, b/159331694).
  • "Modifier.tag" wurde in "Modifier.layoutId" umbenannt, um eine Verwechslung mit "Modifier.testTag" zu vermeiden. I995f0.
  • Die Ganzzahlpositionen der Ausrichtungslinie, die von Placeable#get(AlignmentLine) zurückgegeben werden, sind jetzt nicht null. Wenn die abgefragte Ausrichtungslinie fehlt, wird „AlignLine.Unspecific“ zurückgegeben. (I896c5, b/158134875)
  • Die Radiusklasse wurde in eine Inline-Klasse umgewandelt. Methoden zum Erstellen von Companion-Anzeigen wurden entfernt. Stattdessen wurde der Funktionskonstruktor mit Standardparametern entfernt, sodass der Radius entlang der Y-Achse mit dem des erforderlichen Radius-Parameters für die x-Achse übereinstimmt.

    DrawScope.drawRoundRect wurde so aktualisiert, dass ein einziger Radius-Parameter anstelle von zwei separaten Gleitkommawerten für den Radius entlang der x- und y-Achse verwendet wird (I46d1b).

  • Um die Anzahl der Klassen zur Darstellung von Positionierungsinformationen zu konsolidieren, sollten Sie die Verwendung der Offset-Klasse anstelle von PxPosition standardisieren. Dies bietet die Vorteile einer Inline-Klasse: Sie kann einen Long-Wert verwenden, um zwei Gleitkommawerte zu packen, um x- und y-Offsets als Gleitkommazahlen darzustellen. (I3ad98)

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen des umfangreichen Refaktorierungsaufwands ersetzt, bei dem nur Dp- und primitive Typen für Pixelparameter verwendet wurden. Px-Klasse vollständig gelöscht (I3ff33)

  • Die ein-/ausschaltbare Komponente wurde eingestellt. Stattdessen Modifier.toggleable verwenden (I35220, b/157642842)

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen des umfangreichen Refaktorierungsaufwands ersetzt, bei dem für Pixelparameter nur der Dp-Wert und primitive Typen verwendet wurden (I086f4).

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen des umfangreichen Refaktorierungsaufwands ersetzt, bei dem nur Dp- und primitive Typen für Pixelparameter verwendet wurden (Id3434).

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen des umfangreichen Refaktorierungsaufwands ersetzt, bei dem für Pixelparameter nur der Dp-Wert und primitive Typen verwendet wurden (I97a5a).

  • Ein Problem wurde behoben, das deaktiviert werden konnte, wenn für DropdonMenuItems nicht aufgerufen wurde. (I3998b, b/157673259)

  • MutuallyexklusivSetItem wurde eingestellt. Verwende stattdessen Modifier.selectable. (I02b47, b/157642842)

  • TestTag wurde eingestellt. Verwende stattdessen Modifier.testTag. (If5110, b/157173105)

  • Der Cursor von TextField hat eine blinkende Animation (Id10a7).

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen der umfangreichen Refaktorierungsversuche ersetzt, bei denen für Pixelparameter nur der Dp-Wert und primitive Typen verwendet wurden (I19d02).

  • VerticalScroller stellt die Spalte jetzt standardmäßig zur Verfügung. HorizontalScroller stellt jetzt eine Zeile aus dem Feld bereit. (Ieca5d, b/157020670)

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen des umfangreichen Refaktorierungsaufwands ersetzt, bei dem nur Dp und primitive Typen für Pixelparameter verwendet wurden (Iede0b).

  • Die Einstellung von Modifier.semantics wurde eingestellt, um die Verwendung von übergeordneten Komponenten zu ermöglichen. (I4cfdc)

  • Die DrawLayer-Modifikator-API wurde geändert: outlineShape wurde in „shape“ umbenannt und hat den Standardwert „RectangleShape“ und darf jetzt keine Null-Werte sein; „clipToOutline“ wurde in „clip“ umbenannt; „clipToBounds“ wurde entfernt, da es sich um das Gleiche wie „clip == true“ mit RectangleShape (I7ef11, b/155075735) handelt

  • Die APIs der höheren Ebene, die ein Canvas zur Freigabe von CanvasScope bereitstellen, wurden aktualisiert. Nutzer müssen dann ihre eigenen Paint-Objekte nicht mehr verwalten. Nutzer, die weiterhin Zugriff auf einen Canvas benötigen, können die DrawCanvas-Erweiterungsmethode verwenden. Diese bietet einen Callback, mit dem Zeichenbefehle mit dem zugrunde liegenden Canvas ausgeführt werden können. (I80afd)

  • Die zusammensetzbare Funktion „AlignLineOffset“ wurde eingestellt. Verwenden Sie stattdessen den Modifikator „relativePaddingFrom()“. Die zusammensetzbare Funktion „CenterAlignmentLine“ wurde entfernt. (I60107)

  • Die nachgelagerte Lambda API WithConstraints wurde geändert. Statt zwei Parametern gibt es nun einen Empfängerbereich, der neben den Einschränkungen und layoutDirection der Eigenschaften minWidth, maxWidth, minHeight und maxHeight in Dp definiert ist (I91b9a, b/149979702)

  • Der Layoutmodifikator „defaultMinSizeConstraints“ wurde hinzugefügt, der Größenbeschränkungen für das umschlossene Layout nur dann festlegt, wenn die eingehenden entsprechenden Einschränkungen nicht angegeben sind (0 für minimale Einschränkungen und unendlich für maximale Einschränkungen). (I311ea, b/150460257)

  • „FocusManagerAmbient“ wurde entfernt. Verwenden Sie FocusModifier.requestFocus, um den Fokus zu erhalten. (Ic4826)

  • Es wurde eine CanvasScope API erstellt, die ein Canvas-Objekt umschließt, um eine zustandslose, deklarative Zeichen-API-Oberfläche freizugeben. Transformationen sind in ihrem eigenen Empfängerbereich enthalten, und Größeninformationen werden ebenfalls auf die entsprechenden Einfügungsgrenzen beschränkt. Ein Nutzer muss kein eigenes Paint-State-Objekt zum Konfigurieren von Zeichenvorgängen verwalten.

    CanvasScopeSample wurde hinzugefügt und die Demo-App wurde um eine deklarative Grafikdemo ergänzt (Ifd86d).

  • Anpassung der Cursorfarbe für TextField (I6e33f)

  • Wenn TextFieldValue mit TextField verwendet wird, kann es jetzt auch in einem der folgenden Weise neu erstellt werden: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • LayoutModifier2 wurde in LayoutModifier umbenannt. (Id29f3)

  • Die eingestellte LayoutModifier-Oberfläche wurde entfernt. (I2a9d6)

  • Für die Einbindung in das Fokus-Subsystem wurde der Parameter „CoreTextField/TextFieldfocusIdentifier“ durch „FocusNode“ ersetzt. (I7ea48)

  • Die intrinsischen Messfunktionen in Layout und LayoutModifier2 verfügen jetzt über einen IntrinsicMeasureScope-Empfänger, der eine intrinsische Abfrage-API mit implizit weitergegebener Layoutrichtung bietet. (Id9945)

  • Die neue Funktion Modifier.zIndex() wurde hinzugefügt, um die Zeichenreihenfolge der untergeordneten Elemente innerhalb desselben übergeordneten Layouts zu steuern. Die Elevation-Eigenschaft von DrawLayerModifier wurde in shadowElevation umbenannt und steuert nicht mehr die Zeichenreihenfolge. Die Reihenfolge der Parameter für DrawShadow wurde geändert: Elevation ist jetzt die erste und die Form die zweite, mit Standard-RectangleShape-Wert. (I20150, b/152417501)

  • RectangleShape wurde von androidx.ui.foundation.shape.* nach androidx.ui.graphics.* (Ia74d5, b/154507984)

  • TextField API-Update – onFocus- und onBlur-Callbacks zu einem einzigen onFocusChange(Boolean)-Callback mit Parameter (I66cd3) zusammengeführt

  • Die Parameter verticalGravity und horizontalGravity wurden für Row bzw. Spalte hinzugefügt. (I7dc5a)

  • „wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert, sodass jetzt eine vertikale oder horizontale Ausrichtung anstelle einer Ausrichtung erwartet wird. Der Gravitationsmodifikator wurde aktualisiert, um die vertikale oder horizontale Ausrichtung zu akzeptieren. Die Zeilen-, Spalten- und Filterlisten wurden aktualisiert, um benutzerdefinierte kontinuierliche Ausrichtungen zu unterstützen. (Ib0728)

  • Die PixelMap API wurde erstellt, um die Abfrage von Pixelinformationen aus einem ImageAsset zu unterstützen. (I69ad6)

  • Entfernt ProvideContentColor, stattdessen aber einfach ContentColorAmbient direkt mit Providers (Iee942) verwenden

  • Das Modul „ui-text-compose“ wurde in „ui-text“ umbenannt. „ui-text“ enthält jetzt die zusammensetzbaren Funktionen von CoreText und CoreTextField (Ib7d47).

  • Das Modul "ui-text" wird in "ui-text-core" (I57dec) umbenannt.

  • Die zusammensetzbaren Funktionen „ui-framework/CoreText“ und „CoreTextField“ wurden nach „ui-text-compose“ verschoben. Vielleicht möchten Sie „ui-text-compose“ in Ihr Projekt einbinden. (I32042)

  • DrawModifier API verbessern:

    • Der Empfängerbereich fürdraw() ContentDrawScope wurde erstellt.
    • Alle Parameter fürdraw() wurden entfernt
    • DrawScope hat die gleiche Oberfläche wie das frühere CanvasScope
    • ContentDrawScope verfügt über die MethodedrawContent() (Ibaced, b/152919067).
  • runOnIdleCompose und runOnUiThread sind jetzt globale Funktionen anstelle von Methoden in ComposeTestRule. (Icbe8f)

  • [Mutable]Die Stellvertreter-Operatoren für Status-Properties wurden in Erweiterungen verschoben, um die Optimierung von Property-Delegaten für Kotlin 1.4 zu unterstützen. Aufrufer müssen Importe hinzufügen, um by state { ... } oder by mutableStateOf(...) weiterhin verwenden zu können. (I5312c)

  • „positionInParent“ und „boundsInParent“ für LayoutCoordinates wurden hinzugefügt. (Icacdd, b/152735784)

  • ColoredRect wurde eingestellt. Verwenden Sie stattdessen Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)

  • LayoutResult wurde in MeasureResult umbenannt. (Id8c68)

  • LayoutModifier2 wurde hinzugefügt, eine neue API zum Definieren von Layout-Modifikatoren; „LayoutModifier2“ wurde eingestellt (If32ac)

  • Der Operator "Modifier Plus" wurde durch Erweiterungsfunktionen auf Werkseinstellungen ersetzt (I225e4).

  • Ziehbares Element wurde in Modifikator verschoben (Id9b16, b/151959544)

  • Die zusammensetzbare Funktion „ParentData“ wurde eingestellt. Sie sollten entweder einen Modifikator erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder einen LayoutTag-Modifikator, wenn Sie einfach untergeordnete Layout-Tags taggen müssen, um sie im Messwertblock zu erkennen. (I51368, b/150953183)

  • Eingestellte zusammensetzbare Funktion aus dem Center. Er sollte entweder durch den Modifikator „LayoutSize.Fill + LayoutAlign.Center“ oder durch eine der zusammensetzbaren Funktionen „Box“ oder „Stack“ mit entsprechenden Modifikatoren ersetzt werden (Idf5e0).

  • Die VectorPainter API wurde hinzugefügt, um die vorhandene Subcomposition API für Vektorgrafiken zu ersetzen. Das Ergebnis der Unterzusammensetzung ist ein VectorPainter-Objekt anstelle eines DrrawModifier. Wir haben vorherige DrawVector-Funktionen zugunsten von VectorPainter eingestellt.

    Image(Painter) API wurde in PaintBox(Painter) umbenannt Erstellte Vektor-zusammensetzbare Funktion, die sich wie die zusammensetzbare Bild-Funktion verhält, außer mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271).

  • LayoutFlexible wurde in LayoutWeight umbenannt. Enger zu füllender Parameter wurde umbenannt. (If4738)

  • RepaintBoundary zugunsten von DrawLayerModifier (I00aa4) entfernt

  • DrawVector wurde von einer regulären zusammensetzbaren Funktion in die Rückgabe einer ModifierdrawVector()-Funktion geändert, die den Vektor als Hintergrund in einem Layout zeichnet. (I7b8e0)

  • Die zusammensetzbare Funktion „Deckkraft“ wurde durch den Modifikator „drawOpacity“ ersetzt. (I5fb62)

  • Ersetzen Sie die zusammensetzbare Funktion „Clip“ durch den Modifikator „drawClip()“. „DawClipToBounds“ ist ein praktischer Modifikator, der verwendet werden kann, wenn Sie nur die Ebenengrenzen mit einer Rechteckform beschneiden müssen. (If28eb)

  • Die zusammensetzbare Funktion „DawShadow“ wurde durch den Modifizierer „drawShadow()“ ersetzt. Schatten werden jetzt als Teil von LayerModifier gezeichnet. (I0317a)

  • LayerModifier, ein Modifikator, der das Hinzufügen eines RenderNode für ein Layout ermöglicht, wurde hinzugefügt. Damit lassen sich Beschneidung, Deckkraft, Drehung, Skalierung und Schatten festlegen. Dadurch wird RepaintBoundary ersetzt. (I7100d, b/150774014)

  • „androidx.compose.ViewComposer“ wurde nach „androidx.ui.node.UiComposer“ verschoben androidx.compose.Emittable wurde entfernt. Es war durch ComponentNode redundant. androidx.compose.ViewAdapters wurde entfernt. Sie werden nicht mehr unterstützt. Compose.composeInto wurde eingestellt. Verwende stattdessen setContent oder setViewContent. „Compose.disposeComposition“ wurde eingestellt. Verwenden Sie stattdessen die Methode dispose für Composition, die von setContent zurückgegeben wird. androidx.compose.Compose.subcomposeInto wurde nach androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt umbenannt in ComponentNode#insertAt ComponentNode#emitRemoveAt wurde in Component#removeAt Component0Node#emitMode umbenannt in androidx.ui.core.subcomposeIntoNode#emitInsertAt wurde in ComponentNode#insertAt umbenannt.

  • Erstellt eine zusammensetzbare Bild-Funktion, die zusätzlich zum Zeichnen eines bestimmten Bild-Assets auf dem Bildschirm auch die Größe und das Layout verarbeitet. Diese zusammensetzbare Funktion unterstützt auch das Zeichnen jeder beliebigen Painter-Instanz unter Berücksichtigung ihrer intrinsischen Größe sowie die Unterstützung einer bestimmten festen Größe oder Mindestgröße (Ibcc8f).

  • Einstellung der zusammensetzbaren Funktion „Umbruch“. Er kann entweder durch den Modifikator „LayoutAlign“ oder durch die zusammensetzbare Funktion „Stack“ ersetzt werden (Ib237f).

  • WithConstraints hat LayoutDirection-Parameter erhalten (I6d6f7)

  • Die Layoutrichtung wurde vom übergeordneten Layoutknoten an untergeordnete Elemente weitergegeben. Modifikator für die Layoutrichtung hinzugefügt. (I3d955)

  • Die Stack-Komponente unterstützt die Schreibrichtung von rechts nach links (Ic9e00).

  • Die zusammensetzbare Funktion „DrawShape“ wurde entfernt. Verwende stattdessen den Modifikator DrawBackground. (I7ceb2)

  • Unterstützung von rechts nach links im LayoutPadding-Modifikator (I9e8da)

  • AdapterList wurde hinzugefügt, eine scrollbare Listenkomponente, die nur die sichtbaren Elemente zusammensetzt und darstellt. Derzeit bekannte Probleme bestehen darin, dass es nur vertikal ist und nicht alle Fälle von Änderungen an seinen untergeordneten Elementen vollständig verarbeitet. (Ib351b)

  • Das Flag ComposeFlags.COMPOSER_PARAM wurde in true geändert. Dadurch wird die Strategie zur Codegenerierung für das „compose“-Plug-in geändert. Auf übergeordneter Ebene führt dies dazu, dass @Composable-Funktionen mit einem zusätzlichen synthetischen Parameter generiert werden, der an nachfolgende @Composable-Aufrufe übergeben wird, damit die Laufzeit die Ausführung ordnungsgemäß verwaltet. Dies ist eine erhebliche Änderung beim Binärcode, die jedoch bei jeder genehmigten Verwendung von „compose“ die Kompatibilität auf Quellebene aufrechterhalten sollte. (I7971c)

  • Canvas-Komponente hinzugefügt. Diese zusammensetzbare Funktion nimmt eine gewisse Größe ein (vom Nutzer bereitgestellt) und ermöglicht das Zeichnen mit CanvasScope (I0d622).

  • Density und DensityScope wurden in einer Schnittstelle zusammengeführt. Anstelle von „AmbientDensity()“ kannst du jetzt „DensityAmbient.current“ verwenden. Anstelle von withDensity(density) nur mit(density) (I11cb1)

  • LayoutCoordinates wurde geändert, um ProvidedAlignmentLines als Set anstelle einer Karte zu definieren und LayoutCoordinates zu implementieren, um stattdessen den get()-Operator zum Abrufen eines Werts zu implementieren. So ist es für Modifikatoren einfacher, einen oder mehrere Werte des Satzes zu ändern, ohne für jeden Modifikator eine neue Sammlung zu erstellen. (I0245a)

  • Scroller zeigen nun natives Schleuder-Bewegungsverhalten von Android. (I922af, b/147493715)

  • Verbesserungen an der API-Oberfläche von Einschränkungen (I0fd15)