Material erstellen

Jetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der Einstiegspunkt auf höherer Ebene für Compose. Er soll Komponenten bereitstellen, die den auf www.material.io beschriebenen Komponenten entsprechen.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
2. Juli 2025 1.8.3 - 1.9.0-beta02 -

Struktur

Compose ist eine Kombination aus 7 Maven-Gruppen-IDs innerhalb von androidx. Jede Gruppe enthält eine bestimmte Teilmenge von Funktionen mit jeweils eigenen Versionshinweisen.

In dieser Tabelle werden die Gruppen erläutert und es sind Links zu den jeweiligen Versionshinweisen enthalten.

GruppeBeschreibung
compose.animationAnimationen in Jetpack Compose-Anwendungen erstellen, um die Nutzerfreundlichkeit zu verbessern.
compose.compiler@Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in ermöglichen
compose.foundationMit den einsatzbereiten Bausteinen können Sie Jetpack Compose-Anwendungen schreiben und die Grundlage erweitern, um eigene Designsystemkomponenten zu erstellen.
compose.materialJetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der Einstiegspunkt auf höherer Ebene für Compose. Er soll Komponenten bereitstellen, die den auf www.material.io beschriebenen Komponenten entsprechen.
compose.material3Mit Material Design 3-Komponenten, der nächsten Generation von Material Design, können Sie Jetpack Compose-UIs erstellen. Material 3 umfasst aktualisierte Designs und Komponenten sowie Material You-Personalisierungsfunktionen wie dynamische Farben. Es ist auf den neuen visuellen Stil und die System-UI von Android 12 abgestimmt.
compose.runtimeGrundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die Core-Laufzeit für das Compose Compiler-Plug-in.
compose.uiGrundlegende Komponenten der Compose-Benutzeroberfläche, die für die Interaktion mit dem Gerät erforderlich sind, einschließlich Layout, Zeichnen und Eingabe.

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Compose hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.9

Version 1.9.0-beta02

2. Juli 2025

androidx.compose.material:material-*:1.9.0-beta02 wird veröffentlicht. Version 1.9.0-beta02 enthält diese Commits.

Version 1.9.0-beta01

18. Juni 2025

androidx.compose.material:material-*:1.9.0-beta01 wird veröffentlicht. Version 1.9.0-beta01 enthält diese Commits.

Fehlerkorrekturen

  • Hyperlinks in Text(AnnotatedString) haben jetzt standardmäßig das Material-Design. (I0e8ed, b/339843816)

Version 1.9.0-alpha04

4. Juni 2025

androidx.compose.material:material-*:1.9.0-alpha04 wird veröffentlicht. Version 1.9.0-alpha04 enthält diese Commits.

Version 1.9.0-alpha03

20. Mai 2025

androidx.compose.material:material-*:1.9.0-alpha03 wird veröffentlicht. Version 1.9.0-alpha03 enthält diese Commits.

Version 1.9.0-alpha02

7. Mai 2025

androidx.compose.material:material-*:1.9.0-alpha02 wird veröffentlicht. Version 1.9.0-alpha02 enthält diese Commits.

Version 1.9.0-alpha01

23. April 2025

androidx.compose.material:material-*:1.9.0-alpha01 wird veröffentlicht. Version 1.9.0-alpha01 enthält diese Commits.

Geändertes Verhalten

  • Für Lint-Prüfungen, die mit Compose ausgeliefert werden, ist jetzt mindestens AGP-Version 8.8.2 erforderlich. Wenn Sie AGP nicht aktualisieren können, können Sie stattdessen Lint aktualisieren, indem Sie android.experimental.lint.version=8.8.2 (oder eine neuere Version) in Ihrer gradle.properties verwenden. Um Compose-Lint-Prüfungen in der IDE auszuführen, ist Android Studio Ladybug oder höher erforderlich.

API-Änderungen

  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
  • Die APIs für die Dekoration von Textfeldern sind nicht mehr experimentell (I7480f, b/269651160)
  • runWithTimingDisabled wird zugunsten von runWithMeasurementDisabled eingestellt, da das Verhalten dort deutlicher beschrieben wird: Alle Messwerte werden pausiert. Außerdem wird die MicrobenchmarkScope-Superklasse verfügbar gemacht, da die runWithMeasurementDisabled-Funktion nicht neu deklariert werden kann, um den Zugriff zu öffnen, da sie inline ist. (I9e23b, b/389149423, b/149979716)

Fehlerkorrekturen

  • ExposedDropdownMenu ist binärkompatibel mit älteren Versionen. (I133f7)
  • Ein Absturz bei den Fortschritts- und Ladesymbolen wurde behoben, wenn Float.NaN als Fortschrittswert übergeben wurde. (I4fa96, b/352364576)

Version 1.8

Version 1.8.3

18. Juni 2025

androidx.compose.material:material-*:1.8.3 wird veröffentlicht. Version 1.8.3 enthält diese Commits.

Version 1.8.2

20. Mai 2025

androidx.compose.material:material-*:1.8.2 wird veröffentlicht. Version 1.8.2 enthält diese Commits.

Version 1.8.1

7. Mai 2025

androidx.compose.material:material-*:1.8.1 wird veröffentlicht. Version 1.8.1 enthält diese Commits.

Version 1.8.0

23. April 2025

androidx.compose.material:material-*:1.8.0 wird veröffentlicht. Version 1.8.0 enthält diese Commits.

Version 1.8.0-rc03

9. April 2025

androidx.compose.material:material-*:1.8.0-rc03 wird veröffentlicht. Version 1.8.0-rc03 enthält diese Commits.

Version 1.8.0-rc02

26. März 2025

androidx.compose.material:material-*:1.8.0-rc02 wird veröffentlicht. Version 1.8.0-rc02 enthält diese Commits.

Version 1.8.0-rc01

12. März 2025

androidx.compose.material:material-*:1.8.0-rc01 wird veröffentlicht. Version 1.8.0-rc01 enthält diese Commits.

Version 1.8.0-beta03

26. Februar 2025

androidx.compose.material:material-*:1.8.0-beta03 wird veröffentlicht. Version 1.8.0-beta03 enthält diese Commits.

Version 1.8.0-beta02

12. Februar 2025

androidx.compose.material:material-*:1.8.0-beta02 wird veröffentlicht. Version 1.8.0-beta02 enthält diese Commits.

Version 1.8.0-beta01

29. Januar 2025

androidx.compose.material:material-*:1.8.0-beta01 wird veröffentlicht. Version 1.8.0-beta01 enthält diese Commits.

Version 1.8.0-alpha08

15. Januar 2025

androidx.compose.material:material-*:1.8.0-alpha08 wird veröffentlicht. Version 1.8.0-alpha08 enthält diese Commits.

Fehlerkorrekturen

  • Fügt displayCutout der Gruppe von Insets hinzu, die Material-Komponenten standardmäßig berücksichtigen, um zu verhindern, dass sich Inhalte mit dem Displayausschnitt überschneiden.
    • Dies ist eine Verhaltensänderung, die sich darauf auswirkt, wie Komponenten, die Insets berücksichtigen, in der Nähe eines Displayausschnitts funktionieren. Dazu gehören der Standardwert des Parameters WindowInsets für inset-aware Material 3-Komponenten und die in der Komponente angegebenen WindowInsets-Werte.
    • Standardobjekte für Material 2 und Material 3. Wenn diese Änderung zu unerwünschtem Verhalten führt, geben Sie den Parameter WindowInsets manuell für jede Komponente an. (I43ee9, b/362508045)
  • Die Aktivität, die als Host für das zu testende Composable verwendet wird, wenn ComposeContentTestRule.setContent verwendet wird, verwendet jetzt das Theme Theme.Material.Light.NoActionBar, um zu vermeiden, dass sich ActionBar mit Testinhalten überschneidet, wenn SDK 35 als Ziel-SDK verwendet wird. Wenn Sie dieses Verhalten deaktivieren möchten, können Sie die Abhängigkeit von ui-test-manifest entfernen und in der AndroidManifest.xml Ihrer Test-App einen Aktivitätseintrag für ComponentActivity mit dem gewünschten Design hinzufügen. (I7ae1b, b/383368165)

Externe Beiträge

  • sheetGesturesEnabled in ModalBottomSheetLayout verfügbar machen. (I3f032, b/329543529)

Version 1.8.0-alpha07

11. Dezember 2024

androidx.compose.material:material-*:1.8.0-alpha07 wird veröffentlicht. Version 1.8.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem Größenmodifikatoren für Textfelder manchmal nicht berücksichtigt wurden. (I90d4c, b/356905963)

Version 1.8.0-alpha06

13. November 2024

androidx.compose.material:material-*:1.8.0-alpha06 wird veröffentlicht. Version 1.8.0-alpha06 enthält diese Commits.

Version 1.8.0-alpha05

30. Oktober 2024

androidx.compose.material:material-*:1.8.0-alpha05 wird veröffentlicht. Version 1.8.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Optimieren Sie das Verhalten von Scaffold contentPadding, um zu vermeiden, dass der Inhalt des Bodys immer neu zusammengesetzt wird, wenn sich contentPadding ändert. (I8c8e2, b/373904168)
  • Das Material „Slider“ soll seinen Wert ändern, wenn Steuertasten gedrückt werden. (I1c442)

Version 1.8.0-alpha04

16. Oktober 2024

androidx.compose.material:material-*:1.8.0-alpha04 wird veröffentlicht. Version 1.8.0-alpha04 enthält diese Commits.

API-Änderungen

  • Entfernen Sie readOnly aus TextFields, um die stabile Fundamentversion zu verwenden. (I3aaba)

Fehlerkorrekturen

  • Unterstützung für Welleneffekte in maximierenden Komponenten auf Android S+ hinzugefügt, z. B. bei einer Karte, die sich beim Klicken maximiert. Bisher wurde der Ripple nicht an die neue Größe angepasst, sondern er wurde nur innerhalb der neuen Grenzen angezeigt. (If509a, b/183019123)

Version 1.8.0-alpha02

18. September 2024

androidx.compose.material:material-*:1.8.0-alpha02 wird veröffentlicht. Version 1.8.0-alpha02 enthält diese Commits.

Version 1.8.0-alpha01

4. September 2024

androidx.compose.material:material-*:1.8.0-alpha01 wird veröffentlicht. Version 1.8.0-alpha01 enthält diese Commits.

API-Änderungen

  • Es wurde ein neuer NavGraphBuilder.bottomSheet-Builder hinzugefügt, um ein BottomSheet mit Safe Args zu erstellen ((I28589, I777db, b/351858980)).
  • Neue Überladungen für TextField und OutlinedTextField hinzugefügt, die ein TextFieldState (I3b74c) verwenden

Version 1.7

Version 1.7.8

12. Februar 2025

androidx.compose.material:material-*:1.7.8 wird veröffentlicht. Version 1.7.8 enthält diese Commits.

Version 1.7.7

29. Januar 2025

androidx.compose.material:material-*:1.7.7 wird veröffentlicht. Keine Änderungen gegenüber Version 1.7.6.

Version 1.7.6

11. Dezember 2024

androidx.compose.material:material-*:1.7.6 wird veröffentlicht. Version 1.7.6 enthält diese Commits.

Version 1.7.5

30. Oktober 2024

androidx.compose.material:material-*:1.7.5 wird veröffentlicht. Version 1.7.5 enthält diese Commits.

Version 1.7.4

16. Oktober 2024

androidx.compose.material:material-*:1.7.4 wird veröffentlicht. Version 1.7.4 enthält diese Commits.

Version 1.7.2

18. September 2024

androidx.compose.material:material-*:1.7.2 wird veröffentlicht. Version 1.7.2 enthält diese Commits.

Version 1.7.1

10. September 2024

  • An Android-Artefakten wurden keine Änderungen vorgenommen. -desktop Artefakte wurden entfernt und -jvmStubs- und -linuxx64Stubs-Artefakte wurden hinzugefügt. Keines dieser Ziele ist für die Verwendung vorgesehen. Sie sind Platzhalter, um die Bemühungen von Jetbrains Compose zu unterstützen.

Version 1.7.0

4. September 2024

androidx.compose.material:material-*:1.7.0 wird veröffentlicht. Version 1.7.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.6.0

  • Material-Komponenten wurden migriert, um die neuen Ripple-APIs zu verwenden. Sie fragen RippleTheme nicht mehr ab.
  • Material-Komponenten, die zuvor MutableInteractionSource akzeptiert und standardmäßig remember { MutableInteractionSource() } verwendet haben, akzeptieren jetzt ein nullable MutableInteractionSource und verwenden standardmäßig „null“. Wenn Sie das MutableInteractionSource nicht hochladen und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz erst bei Bedarf erstellen, was die Leistung verbessert. Es wird auch empfohlen, ähnliche Änderungen in Ihren eigenen Komponenten vorzunehmen.
  • BottomDrawer, ModalBottomSheet, BackdropScaffold und das Standard-Bottomsheet sind jetzt stabile APIs.

Version 1.7.0-rc01

21. August 2024

androidx.compose.material:material-*:1.7.0-rc01 wird veröffentlicht. Version 1.7.0-rc01 enthält diese Commits.

Version 1.7.0-beta07

7. August 2024

androidx.compose.material:material-*:1.7.0-beta07 wird veröffentlicht. Version 1.7.0-beta07 enthält diese Commits.

Version 1.7.0-beta06

24. Juli 2024

androidx.compose.material:material-*:1.7.0-beta06 wird veröffentlicht. Version 1.7.0-beta06 enthält diese Commits.

Version 1.7.0-beta05

10. Juli 2024

androidx.compose.material:material-*:1.7.0-beta05 wird veröffentlicht. Version 1.7.0-beta05 enthält diese Commits.

Version 1.7.0-beta04

26. Juni 2024

androidx.compose.material:material-*:1.7.0-beta04 wird veröffentlicht. Version 1.7.0-beta04 enthält diese Commits.

Version 1.7.0-beta03

12. Juni 2024

androidx.compose.material:material-*:1.7.0-beta03 wird veröffentlicht. Version 1.7.0-beta03 enthält diese Commits.

Version 1.7.0-beta02

29. Mai 2024

androidx.compose.material:material-*:1.7.0-beta02 wird veröffentlicht. Version 1.7.0-beta02 enthält diese Commits.

API-Änderungen

  • API zum Formatieren der Links aktualisiert: TextLinkStyles wurde in TextStyle verschoben und TextDefaults wurde aus dem Material entfernt (I5477b)

Version 1.7.0-beta01

14. Mai 2024

androidx.compose.material:material-*:1.7.0-beta01 wird veröffentlicht. Version 1.7.0-beta01 enthält diese Commits.

API-Änderungen

  • Die API zum Abrufen von Links mit Material-Design in Text wurde aktualisiert. Konkret wurden die Methoden aus TextDefaults zum Erstellen thematischer LinkAnnotations und zum Parsen von HTML mit thematischen Links entfernt. Stattdessen wurde eine TextLinkStyles-Klasse hinzugefügt, mit der die Links als Parameter für die Text-Composable-Funktion formatiert werden können. (I31b93)

Version 1.7.0-alpha08

1. Mai 2024

androidx.compose.material:material-*:1.7.0-alpha08 wird veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.

API-Änderungen

  • Problem behoben: backgroundColor wird nicht auf TextFieldDecorationBox und OutlinedTextFieldDecorationBox angewendet. Für Dekorationsfelder ist jetzt ein shape-Parameter verfügbar. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled wurde entfernt und LocalRippleConfiguration wurde auf „nullable“ gesetzt. Wenn Sie einen Ripple deaktivieren möchten, geben Sie statt eines RippleConfiguration mit isEnabled = false den Wert null bis LocalRippleConfiguration an. (I22725)
  • Textlinks haben zusätzlich zu den normalen, Hover- und Fokus-Stilen auch eine Formatierungsoption für den gedrückten Zustand. TextDefaults-Methoden haben jeweils ein pressedStyle-Argument, um dies zu unterstützen. (Ic473f, b/139312671)

Fehlerkorrekturen

  • Das obere Padding für das Label berücksichtigt jetzt die Schriftgröße des Systems.OutlinedTextField (Idc781)

Version 1.7.0-alpha07

17. April 2024

androidx.compose.material:material-*:1.7.0-alpha07 wird veröffentlicht. Version 1.7.0-alpha07 enthält diese Commits.

API-Änderungen

  • Textlinks haben jetzt zusätzlich zum normalen Stil, zum Stil für den Mauszeiger und zum Fokusstil auch einen Stil für den gedrückten Zustand. (I5f864, b/139312671)
  • Es wurde ein TextDefaults-Objekt hinzugefügt, das Methoden zum Erstellen eines LinkAnnotation-Objekts und zum Parsen von HTML-getaggten Strings enthält, in denen MaterialTheme auf die Links angewendet wird. (I98532, b/139312671)

Version 1.7.0-alpha06

3. April 2024

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

Ankündigung

  • Für androidx.compose.material ist es nicht mehr erforderlich, dieselbe Version jedes Artefakts in dieser Maven-Gruppe zu verwenden. Nutzer können verschiedene Versionen von Compose-Fundamentbibliotheken (Ie5fba) kombinieren.

API-Änderungen

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

Version 1.7.0-alpha05

20. März 2024

androidx.compose.material:material-*:1.7.0-alpha05 wird veröffentlicht. 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 veröffentlicht. 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 veröffentlicht. Version 1.7.0-alpha03 enthält diese Commits.

API-Änderungen

  • BottomDrawer wurde von „experimentell“ auf „stabil“ hochgestuft. BottomDrawerState gibt den Fortschritt jetzt als Funktion aus, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann. BottomDrawerState ermöglicht jetzt die Anpassung der Animationsspezifikation und confirmStateChange ist kein nachgestelltes Lambda mehr. (I9c029, b/261423850)
  • BackdropScaffold wurde von „experimentell“ auf „stabil“ hochgestuft. Die Animationsspezifikation ist jetzt eine tween-Spezifikation gemäß den Richtlinien. Der Parameter snackbarHost von BackdropScaffold ist nicht mehr der letzte Parameter, um Verwechslungen mit nachgestellten Lambdas zu vermeiden. BackdropScaffoldState stellt eine progress(from, to)-API zur Verfügung, mit der der Fortschritt zwischen Ankern abgefragt werden kann. (I73f48, b/261423218)
  • Standard-Bottom-Sheets sind jetzt stabil und nicht mehr experimentell. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine Tween-Spezifikation gemäß den Richtlinien. (I3c1a8, b/278692145, b/261409034)
  • Modale Bottom Sheets sind nicht mehr experimentell, sondern stabil. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine tween-Spezifikation gemäß den Richtlinien. (Ic53f4, b/278692145, b/266780235, b/261409034)

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem BackdropScaffold in bestimmten Szenarien in Kombination mit LookaheadScope abstürzen konnte. (I51396)
  • Die Unterkomposition in BottomSheetScaffold wurde entfernt, um die Leistung zu verbessern. Ein Problem wurde behoben, bei dem BottomSheetScaffold in bestimmten Szenarien in Kombination mit LookaheadScope abstürzte. (I2f90c)
  • Die Unterkomposition in ModalBottomSheetLayout wurde entfernt, um die Leistung zu verbessern. (I7a025)

Version 1.7.0-alpha02

7. Februar 2024

androidx.compose.material:material-*:1.7.0-alpha02 wird veröffentlicht. 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 veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.

Geändertes Verhalten

  • Material-Komponenten wurden migriert, um die neuen Ripple-APIs zu verwenden. Sie fragen RippleTheme nicht mehr ab.

API-Änderungen

  • rememberRipple und RippleTheme wurden aus „material-ripple“ entfernt. In „material“ und anderen Designsystembibliotheken wurden neue Ripple- und RippleConfiguration-APIs hinzugefügt.

  • Materialkomponenten, die zuvor ein MutableInteractionSource akzeptiert und standardmäßig { MutableInteractionSource() } gespeichert haben, akzeptieren jetzt ein nullable MutableInteractionSource und verwenden standardmäßig stattdessen „null“. Wenn Sie das MutableInteractionSource nicht hochladen und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz erst bei Bedarf erstellen, was die Leistung verbessert. Es wird auch empfohlen, ähnliche Änderungen in Ihren eigenen Komponenten vorzunehmen.

Version 1.6

Version 1.6.8

12. Juni 2024

androidx.compose.material:material-*:1.6.8 wird veröffentlicht. Version 1.6.8 enthält diese Commits.

Version 1.6.7

1. Mai 2024

androidx.compose.material:material-*:1.6.7 wird veröffentlicht. Version 1.6.7 enthält diese Commits.

Version 1.6.6

17. April 2024

androidx.compose.material:material-*:1.6.6 wird veröffentlicht. Keine Änderungen seit dem letzten Release.

Version 1.6.5

3. April 2024

androidx.compose.material:material-*:1.6.5 wird veröffentlicht. Version 1.6.5 enthält diese Commits.

Version 1.6.4

20. März 2024

androidx.compose.material:material-*:1.6.4 wird veröffentlicht. Version 1.6.4 enthält diese Commits.

Version 1.6.3

6. März 2024

androidx.compose.material:material-*:1.6.3 wird veröffentlicht. Version 1.6.3 enthält diese Commits.

Fehlerkorrekturen

  • Beheben Sie die Regression in ExposedDropdownMenu, damit das Element wieder fokussierbar ist. (c0e0ed, b/323694447)

Version 1.6.2

21. Februar 2024

androidx.compose.material:material-*:1.6.2 wird veröffentlicht. Version 1.6.2 enthält diese Commits.

Version 1.6.1

7. Februar 2024

androidx.compose.material:material-*:1.6.1 wird veröffentlicht. Version 1.6.1 enthält diese Commits.

Version 1.6.0

24. Januar 2024

androidx.compose.material:material-*:1.6.0 wird veröffentlicht. 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 veröffentlicht. 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 veröffentlicht. 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 veröffentlicht. 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 veröffentlicht. 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 veröffentlicht. Version 1.6.0-alpha08 enthält diese Commits.

API-Änderungen

  • Eine materialIcon-Funktion zugunsten ihrer Überladung mit einem autoMirror-Parameter einstellen. (Ia338d)

Fehlerkorrekturen - Die Höhe von Navigationselementen 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 veröffentlicht. Version 1.6.0-alpha07 enthält diese Commits.

  • Abhängigkeitsaktualisierungen

Version 1.6.0-alpha06

20. September 2023

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

Funktionsgefährdende Verhaltensänderung

  • Die schubladenbezogenen Funktionen wurden aus BottomSheetScaffold entfernt. Sie können Ihr BottomSheetScaffold in ein Drawer-Composable einfügen, um die bisherige Funktionalität zu erreichen. Ein Beispiel findest du in BottomSheetScaffoldWithDrawerSample. (I1dcc8)

API-Änderungen

  • Es wurde ein temporäres Flag eingeführt, mit dem gesteuert werden kann, ob untergeordnete Elemente von Scaffold während der Messung oder während der Platzierung gemessen werden sollen. Standardmäßig wird die Messung in der Maßeinheit durchgeführt. Wenn Sie Probleme mit dem neuen Verhalten haben, melden Sie bitte ein Problem. (If6e3b)

Version 1.6.0-alpha05

6. September 2023

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

Neue Funktionen

  • Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts mit Leserichtung von rechts nach links hinzugefügt. Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsets zur Unterstützung der automatischen Spiegelung, sofern das Symbol dies zulässt. Die neuen Sets haben das Präfix Icons.AutoMirrored.Filled... usw. und enthalten Symbole, die in RTL-Layouts automatisch gespiegelt werden. Eine Liste der Symbole, die automatisch gespiegelt werden können (und sollten), finden Sie hier.

API-Änderungen

  • Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts mit Leserichtung von rechts nach links hinzugefügt. Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsets zur Unterstützung der automatischen Spiegelung, sofern das Symbol dies zulässt. Die neuen Sets haben das Präfix Icons.AutoMirrored.Filled... usw. und enthalten Symbole, die in RTL-Layouts automatisch gespiegelt werden. Eine Liste der Symbole, die automatisch gespiegelt werden können (und sollten), finden Sie hier. Die zuvor angegebenen Symboleigenschaften für diese Symbole sind jetzt als veraltet markiert. Es wird ein Vorschlag für einen Ersatzblock angezeigt, um die Migration zu erleichtern. Wenn Sie keine spezielle Behandlung für das Spiegeln von Symbolen in RTL haben, empfehlen wir, zum neuen Satz von Symbolen zu migrieren. Beispiel: Icons.Filled.ArrowBack sollte in Icons.AutoMirrored.Filled.ArrowBack umgestaltet werden. (I4b511)

Version 1.6.0-alpha04

23. August 2023

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem einige Komponenten, die Subcomposition (z.B. BottomSheetScaffold) innerhalb eines Scaffold innerhalb eines LookaheadScope verwenden, versuchten, ihre Größe zu früh zu lesen. (If2c5d)
  • Die Berechnung von DropdownMenuoffset wurde korrigiert, sodass x-Offsets nur von der lokalen Layoutrichtung abhängen und y-Offsets nicht mehr umgekehrt werden, wenn sich das Menü unten auf dem Bildschirm befindet. (Iccc74, b/294103942)
  • Das Layout von BottomSheetScaffold wurde optimiert und ein potenzielles Problem mit BottomSheetScaffold innerhalb von LookaheadLayout wurde behoben. (Ic0afa)

Version 1.6.0-alpha03

9. August 2023

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

API-Änderungen

  • Material2-Komponenten haben jetzt eine separate API, um windowInsets zu übergeben und die Edge-to-Edge-Funktionalität in Android zu unterstützen. Im Gegensatz zu Material 3-Komponenten unterstützen Material 2-Komponenten standardmäßig keine Insets. 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 veröffentlicht. Version 1.6.0-alpha02 enthält diese Commits.

API-Änderungen

  • Die Abhängigkeit von der Dichte wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten: SwipeToDismiss und blattbasierte Komponenten. Verwenden Sie die neue Überladung, bei der die Dichte ein Parameter ist. (I1846e)
  • Zusätzliche Anmerkungen zum Angeben zulässiger Eingaben für Composables (I51109)
  • Aktualisierte API-Dateien zum Annotieren der Kompatibilitätsunterdrückung (I8e87a, b/287516207)
  • Neue Startausrichtung für FabPosition hinzugefügt (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons in Material 2 wurde zugunsten von TextFieldColors eingestellt. Wenn Sie leadingIconColor oder trailingIconColor überschreiben, überschreiben Sie auch die Überladung mit interactionSource. (Id57ed, b/199377790)

Version 1.6.0-alpha01

21. Juni 2023

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

Geändertes Verhalten

  • includeFontPadding ist jetzt standardmäßig false in der Material 2-Typografie. Die Standardeinstellung für die Zeilenhöhe wurde ebenfalls in Trim.None und Alignment.Center geändert. Außerdem wurde den TextStyles von Typography ein expliziter lineHeight (in sp) 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 im Blogpost. (Icabc3, I3f801, I04c03)

API-Änderungen

  • Die Swipeable-APIs für Material wurden eingestellt. Verwenden Sie die AnchoredDraggable-APIs von Foundation, die sowohl für einfache als auch für komplexe Anwendungsfälle optimiert sind. (I732e0)

Fehlerkorrekturen

  • BottomSheetState, ModalBottomSheetState und BottomDrawerState haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgeglichenen) Anker und dem nächstgelegenen Anker in der 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 veröffentlicht. Version 1.5.4 enthält diese Commits.

Version 1.5.3

4. Oktober 2023

androidx.compose.material:material-*:1.5.3 wird veröffentlicht. Diese Version enthält keine Änderungen

Version 1.5.2

27. September 2023

androidx.compose.material:material-*:1.5.2 wird veröffentlicht. 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 veröffentlicht. Version 1.5.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.4.0

API-Änderungen

  • Änderungen in den Swipeable1-APIs in BottomSheetScaffold wurden berücksichtigt. Der confirmStateChange-Parameter von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert bereitgestellt. animateTo und snapTo sind intern. Verwenden Sie stattdessen expand() und collapse(). direction und overflow wurden entfernt. offset wurde durch requireOffset() ersetzt. I323b4
  • Markieren Sie die Funktion snapTo im Drawer als nicht experimentelle API. (Ib9c18, b/261425368)
  • Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Farbe der Spur und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Form der Linienenden hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • Die confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState wurde in confirmValueChange umbenannt. (Ib48d1)
  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den Swipeable APIs in ModalBottomSheetLayout wurden berücksichtigt. Die animateTo-Funktion von ModalBottomSheetState akzeptiert keinen animationSpec-Parameter mehr und der angegebene Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Offset anzufordern. (Ia2e79)
  • Annotation „@JvmDefaultWithCompatibility“ wird hinzugefügt (I8f206)
  • Die Änderungen an den Swipeable APIs in ModalDrawer. DrawerState's animateTo wurden übernommen. Die open- und close-Methoden wurden ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Die Schubladen und Sheets wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
  • Der Parameter minLines wurde in die Material- und Material3-Textkomponenten TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem pullRefresh die Geschwindigkeit nicht verbrauchte, was zu einem Overscroll führte. Außerdem wurde die API-Signatur des onRelease-Lambdas in Modifier.pullRefresh geändert, um einen Float für die verbrauchte Geschwindigkeit zurückzugeben (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState und BottomDrawerState haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgeglichenen) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Die Aktion zum Schließen von AlertDialog wird jetzt unter der Bestätigungsaktion angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Mit dieser Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277)
  • BottomSheetScaffold nimmt nicht mehr an verschachtelten Scrollvorgängen teil, wenn gesturesEnabled auf „false“ gesetzt ist. (I634f3, b/215403277)
  • Ein Fehler wurde behoben, aufgrund dessen BottomSheetScaffold abstürzte, wenn für Slots leerer Inhalt bereitgestellt wurde. (Ib24a5, b/235588730)
  • Behebt das Abfangen von Klicks/Zeigerereignissen durch PullRefreshIndicator. (2494256, b/271777421)
  • Ein Problem wurde behoben, durch das ModalBottomSheetLayout in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B. Modifier.animateContentSize) im/auf dem Tabellenblattinhalt funktionieren jetzt reibungslos. (I2f981, b/266780234)

Version 1.5.0-rc01

26. Juli 2023

androidx.compose.material:material-*:1.5.0-rc01 wird veröffentlicht. 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 veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • BottomSheetState, ModalBottomSheetState und BottomDrawerState haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgeglichenen) Anker und dem nächstgelegenen Anker in der 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 veröffentlicht. 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 veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

API-Änderungen

  • Der Offset von DrawerState und BottomDrawerState kann nicht mehr null sein. Stattdessen wird Float.NaN zurückgegeben, um anzuzeigen, dass kein Offset vorhanden ist. (Ie9855)
  • Es wurde eine Option hinzugefügt, mit der ein ScrollState beim Erstellen eines DropdownMenu oder eines ExposedDropdownMenu übergeben werden kann, um den vertikalen Scrollstatus der angezeigten Menüelemente zu steuern. (Idb009, b/185304441)
  • Unterstützung für das Aktivieren/Deaktivieren der Geste ModalBottomSheetLayout hinzugefügt, damit Nutzer diese für ein Bottomsheet mit mehr Funktionen konfigurieren können (I40af0)
  • Der Funktion BasicText wurde ein Farbparameter hinzugefügt, um die Textfarbe effizient animieren oder festlegen zu können. (Iffd88, b/246961787)
  • Umbenennung des Semantics-Attributs isContainer in isTraversalGroup (I121f6)

Fehlerkorrekturen

  • Die Aktion zum Schließen von AlertDialog wird jetzt unter der Bestätigungsaktion angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Mit dieser Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277)

Version 1.5.0-alpha04

10. Mai 2023

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

API-Änderungen

  • Die Abhängigkeit von der Dichte wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Verwenden Sie die neue Überladung, bei der die Dichte ein Parameter ist. (I8fbd8)

Version 1.5.0-alpha03

19. April 2023

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

API-Änderungen

  • Aktualisieren Sie die internen Komponenten von BottomDrawer, damit die neuen SwipeableV2-APIs verwendet werden. Aus diesem Grund hat BottomDrawerState jetzt nur noch APIs, die auf Klassenebene definiert sind. Methoden/Attribute werden nicht von SwipeableState übernommen. Wir verwenden die Komposition mit einem internen SwipeableV2State. „Offset“ ist jetzt ein Nullable-Gleitkomma-Attribut. Der aktuelle Wert und ein Wischzielwert können weiterhin über die Attribute „currentValue“ und „targetValue“ abgerufen werden. Die bisherigen Methoden auf Klassenebene wie „open“/„expand“/„close“ und Attribute wie isOpen/isClosed werden weiterhin unterstützt. (Iad40c, b/178529942, b/220676296)

Fehlerkorrekturen

  • Die internen Komponenten der Switch-Komponente wurden aktualisiert. Beim Ziehen wird jetzt der nächstgelegene (Ziel-)Status in der Vorschau angezeigt. (Id90d4)
  • Animierte Tabelleninhalte (z.B. Modifier.animateContentSize für Tabelleninhalte) in BottomSheetScaffold wurden optimiert und funktionieren jetzt reibungslos. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold nimmt nicht mehr an verschachteltem Scrollen teil, wenn gesturesEnabled auf false festgelegt ist. (I634f3, b/215403277)

Version 1.5.0-alpha02

5. April 2023

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

Fehlerkorrekturen

  • Ein Fehler wurde behoben, aufgrund dessen BottomSheetScaffold abstürzte, wenn für Slots leerer Inhalt bereitgestellt wurde. (Ib24a5, b/235588730)
  • Fehlerbehebung: PullRefreshIndicator fängt Klicks / Zeigerereignisse ab (2494256, b/271777421)

Version 1.5.0-alpha01

22. März 2023

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

Fehlerkorrekturen

  • Beispiel für das Umfließen von Chipgruppen hinzufügen Aktualisieren Sie das horizontale Padding zwischen untergeordneten Chips im Beispiel für eine einzeilige Chipgruppe, damit es der Spezifikation entspricht. (I3b155)
  • Ein Problem wurde behoben, durch das ModalBottomSheetLayout in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B. Modifier.animateContentSize) im/auf dem Tabellenblattinhalt 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 veröffentlicht (nur eine Versionsaktualisierung).

Version 1.4.2

19. April 2023

androidx.compose.material:material-*:1.4.2 wird veröffentlicht. Version 1.4.2 enthält diese Commits.

Version 1.4.1

5. April 2023

androidx.compose.material:material-*:1.4.1 wird veröffentlicht. Version 1.4.1 enthält diese Commits.

Version 1.4.0

22. März 2023

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

Wichtige Änderungen seit Version 1.3.0

API-Änderungen

  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den Swipeable APIs in ModalDrawer wurden berücksichtigt. DrawerStates animateTo wurde durch die open- und close-Methoden ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Der Parameter minLines wurde in die Material- und Material3-Textkomponenten TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).
  • Der Parameter minLines wurde den BasicText und BasicTextField hinzugefügt. Damit kann die Mindesthöhe dieser Composables in Zeilen angegeben werden (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 veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.

API-Änderungen

  • Änderungen an den Swipeable APIs in BottomSheetScaffold wurden berücksichtigt. Der confirmStateChange-Parameter von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert bereitgestellt. animateTo und snapTo sind intern. Verwenden Sie 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. Komponenten, in denen sie verwendet wurden, wurden aktualisiert, um Rollen mit „modifier.semantics“ festzulegen (Ibb4ba).
  • Geringfügige Aktualisierung der erweiterten Material Design-Symbole, bei der die gefüllten Symbole desktop_mac, directions und kitchen angepasst wurden. (I65f5e)

Version 1.4.0-beta01

8. Februar 2023

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

API-Änderungen

  • Es wurde ein Problem behoben, bei dem pullRefresh die Geschwindigkeit nicht verbrauchte, was zu einem Overscroll führte. Außerdem wurde die API-Signatur des onRelease-Lambdas in Modifier.pullRefresh geändert, um einen Float für die verbrauchte Geschwindigkeit zurückzugeben (I7db65, b/266874741).
  • Die Getter-Methode LocalMinimuTouchTargetEnforcement für die wiederhergestellte Property wurde wiederhergestellt, als eingestellt markiert und zur Methode LocalMinimumInteractiveComponentEnforcement weitergeleitet. (I60dd5)

Version 1.4.0-alpha05

25. Januar 2023

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem der Status ModalBottomSheetLayout's HalfExpanded falsch berechnet wurde und das Blatt schwebend angezeigt wurde. (I8c615, b/265610459)
  • Ein Fehler in ModalBottomSheetLayout wurde behoben, bei dem das Tabellenblatt unter bestimmten Umständen abstürzte, wenn es von einem ausgeblendeten in einen sichtbaren Zustand wechselte. (Ia9265, b/265444789)

Version 1.4.0-alpha04

11. Januar 2023

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

API-Änderungen

  • Die Semantik-Property IsContainer wurde auf Plattformen hinzugefügt. Diese Eigenschaft wird bei einer späteren Änderung verwendet, bei der die Reihenfolge der Traversierung auf der Grundlage der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379)
  • Markieren Sie die Funktion snapTo im Drawer als nicht experimentelle API. (Ib9c18, b/261425368)
  • Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Farbe der Spur und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Form der Linienenden hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • Die confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState wurde in confirmValueChange umbenannt. (Ib48d1)
  • Weitere Informationen zur Nullable-Eigenschaft des Rückgabetyps von eingestellten, ausgeblendeten Funktionen (Ibf7b0)
  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit können Sie mindestens 48 dp für die eindeutige Unterscheidung von Berührungsinteraktionen reservieren, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den Swipeable APIs in ModalBottomSheetLayout wurden berücksichtigt. Die animateTo von ModalBottomSheetState akzeptiert keinen animationSpec-Parameter mehr und die bereitgestellte offset ist jetzt nullable. Verwenden Sie requireOffset, um die offset anzufordern. (Ia2e79)

Fehlerkorrekturen

  • Die Breite eines ModalBottomSheetLayout-Blatts beträgt jetzt maximal 640 dp. (I71a4f, b/234927577)
  • Ein Problem wurde behoben, bei dem rememberPullRefreshState im Laufe der Zeit nicht aktualisiert wurde.refreshThresholdrefreshingOffset (Ifed10, b/263159832)
  • Der Fortschritt für Fortschrittsindikatoren ist jetzt korrekt auf 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 aktivierte Status wurde in der Material 2-Implementierung von FilterChip korrigiert. (Id326a, b/261329817)
  • Ein Fehler wurde behoben, durch den ModalBottomSheetLayout abstürzte, wenn HalfExpanded beim Drehen vom Hoch- ins Querformat verwendet wurde. Achten Sie darauf, dass Sie die richtige initialValue übergeben, indem Sie beispielsweise die Konfiguration prüfen. (Ie8df7, b/182882364)
  • Ein Problem wurde behoben, bei dem ModalBottomSheetLayout abstürzte, wenn der Tabelleninhalt leer war. ModalBottomSheetLayout lässt jetzt leere Tabelleninhalte zu. Wenn der Tabelleninhalt leer ist, hat er 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 der Fehler java.lang.NoSuchFieldError auftreten. Hier wurde das Problem ursprünglich gemeldet. Ein Fix wurde eingereicht und ist im nächsten Compose-Update verfügbar. Als Behelfslösung können Sie Ihre androidx.compose.material- und androidx.compose.material3-Bibliotheken auf die neueste Version(1.1.0-alpha04) aktualisieren oder Ihre androidx.compose.foundation-Bibliothek auf Version 1.4.0-alpha03 downgraden.

Version 1.4.0-alpha03

7. Dezember 2022

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

API-Änderungen

  • Annotation „@JvmDefaultWithCompatibility“ wird hinzugefügt (I8f206)
  • Änderungen an den Swipeable-APIs in ModalDrawer wurden berücksichtigt. Die animateTo von DrawerState wurde durch die Methoden open und close ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Eine Modifier API zum Abfragen von Scrollinformationen für übergeordnete Elemente wurde hinzugefügt. (I2ba9d, b/203141462)
  • Wird in Clickable verwendet, um Tippinteraktionen richtig zu verzögern, wenn aus Gesten Scroll-Ereignisse werden könnten.
  • Das Problem, dass Clickables Ripples nicht richtig verzögert hat, wenn es in einem Scrollable ViewGroup verwendet wurde, wurde behoben.
  • Die Schubladen und Sheets wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das PullRefreshIndicator nach dem Aufrufen von onRefresh hängen bleiben konnte, wenn der Aktualisierungsstatus nicht in „true“ geändert wurde. (Ie2416, b/248274004)

Abhängigkeitsupdates

  • Compose UI und Compose Material hängen jetzt von Lifecycle 2.5.1 ab. (I05ab0, b/258038814)

Version 1.4.0-alpha02

9. November 2022

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

API-Änderungen

  • awaitFirstDown und waitForUpOrCancellation akzeptieren jetzt ein PointerEventPass, um mehr Flexibilität zu bieten. (I7579a, b/212091796)
  • Der Parameter minLines wurde in die Material- und Material3-Textkomponenten TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).
  • Der Parameter minLines wurde BasicTex und BasicTextField hinzugefügt. Damit kann die Mindesthöhe dieser Composables in Bezug auf die Anzahl der Zeilen festgelegt werden (I24294, b/122476634).

Version 1.4.0-alpha01

24. Oktober 2022

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

API-Änderungen

  • Es wurde eine neue Methode, awaitEachGesture(), für Gestenerkennung hinzugefügt. Sie funktioniert ähnlich wie forEachGesture(), aber die Schleife über Gesten erfolgt vollständig innerhalb von AwaitPointerEventScope, sodass keine Ereignisse zwischen den Iterationen verloren gehen können.
  • forEachGesture() wurde zugunsten von awaitEachGesture() eingestellt, da bei forEachGesture() Ereignisse zwischen 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 veröffentlicht. Version 1.3.1 enthält diese Commits.

Version 1.3.0

24. Oktober 2022

androidx.compose.material:material-*:1.3.0 wird veröffentlicht. Version 1.3.0 enthält diese Commits.

Wichtige Änderungen seit Version 1.2.0

Verhaltensänderung

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

API-Änderungen

  • Fügen Sie Compose eine „Pull-to-Refresh“-Komponente hinzu (I29168).
  • Parametername von „values“ in „value“ in RangeSlider geändert (I3b79a).

Version 1.3.0-rc01

5. Oktober 2022

androidx.compose.material:material-*:1.3.0-rc01 wird veröffentlicht. 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 veröffentlicht. Version 1.3.0-beta03 enthält diese Commits.

API-Änderungen

  • Pull-to-Refresh-Komponente in Compose hinzufügen (I29168)

Version 1.3.0-beta02

7. September 2022

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

Keine Änderungen seit Version 1.3.0-beta01

Version 1.3.0-beta01

24. August 2022

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

Verhaltensänderung

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

Die maximal unterstützte Erhebung für Compose-Dialogfelder und ‑Pop-ups wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl benutzerdefinierte Dialogfelder und Pop-ups für Material Design als auch für die Benutzeroberfläche. Diese Änderung wurde vorgenommen, um einen Fehler bei der Barrierefreiheit in Android-Versionen unter S zu beheben und dafür zu sorgen, dass Bedienungshilfen in diesen Fenstern mit den Inhalten im Dialogfeld oder Pop-up interagieren können.

Sie sind nur von dieser Änderung betroffen, wenn Sie ein benutzerdefiniertes Dialogfeld oder Pop-up mit einer Erhebung erstellen, die auf Ebenen über 8 dp festgelegt ist. Verringern Sie die Erhebung des Dialogfelds oder Pop-ups. Wenn Sie dieses neue Verhalten deaktivieren möchten, können Sie einen eigenen Dialog oder ein eigenes Pop-up mit der gewünschten Erhebung forken. Dies wird nicht empfohlen, da die Barrierefreiheit dadurch beeinträchtigt werden kann. Es liegt in der Verantwortung des Entwicklers, dafür zu sorgen, dass der untere Teil des Dialogfelds oder Pop-ups für Barrierefreiheitsdienste interaktiv und lesbar ist.

Version 1.3.0-alpha03

10. August 2022

androidx.compose.material:material-*:1.3.0-alpha03 wird veröffentlicht. 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 veröffentlicht. Version 1.3.0-alpha02 enthält diese Commits.

Externe Beiträge

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

API-Änderungen

  • Parametername von „values“ in „value“ in RangeSlider ändern (I3b79a)

Fehlerkorrekturen

  • Aktualisieren Sie das Beispiel für das Logo, um eine aussagekräftigere Inhaltsbeschreibung zu liefern. (I10b9d)

Version 1.2

Version 1.2.1

10. August 2022

androidx.compose.material:material-*:1.2.1 wird veröffentlicht. Version 1.2.1 enthält diese Commits.

Version 1.2.0

27. Juli 2022

androidx.compose.material:material-*:1.2.0 wird veröffentlicht. 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 veröffentlicht. Version 1.2.0-rc03 enthält diese Commits.

  • Keine Änderungen seit Version 1.2.0-rc02.

Version 1.2.0-rc02

22. Juni 2022

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

API-Änderungen

  • Schnittstellen in Compose-Bibliotheken werden jetzt mit den Standard-Schnittstellenmethoden von JDK8 erstellt (I5bcf1).

Fehlerkorrekturen

  • Das Badge wird jetzt mit einem führenden Symbol-Tab aktualisiert, damit es am Label und nicht am Symbol angebracht wird. (I90993)

Version 1.2.0-beta03

1. Juni 2022

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

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, durch den BottomSheetScaffold über den Schatten der oberen App-Leiste gezeichnet wurde. BottomSheetScaffold berücksichtigt jetzt auch den Status des Blatts beim Platzieren von Snackbars: Im minimierten Zustand werden Snackbars über dem Blatt und dem FAB platziert. Im maximierten Zustand werden Snackbars am unteren Rand des Blatts verankert. (Ia80b5, b/187771422)

Version 1.2.0-beta02

18. Mai 2022

androidx.compose.material:material-*:1.2.0-beta02 wird veröffentlicht. 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 veröffentlicht. 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, mit der ein Rahmenstrich in OutlinedTextField gezeichnet wird, wurde in TextFieldDefaults.BorderBox umbenannt. (I5f295)

Version 1.2.0-alpha08

20. April 2022

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

API-Änderungen

  • Die teilweise Nutzung (Down- oder Position) wurde in PointerInputChange eingestellt. Mit consume() können Sie die Änderung vollständig übernehmen. Mit isConsumed können Sie feststellen, ob die Änderung bereits von jemand anderem übernommen wurde.
  • PointerInputChange::copy() erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien von PointerInputChange verbraucht werden, sobald eine der Kopien verbraucht wird. 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 veröffentlicht. 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 veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.

API-Änderungen

  • Aktualisierungen der klickbaren Card API aufgrund von Änderungen an der Surface API (I56bcb)
  • Aktualisierungen der Material 2 Surface API, durch die zusätzliche überladene Funktionen für auswählbare und umschaltbare Surfaces hinzugefügt werden. (Ifcca5)

Version 1.2.0-alpha05

9. März 2022

androidx.compose.material:material-*:1.2.0-alpha05 wird veröffentlicht. 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 Unterpaket „.grid“ verschoben. Aktualisieren Sie Ihre Importe von „androidx.compose.foundation.lazy“ zu „androidx.compose.foundation.lazy.grid“. (I2d446, b/219942574)
  • Die vorherige Änderung, bei der nur eine Ansicht für WindowInsetsControllerCompat verwendet wurde, wurde rückgängig gemacht. Es ist wieder ein Fenster erforderlich, das für die Verwaltung einiger Fenster-Flags benötigt wird. ViewCompat.getWindowInsetsController wurde zugunsten von WindowCompat.getInsetsController eingestellt, um sicherzustellen, dass 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 Beschneidungsprobleme, die durch includeFontPadding=false verursacht werden, wurden behoben. Bei hohen Skripts sollte es nicht mehr zu Beschneidungen kommen. (I31c84, b/171394808)
  • Eine neue LazyVerticalGrid API zum Definieren von Größen für die Querachse wurde hinzugefügt (I17723).

Version 1.2.0-alpha04

23. Februar 2022

androidx.compose.material:material-*:1.2.0-alpha04 wird veröffentlicht. 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 sie zusammen mit BasicTextField verwenden, können Sie benutzerdefinierte Textfelder erstellen, die auf Material Design-Textfeldern basieren, aber mehr Anpassungsoptionen bieten.
  • Es wurde eine Möglichkeit geschaffen, den horizontalen und vertikalen Innenabstand in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
  • Die Funktionen ComposableTarget, ComposableTargetMarker und ComposableOpenTarget wurden hinzugefügt, mit denen zur Kompilierzeit gemeldet werden kann, wenn eine zusammensetzbare Funktion für einen Applier aufgerufen wird, für den sie nicht vorgesehen ist.

    In den meisten Fällen können die Annotationen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Annotationen sollte daher selten sein. Die Fälle, die nicht abgeleitet werden können, umfassen das Erstellen und Verwenden eines benutzerdefinierten Appliers, abstrakte zusammensetzbare Funktionen (z. B. Schnittstellenmethoden), Felder oder globale Variablen, die zusammensetzbare Lambdas sind (lokale Variablen und Parameter werden abgeleitet), oder wenn ComposeNode oder eine zugehörige zusammensetzbare Funktion verwendet wird.

    Bei benutzerdefinierten Appliern muss für die zusammensetzbaren Funktionen, die ComposeNode oder ReusableComposeNode aufrufen, die Annotation CompoableTarget für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzugefügt werden. Es wird jedoch empfohlen, eine Annotation zu erstellen, die mit ComposableTargetMarker annotiert ist, und dann die markierte Annotation anstelle von ComposableTarget direkt zu verwenden. Eine mit ComposableTargetMarker markierte zusammensetzbare Annotation entspricht einem ComposbleTarget mit dem vollständig qualifizierten Namen der Attributklasse als „applier“-Parameter. 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 veröffentlicht. 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 veröffentlicht. Version 1.2.0-alpha02 enthält diese Commits.

API-Änderungen

  • NonRestartableComposable wurde Methoden hinzugefügt, die Überladungen vorhandener Methoden ohne komplexe Logik sind. Dadurch werden die vom Compiler generierten Memoization-Prüfungen (equals) für alle Parameter reduziert, die in der aufgerufenen inneren Funktion wiederholt werden. (I90490)
  • Unterstützung für Aktions-Chip hinzufügen (I07100, b/192585545)

Version 1.2.0-alpha01

12. Januar 2022

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

Abhängigkeitsupdates

  • Jetzt von Kotlin 1.6.10 abhängig.

Externe Beiträge

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

Version 1.1

Version 1.1.1

23. Februar 2022

androidx.compose.material:material-*:1.1.1 wird veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

  • Fehler bei NullPointerException unter androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList beheben (aosp/1947059, b/206677462)
  • Ein Absturz, der durch Zwischenablageinhalte beim Lesen aus der Zwischenablage unter Android verursacht wurde, wurde behoben. (I06020, b/197769306)
  • RTL-Problem in LazyVerticalGrid behoben (aosp/1931080, b/207510535)

Version 1.1.0

9. Februar 2022

androidx.compose.material:material-*:1.1.0 wird veröffentlicht. 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ührungszielen
  • Im Vergleich zu Compose 1.0 wird der Layoutbereich von Material-Komponenten erweitert, um den Richtlinien für Bedienungshilfen in Material Design für die Größe von Berührungszielen zu entsprechen. Der Berührungszielbereich einer Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 × 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird Compose Material an das Verhalten von Material Design Components angepasst. So ist das Verhalten konsistent, wenn Sie Views und Compose mischen. Diese Änderung sorgt auch dafür, dass beim Erstellen der Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit von Touch-Zielen erfüllt werden.
  • Stabile Unterstützung für Navigation Rail
  • Eine Reihe zuvor experimenteller APIs wird auf stabil umgestellt.
  • Unterstützung für neuere Versionen von Kotlin

Version 1.1.0-rc03

26. Januar 2022

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

Geändertes Verhalten

Im Vergleich zu Compose 1.0 wird der Layoutbereich von Material-Komponenten erweitert, um die Richtlinien für Bedienungshilfen für die Größe des Berührungszielbereichs von Material zu erfüllen. Der Berührungszielbereich einer Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 × 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird Compose Material an das Verhalten von Material Design Components angepasst. So ist das Verhalten konsistent, wenn Sie Views und Compose mischen. Diese Änderung sorgt auch dafür, dass beim Erstellen der Benutzeroberfläche mit Compose Material-Komponenten die Mindestanforderungen für die Barrierefreiheit von Touch-Zielen erfüllt werden.

Fehlerkorrekturen

  • Es wurden bessere Debugging-Informationen für den Layout-Inspector hinzugefügt, wenn Modifikatoren für das Mindest-Touch-Ziel untersucht werden. (aosp/1955036)

Version 1.1.0-rc01

15. Dezember 2021

androidx.compose.material:material-*:1.1.0-rc01 wird veröffentlicht. 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 veröffentlicht. Version 1.1.0-beta04 enthält diese Commits.

Neue Funktionen

  • Aktualisiert, um mit Kotlin 1.6.0 kompatibel zu sein

Version 1.1.0-beta03

17. November 2021

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

Fehlerkorrekturen

  • Ripples und andere Hinweise werden jetzt nur noch verzögert, wenn sie sich in einem Modifier.scrollable()-Container befinden, anstatt immer bei einem Down-Ereignis verzögert zu werden. (Ibefe0, b/203141462)

Version 1.1.0-beta01

27. Oktober 2021

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

Neue Funktionen

  • Ripples unterstützen jetzt Hover- und Fokusstatus. Wenn Sie also den Mauszeiger auf eine Komponente wie „Button“ bewegen oder den Fokus darauf legen, wird jetzt das richtige Status-Overlay angezeigt.

Version 1.1.0-alpha06

13. Oktober 2021

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

API-Änderungen

  • Für „Layout“ wurde eine überladene Version ohne untergeordnete Elemente hinzugefügt, die effizienter ist (Ib0d9a).
  • Implementierung von ExposedDropdownMenu basierend auf ExposedDropdownMenuBox mit TextField und DropdownMenu (If60b2)
  • dismissOnOutsideClick wurde PopupProperties hinzugefügt und ersetzt dismissOnClickOutside, das eingestellt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen, wodurch sich genauer steuern lässt, ob „onDismissRequest“ aufgerufen werden soll oder nicht. Das kann beispielsweise nützlich sein, um zu verhindern, dass ein Anker bei Berührungen des Ankers entfernt wird.
    • updateAndroidWindowManagerFlags wurde PopupProperties hinzugefügt, um eine detaillierte Steuerung der Flags zu ermöglichen, die vom Pop-up an den Android WindowManager übergeben werden. Der Parameter des Lambda ist das Flag, das aus den PopupProperties-Werten berechnet wird, die zu WindowManager-Flags führen, z.B. „focusable“. Das Ergebnis der Lambda-Funktion sind die endgültigen Flags, die an den Android-WindowManager übergeben werden. Standardmäßig werden die aus Parametern berechneten Flags durch updateAndroidWindowManagerFlags nicht geändert. Diese API sollte nur mit Vorsicht und nur in Fällen verwendet werden, 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 veröffentlicht. Version 1.1.0-alpha05 enthält diese Commits.

API-Änderungen

  • Fügt eine Mindestgröße für Berührungszielbereiche für Material-Komponenten hinzu, die keinen zugänglichen Berührungszielbereich haben. Da dadurch zusätzlicher Abstand um Komponenten herum eingefügt wird, um sicherzustellen, dass sie einen ausreichend großen Berührungszielbereich haben, kann sich die Darstellung vorhandener Benutzeroberflächen ändern, bei denen davon ausgegangen wird, dass die Größe dieser Komponenten ihrer visuellen Größe entspricht und die Größe des Berührungszielbereichs nicht berücksichtigt wird. Sie können das experimentelle LocalMinimumTouchTargetEnforcement-Kompositionslokal verwenden, um dieses Verhalten in einer Hierarchie zu deaktivieren. Dies ist jedoch nur als vorübergehende Lösung gedacht, während vorhandene Benutzeroberflächen aktualisiert werden, um die neue Mindestgröße zu berücksichtigen. (I9b966, b/149691127, b/171509422)
  • Die experimentelle Schnittstelle „TextFieldColorsWithIcons“ wurde hinzugefügt. Sie erweitert „TextFieldColors“ um „InteractionSource“ für „leadingColor“ und „trailingColor“. So kann das Erscheinungsbild von TextField entsprechend dem Fokusstatus geändert werden. (I66923, b/198402662)

Version 1.1.0-alpha04

15. September 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Zulassen, dass sich die Grenzen des Berührungszielbereichs über den Clipbereich hinaus erstrecken, um die Mindestgröße des Berührungszielbereichs zu erreichen. (I43e10, b/171509422)
  • Das Divider-Composable wurde aktualisiert, um Dp.Hairline für den Parameter „thickness“ (Dicke) zu berücksichtigen. So können unabhängig von der Displaydichte Trennlinien mit einer Breite von einem Pixel gezeichnet werden. (I16ffb, b/196840810)

Version 1.1.0-alpha03

1. September 2021

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

Neue Funktionen

  • Compose 1.1.0-alpha03 wurde aktualisiert und hängt jetzt von Kotlin 1.5.30 ab. (I74545)

API-Änderungen

  • Es wurde eine Testmethode zum Abrufen der beschnittenen Grenzen hinzugefügt. (I6b28e)
  • Der ViewConfiguration wurde eine Mindestgröße für den Berührungszielbereich hinzugefügt, die in der Semantik und bei der Zeigereingabe verwendet wird, um die Barrierefreiheit zu gewährleisten. (Ie861c)

Version 1.1.0-alpha02

18. August 2021

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

Externe Beiträge

  • 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 veröffentlicht. Version 1.1.0-alpha01 enthält diese Commits.

API-Änderungen

  • Die Methode DrawScope#drawImage wurde aktualisiert und verwendet jetzt Quell- und Zielrechtecke, um einen optionalen Parameter „FilterQuality“ zu verwenden. Das ist nützlich für Pixelkunst, die beim Hochskalieren für pixelbasierte Kunst bewusst verpixelt werden soll. Die Composables „BitmapPainter“ und „Image“ wurden aktualisiert, sodass sie auch einen optionalen Parameter „FilterQuality“ verwenden (Ie4fb0, b/180311607).
  • BadgeBox wurde in BadgedBox umbenannt und die Parameter wurden so geändert, dass sie die Badge-Composable-Funktion akzeptieren. Die Komponente „Badge“ wurde hinzugefügt. Sie enthält die typischen Badge-Inhalte für eine „BadgedBox“. (I639c6)
  • Die Komponente „NavigationRail“ wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I8de77).

Fehlerkorrekturen

  • Ein unten ausgerichtetes NavigationRail-Beispiel und eine Demo der Catalog-App wurden hinzugefügt. (I3cffc)
  • Dialoge folgen jetzt dem Größenverhalten der Plattform. Setzen Sie „usePlatformDefaultWidth“ auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
  • Der Katalog-App wurde eine Demo für die Navigationsleiste hinzugefügt. (I04960)
  • Der Katalog-App wurde eine Badge-Demo hinzugefügt. (If285d)

Version 1.0

Version 1.0.5

3. November 2021

androidx.compose.material:material-*:1.0.5 wird veröffentlicht. Version 1.0.5 enthält diese Commits.

Fehlerkorrekturen

  • Ein Absturz beim Tracking von „derivedStateOf“-Instanzen wurde behoben. (aosp/1792247)

Version 1.0.4

13. Oktober 2021

androidx.compose.material:material-*:1.0.4 wird veröffentlicht. Version 1.0.4 enthält diese Commits.

Abhängigkeitsupdates

  • Aktualisiert, um von Kotlin 1.5.31 abhängig zu sein

Version 1.0.3

29. September 2021

androidx.compose.material:material-*:1.0.3 wird veröffentlicht. Version 1.0.3 enthält diese Commits.

Abhängigkeitsupdates

  • Aktualisiert, um von Kotlin 1.5.30 abhängig zu sein

Version 1.0.2

1. September 2021

androidx.compose.material:material-*:1.0.2 wird veröffentlicht. Version 1.0.2 enthält diese Commits.

Aktualisiert zur Unterstützung der Compose-Version 1.0.2. 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 veröffentlicht. Version 1.0.1 enthält diese Commits.

Abhängigkeitsupdates

  • Die Abhängigkeit wurde auf Kotlin 1.5.21 aktualisiert.

Version 1.0.0

28. Juli 2021

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

Wichtige Funktionen von Version 1.0.0

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

Bekannte Probleme

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

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

    Um das Problem zu beheben, erhöhen Sie vorübergehend die minSdkVersion in Ihrer build.gradle-Datei 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 veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Dialoge folgen jetzt 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 veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

API-Änderungen

  • Die Komponente BadgeBox wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I5e284).
  • useDefaultMaxWidth in PopupProperties wurde in usePlatformDefaultWidth umbenannt. (I05710)
  • Dialogfelder können jetzt die gesamte Bildschirmbreite nutzen. (I83929, b/190810877)
  • Implementierung des experimentellen Bereichsschiebereglers hinzugefügt (I2f4b3)

Fehlerkorrekturen

  • Gemäß den Material Design-Spezifikationen wird für OutlinedTextField mit ungültiger Eingabe nicht mehr die Fehlerfarbe für das Label verwendet, wenn das Label als Platzhalter verwendet wird. Letzteres ist der Fall, wenn im Textfeld kein Eingabetext vorhanden ist und das Textfeld nicht fokussiert ist. Damit hat sich auch die Bedeutung des Parameters error:Boolean in der Funktion TextFieldColors.labelColor() geändert: Er gibt jetzt false zurück, auch wenn die Eingabe ungültig ist, sofern das Label als Platzhalter verwendet wird. (I45f78)

Version 1.0.0-beta09

16. Juni 2021

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

API-Änderungen

  • Der Parameter „Shape“ wurde dem 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

  • Der Scrim in BottomDrawer, BackdropScaffold und ModalBottomSheetLayout verschwindet, wenn Color.Unspecified übergeben wird (I2d899, b/182063309)

Hinzugefügte Profilregeln

In dieser Version werden den folgenden Compose-Modulen Profilregeln hinzugefügt (I14ed6):

  • 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.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Was sind Profilregeln?

  • Profilregeln für eine Bibliothek werden in einer Textdatei baseline-prof.txt angegeben, die sich im Verzeichnis src/main oder einem entsprechenden Verzeichnis befindet. In der Datei wird eine Regel pro Zeile angegeben. Eine Regel ist in diesem Fall ein Muster, das mit Methoden oder Klassen in der Bibliothek abgeglichen wird. Die Syntax für diese Regeln ist eine Obermenge des menschenlesbaren ART-Profilformats, das bei der Verwendung von adb shell profman --dump-classes-and-methods ... verwendet wird. Diese Regeln können entweder auf Methoden oder auf Klassen ausgerichtet sein.

  • Eine Methodenregel hat das folgende Muster:

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

    <CLASS_DESCRIPTOR>
    
  • Dabei ist <FLAGS> eines oder mehrere 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 die 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 abdeckt.

Was bewirken die Regeln?

  • Eine Methode mit dem Flag H ist eine „heiße“ Methode und sollte vorab kompiliert werden.

  • Eine Methode mit dem Flag S wird beim Start aufgerufen und sollte vorab kompiliert werden, um die Kosten für die Kompilierung und Interpretation der Methode beim Start zu vermeiden.

  • Eine Methode mit dem Flag P wird nach dem Start aufgerufen.

  • Eine Klasse, die in dieser Datei vorhanden ist, wird beim Start verwendet und sollte im Heap vorab zugewiesen werden, um die Kosten für das Laden der Klasse zu vermeiden.

So funktioniert's

  • Bibliotheken können diese Regeln definieren, die in AAR-Artefakten enthalten sind. Wenn dann ein APK erstellt wird, das diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln werden verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das spezifisch für das APK ist. ART kann dieses Profil dann verwenden, wenn die APK auf Geräten installiert wird, um ein bestimmtes Subset der Anwendung vorab zu kompilieren und so die Leistung der Anwendung zu verbessern, insbesondere beim ersten Ausführen. Hinweis: Dies hat keine Auswirkungen auf debugfähige Anwendungen.

Version 1.0.0-beta08

2. Juni 2021

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

Neue Funktionen

Verhaltensändernde API-Änderung

  • VERHALTENSÄNDERUNG: Die Karte verarbeitet jetzt Klicks. Klicks, die über Card(Modifier.clickable) hinzugefügt werden, werden ignoriert. Verwenden Sie die neue experimentelle Überladung einer Karte, die „onClick“ akzeptiert. (Ia8744, b/183775620)
    • Es wurde eine neue Kartenüberladung hinzugefügt, die Klicks sowie andere klickbare Funktionen verarbeitet: indication, interactionSource, enabled/disabled. Es war nicht möglich, eine normale, nicht klickbare Karte mit dem Modifier.clickable zu verwenden, da die Karte in diesen Fällen die Ripple-Anzeige nicht beschneidet.
  • VERHALTENSÄNDERUNG: „Surface“ verarbeitet jetzt Klicks. Klicks, die über Surface(Modifier.clickable) hinzugefügt werden, werden ignoriert. Verwenden Sie die neue experimentelle Überladung von „Surface“, die „onClick“ akzeptiert. (I73e6c, b/183775620)
    • Es wurde eine neue Surface-Überladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: Indikation, interactionSource, aktiviert/deaktiviert. Es war nicht möglich, eine normale, nicht klickbare Oberfläche mit Modifier.clickable zu verwenden, da die Oberfläche in diesen Fällen die Wellenanzeige nicht beschneidet.

API-Änderungen

  • FabPosition wurde von einer Enumeration in eine Inline-Klasse konvertiert, um eine mögliche zukünftige Erweiterung zu unterstützen (I030fb).
  • Die Verwendung von Enums wurde in Inline-Klassen umgestaltet, um Probleme mit erschöpfenden „when“-Anweisungen zu vermeiden, wenn neue Enum-Werte hinzugefügt werden. (I2b5eb)
  • Es wurde ein Tipp-Timeout für klickbare/umschaltbare Elemente hinzugefügt, um zu verhindern, dass während eines Scroll- oder Ziehvorgangs ein Ripple-Effekt angezeigt wird (Ia2704, b/168524931).
  • Die Semantik-Properties „ContentDescription“ und „Text“ sind nicht mehr einzelne Werte, sondern Listen. So können sie zusammengeführt werden, anstatt aneinandergehängt zu werden. Außerdem wurden bessere Test-APIs bereitgestellt, um diese Änderungen zu nutzen (Ica6bf, b/184825850).
  • Modifier.focusModifier() wurde verworfen und durch Modifier.focusTarget() ersetzt (I6c860)
  • Das FocusState-Enum wurde durch eine FocusState-Schnittstelle ersetzt (Iccc1a, b/187055290)
  • LocalRippleNativeRendering wurde entfernt, da die View-basierte Ripple-Implementierung stabil ist (I7fab3, b/188569367).

Fehlerkorrekturen

  • Modifier.onGloballyPositioned() wurde geändert, um die Koordinaten dieses Modifikators in der Modifikator-Kette zu melden, nicht die Layoutkoordinaten nach Anwendung aller Modifikatoren. Das bedeutet, dass die Reihenfolge der Modifizierer jetzt beeinflusst, welche Koordinaten gemeldet werden. (Ieb67d, b/177926591)
  • Für den vorhandenen Compose Material-Katalog wurde eine README-Datei hinzugefügt. (If9191)

Version 1.0.0-beta07

18. Mai 2021

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

API-Änderungen

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

Version 1.0.0-beta06

5. Mai 2021

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

API-Änderungen

  • Ripple wurde migriert und verwendet intern RippleDrawable auf Android-Geräten. Das bedeutet, dass Ripple-Animationen im RenderThread ausgeführt werden und daher auch dann flüssig dargestellt werden, wenn der UI-Thread ausgelastet ist, z. B. beim Navigieren zwischen Bildschirmen. Die API-Oberfläche von Ripple ändert sich dadurch nicht, aber es kann zu Verhaltensänderungen kommen. Zur Unterstützung der Migration wurde LocalRippleNativeRendering hinzugefügt. Geben Sie für diese CompositionLocal den Wert false an, um auf die vorherige Ripple-Implementierung im CompositionLocalProvider zurückzugreifen. Diese API ist temporär und wird in Zukunft entfernt. Wenn Sie also auf Probleme stoßen, die dazu führen, dass Sie diese API verwenden, melden Sie bitte einen Fehler. (I902f8, b/168777351, b/183019123)
  • Es wurden die Accessibility-APIs „CollectionInfo“ und „CollectionItemInfo“ hinzugefügt, mit denen Sammlungen und ihre Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
  • Die Bedienungshilfen-API error wurde hinzugefügt. Damit kann ein Knoten markiert werden, der ungültige Eingaben enthält (I12997, b/180584804, b/182142737).

Fehlerkorrekturen

  • Die Implementierung von Compose Material-Katalog-Insets wurde aktualisiert: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Untergeordnete Elemente vom Typ „Row“ und „Column“ mit „weight(fill = false)“ sorgen nicht mehr dafür, dass das übergeordnete Element den gesamten verfügbaren Platz auf der Hauptachse ausfüllt. (Ied94d, b/186012444, b/184355105)

Version 1.0.0-beta05

21. April 2021

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

Fehlerkorrekturen

  • Dem bestehenden Compose Material-Katalog wurden Kachelbilder für Komponenten, eine 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 veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

API-Änderungen

  • API-ÄNDERUNG: Der DrawerState-Status wird nicht mehr auf den experimentellen SwipeableState erweitert.
    • API-ÄNDERUNG: BottomDrawerState ist jetzt als „Experimentell“ gekennzeichnet, um der bereits als „Experimentell“ gekennzeichneten BottomDrawer-Komponente zu entsprechen (I81114, b/181656094).
  • Benennen Sie hideSoftwareKeyboard und showSoftwareKeyboard auf SoftwareKeyboardController in hide() bzw. show() um.
    • Die vollständige CompositionLocal-Schnittstelle für LocalSoftwareKeyboardController wird bereitgestellt, sodass sie festgelegt werden kann (besonders nützlich in Tests) (I579a6).
  • Die LiveRegion-Accessibility-API wurde hinzugefügt. Wenn ein Knoten als Live-Bereich markiert ist, werden die Nutzer von den Barrierefreiheitsdiensten automatisch über Änderungen informiert (Idcf6f, b/172590946).

Fehlerkorrekturen

  • Implementierung des Compose Material-Katalogs zum vorhandenen Modul hinzugefügt. Derzeit fehlen: Kachelbilder für Komponenten, Themenauswahl (wird in nachfolgenden Änderungen hinzugefügt). (Ie7a94)

Version 1.0.0-beta03

24. März 2021

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

API-Änderungen

  • DefaultMonotonicFrameClock ist veraltet. Wenn Sie withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock aufrufen, wird jetzt IllegalStateException ausgegeben. (I4eb0d)
  • Es wurde eine neue API LeadingIconTab hinzugefügt, mit der ein Symbol und Inline-Text auf einem Tab angezeigt werden können. (I23267)

Externe Beiträge

  • [von Jossi Wolf] BottomDrawer umschließt jetzt den Inhalt des Drawer-Slots. BottomDrawer löst keine IllegalStateException aus, wenn das übergeordnete Element eine unendliche Höhe hat. Die untere Schublade wird jetzt in einem erweiterten Zustand geöffnet, wenn sie kleiner als 50% des übergeordneten Elements ist. Die Dokumentation zu BottomDrawerState und ModalBottomSheetLayoutState wurde aktualisiert. BottomDrawerState#isOpen gibt jetzt „true“ zurück, wenn der Status „offen“ oder „maximiert“ ist. (I87241)

Version 1.0.0-beta02

10. März 2021

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

API-Änderungen

  • Es wurde eine neue lokale API für die LocalSoftwareKeyboardController-Zusammensetzung hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle für 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, was mit der Ausrichtung für Row übereinstimmt (Ib2dc7).
  • Es wurde ein neues Modul und eine neue Platzhalter-UI für einen Compose Material-Katalog hinzugefügt, der derzeit in vorhandenen Integrations-Testdemos verschachtelt ist. (Idfcb3)
  • androidx.compose.ui:ui hängt nicht mehr von AppCompat oder Fragment ab. Wenn Sie in Ihrer Anwendung eine ComposeView verwenden und Fragment und/oder AppCompat nutzen, müssen Sie AppCompat 1.3+ / Fragment 1.3+ verwenden. Diese Versionen sind erforderlich, um die für ComposeView erforderlichen Lifecycle- und SavedState-Inhaber richtig festzulegen. (I1d6fa, b/161814404)

Version 1.0.0-beta01

24. Februar 2021

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

Dies ist die erste Version von Compose 1.0.0 Beta.

API-Änderungen

  • Größenmodifizierer wurden umbenannt. „Modifier.width“/„height“/„size“ wurden in „requiredWidth“/„requiredHeight“/„requiredSize“ umbenannt. Modifier.preferredWidth/preferredHeight/preferredSize wurden in width/height/size umbenannt. (I5b414)
  • imageResource und vectorResource sind jetzt Erweiterungsfunktionen für ImageBitmap- und ImageVector-Begleitobjekte. Die Funktionen load{Image,Vector,Font}Resource wurden gelöscht. (I89130)
  • Modifikatoren für die Größenanpassung an intrinsische Werte sind nicht mehr experimentell. (I15744)
  • Geräteprofil-Assertions entfernt (I798d2)
  • Der SoftwareKeyboardController-Callback wurde aus allen Textfeldern entfernt und wird in Kürze durch eine neue API ersetzt. (Iae869, b/168778053)
  • Die Lambda-Ausdrücke für die Aktionen „Switch“, „Checkbox“ und „RadioButton“ sind jetzt nullable. Die Beispiele für das Kontrollkästchen in einer anklickbaren Zeile wurden aktualisiert, um diese Funktion zu verwenden. (If601b, b/171819073)
  • InteractionState wurde durch [Mutable]InteractionSource ersetzt.
    • Schnittstellen sind für das Ausgeben / Erfassen von Interaktionsereignissen verantwortlich.
    • Anstatt interactionState = remember { InteractionState() } an Komponenten wie Button und Modifier.clickable() zu übergeben, verwenden Sie interactionSource = remember { MutableInteractionSource() }.
    • Statt Interaction.Pressed in interactionState sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState().
    • Bei komplexen Anwendungsfällen können Sie InteractionSource.interactions verwenden, um den Stream von Interaktionen zu beobachten. Weitere Informationen finden Sie in der Dokumentation und den Beispielen zu „InteractionSource“.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • AccessibilityMananger-Schnittstelle und LocalAccessibilityMananger in CompositionLocals hinzugefügt (I53520)
  • Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie stattdessen die Funktion anstelle der Eigenschaft für „positionInParent“ und „boundsInParent“ (I580ed, b/169874631, b/175142755).
  • Schieberegler unterstützen jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
  • Es wurde eine neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
  • „AnimationEndReason.Interrupted“ wurde entfernt. CancellationException wird ausgelöst, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
  • @ExperimentalRippleApi wurde entfernt und RippleAlpha wurde in eine Klasse mit Attributen anstelle einer Schnittstelle geändert. (I6df7c)
  • Die Schnittstelle „TextFieldColors“ wurde hinzugefügt, um verschiedene Farben darzustellen, die in „TextField“ und „OutlinedTextField“ in verschiedenen Status verwendet werden. Informationen zur Standardimplementierung finden Sie unter TextFieldDefaults.textFieldColors und TextFieldDefaults.outlinedTextFieldColors.
    • Der Parameter „isErrorValue“ in „TextField“ und „OutlinedTextField“ wurde in „isError“ umbenannt. (I831f9, b/171305338, b/168004067)
  • „selectionGroup“-Modifikator hinzugefügt, mit dem Sammlungen von Tabs oder Optionsfeldern für Barrierefreiheitszwecke markiert werden können (Ie5c29)
  • LazyListState.animateScrollToItem hinzufügen

    Mit dieser Methode wird ein sanfter Bildlauf zu einem bestimmten Element in der Liste ausgeführt. (I4bfd7)

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

  • Alle Composables, die mit @ReadOnlyComposable gekennzeichnet sind, werden jetzt zur Kompilierzeit validiert, um sicherzustellen, dass sie nur andere @ReadOnlyComposables aufrufen (I58961).

  • Die 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.* geändert (I3f7c1, b/175294473).

  • FlingConfig wurde in FlingBehavior umbenannt und ermöglicht jetzt die Anpassung der Suspend-Animation anstelle vordefinierter Decays. (I02b86, b/175294473)

  • Größenmodifizierer wurden umbenannt. „Modifier.width“/„height“/„size“ wurden 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 Fundamentpaket verschoben. VelocityTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)

  • drawerState.open() und drawerState.close() sind jetzt suspend-Funktionen. Verwenden Sie rememberCoroutineScope(), um den Bereich der Komposition abzurufen, um sie aufzurufen (I16f60, b/175294473).

  • „Providers“ wurde in „CompositionLocalProvider“ umbenannt.

    • Der Konstruktor „Composition“ akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
    • currentCompositeKeyHash wurde in eine zusammensetzbare Property auf oberster Ebene anstelle einer zusammensetzbaren Funktion auf oberster Ebene umgewandelt.
    • „CompositionData“ und „CompositionGroup“ wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben.
    • ComposableLambda ist jetzt eine Schnittstelle anstelle einer konkreten Klasse und hat keine Typparameter mehr.
    • ComposableLambdaN ist jetzt eine Schnittstelle anstelle einer konkreten Klasse und hat keine Typparameter mehr.
    • Die Funktion „snapshotFlow“ wurde in den Namespace „androidx.compose.runtime“ verschoben.
    • Die Zusammenführungsmethode von SnapshotMutationPolicy ist nicht mehr experimentell.
    • Die @TestOnly-Funktion „clearRoots“ auf oberster Ebene wurde entfernt. Das ist nicht mehr erforderlich.
    • Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie sind nicht mehr erforderlich.
    • Composer.collectKeySourceInformation wurde entfernt. Das ist nicht mehr erforderlich.
    • Die Methoden „isJoinedKey“, „joinedKeyLeft“ und „joinedKeyRight“ wurden entfernt. Sie sind nicht mehr erforderlich.
    • Verschiedene APIs der obersten Ebene wurden verschoben und in verschiedenen Dateien neu organisiert. Aufgrund der Dateiklassensemantik von Kotlin wird dadurch die binäre Kompatibilität, nicht aber die Quellkompatibilität beeinträchtigt. Für die meisten Nutzer sollte das kein Problem darstellen.
    • (I99b7d, b/177245490)
  • Modifier.scrollable wurde überarbeitet. Jetzt wird die Scrollable-Schnittstelle anstelle der ScrollableController-Klasse verwendet (I4f5a5, b/174485541, b/175294473).

  • „Modifier.draggable“ akzeptiert jetzt „DraggableState“ anstelle einer einfachen Lambda-Funktion. Sie können den Status über rememberDraggableState { delta -> } erstellen, um das gleiche Verhalten wie zuvor zu erhalten (Ica70f, b/175294473).

  • ZoomableController.smoothScaleBy und ZoomableController.stopAnimation sind jetzt suspend-Funktionen. (I7f970, b/177457083)

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

  • Folgende Änderungen an der Material API wurden vorgenommen:

    • Der Parameter „contentPadding“ wurde der Top-/BottomAppBar hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen.
    • Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien zu entsprechen, nach denen erforderliche Parameter vor optionalen Parametern stehen müssen.
    • Der Parameter icon in BottomNavigationItem wurde nach selected und onClick verschoben.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • bodyContent-Parameter in einigen Komponenten wurden in content umbenannt.
    • Die Reihenfolge der Parameter in ButtonDefaults.buttonColors() wurde geändert. Da sich der Typ der Parameter nicht geändert hat, führt dies nicht zu einem Fehler in Ihrem Code. Sie müssen jedoch entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren, da Ihr Code sonst nicht wie bisher funktioniert.
    • Der Parameter secondaryVariant wurde zu darkColors() hinzugefügt. Diese Farbe ist im dunklen Design in der Regel dieselbe wie secondary. Sie wird jedoch zur Konsistenz und für weitere Anpassungen hinzugefügt.
    • ElevationDefaults und animateElevation() wurden aus der öffentlichen API entfernt, da sie nicht häufig verwendet wurden.
    • onValueChangeEnd in Slider wurde in onValueChangeFinished umbenannt und kann jetzt auch null sein.
    • Der Parameter text in Snackbar wurde aus Konsistenzgründen in content umbenannt.
    • Der Parameter contentPadding wurde zu DropdownMenuItem hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen. Außerdem ist content jetzt eine Erweiterung von RowScope.
    • ModalDrawerLayout wurde in ModalDrawer umbenannt.
    • BottomDrawerLayout wurde in BottomDrawer umbenannt.
    • (I1cc66)
  • BasicTextField akzeptiert jetzt Brush anstelle von Color für eine bessere Anpassung (I83a36)

  • imageResource und vectorResource sind jetzt Erweiterungsfunktionen für ImageBitmap- und ImageVector-Begleitobjekte. Die Funktionen load{Image,Vector,Font}Resource wurden gelöscht. (I89130)

  • Die Methode „Indication#createIndication()“ wurde in „Indication#rememberUpdatedIndication(InteractionState)“ umbenannt und der Parameter „InteractionState“ wurde aus „IndicationInstance#drawIndication()“ entfernt. „IndicationInstance“ sollte nur für das Zeichnen visueller Effekte zuständig sein und nicht für das Starten von Animationen oder das Schreiben von Status als Reaktion auf Änderungen von „InteractionState“. Diese Animationen und Statusänderungen sollten stattdessen in rememberUpdatedIndication() erfolgen. Der Parameter indication in Modifier.indication wurde ebenfalls in einen erforderlichen Parameter geändert. (Ic1764, b/152525426)

Fehlerkorrekturen

  • Es wurde eine neue lokale Kompositions-API für LocalSoftwareKeyboardController hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle für TextField zu ersetzen. (I658b6, b/168778053)

Version 1.0.0-alpha12

10. Februar 2021

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

API-Änderungen

  • Für Modifier.pointerInput sind jetzt Remember-Schlüssel erforderlich, um anzugeben, wann die Pointer-Eingabeerkennungs-Coroutine für neue Abhängigkeiten neu gestartet werden soll. (I849cd)
  • BottomDrawerLayout und ListItem wurden mit @ExperimentalMaterialApi (Id766e) gekennzeichnet.
  • PaddingValues.Absolute wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
  • onImeActionPerformed ist veraltet. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523).
  • Um die Namenskonventionen besser an ImageBitmap und ImageVector anzupassen, wurde ImagePainter in BitmapPainter umbenannt, um VectorPainter zu entsprechen. (Iba381, b/174565889)
  • Animatable.snapTo und Animatable.stop sind jetzt suspend-Funktionen (If4288)
  • ComponentActivity.setContent wurde in das Modul androidx.activity:activity-compose verschoben und befindet sich jetzt unter androidx.activity.compose.setContent. (Icf416)
  • Die Methoden „Destructuring“ und „copy()“ wurden aus mehreren Klassen entfernt, in denen sie nur selten verwendet wurden. (I26702, b/178659281)
  • „halfExpand()“ und „expand()“ in „ModalBottomSheetState“ intern machen (Ic914e)
  • „Indication#createInstance“ wurde in „@Composable“ geändert und „LocalIndication“ enthält jetzt eine „Indication“ und nicht „() -> Indication“. (I5eeea, b/157150564)
  • AlertDialog und DropdownMenu sind vorerst nur für Android verfügbar. Der DropdownMenu-Komponente wurde der Parameter „PopupProperties“ hinzugefügt, um das zugrunde liegende Popup weiter zu konfigurieren. (I9c443)
  • „loadFontResource“ ist veraltet. Verwenden Sie stattdessen „fontResource“. „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ sind veraltet. Verwenden Sie stattdessen „painterResource“. (I6b809)
  • Die Parameter toggle und toggleModifier wurden aus DropdownMenu entfernt. Die Parameter dropdownModifier, dropdownOffset und dropdownContent wurden in modifier, offset und content umbenannt. DropdownMenu verhält sich jetzt konsistent zu Popup. Das übergeordnete Layout wird für die Position des Menüs verwendet. In den meisten Fällen können Sie toggle als gleichgeordnetes Element von DropdownMenu verschieben und beide in ein Box einfügen. 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 hinzugefügt. expand und halfExpand in ModalBottomSheetState hinzugefügt (Ib5064)
  • „Modifier.dragGestureFilter“ wurde eingestellt. Verwenden Sie stattdessen Modifier.pointerInput { detectDragGestures (...)}. Alternativ können Sie Modifier.draggable für das Ziehen auf einer Achse verwenden (I0ba93, b/175294473).
  • Umgebungen wurden umbenannt, um der Umbenennung von „Ambient“ in „CompositionLocal“ zu entsprechen. Ambients hießen früher „AmbientFoo“, jetzt heißen CompositionLocals „LocalFoo“. (I2d55d)
  • Die Auswahl wurde in die Grundlage verschoben. (I7892b)
  • Ähnlich wie wir zuvor die zusammensetzbare Funktion state { 0 } entfernt und die Verwendung von remember { mutableStateOf(0) } gefördert haben, werden wir die zusammensetzbare Funktion savedInstanceState { 0 } entfernen. Verwenden Sie stattdessen rememberSaveable { mutableStateOf(0) }. Der Wert wird automatisch gespeichert und wiederhergestellt, wenn der Typ, der in MutableState verwendet wird, im Bundle gespeichert werden kann. Wenn Sie zuvor ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie jetzt eine neue Überladung von „rememberSaveable“ mit dem Parameter stateSaver verwenden. Die Verwendung sieht so aus: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • ProgressBarRangeInfo.Indeterminate wurde hinzugefügt, um unbestimmte Fortschrittsanzeigen für die Barrierefreiheit zu kennzeichnen (I6fe05).
  • @ComposableContract wurde zugunsten von drei spezifischeren Annotationen eingestellt.

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

  • rememberSavedInstanceState() wurde in rememberSaveable() umbenannt und in das Paket androidx.compose.runtime.saveable verschoben. (I1366e, b/177338004)

  • „Saver“, „listSaver()“, „mapSaver()“ und „autoSaver“ wurden von „androidx.compose.runtime.savedinstancestate“ nach „androidx.compose.runtime.saveable“ verschoben (I77fe6).

  • Parameter für RounderCornerShape, CutCornerShape und CornerBasedShape wurden von „left“/„right“ in „start“/„end“ 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 keine automatische Spiegelung gewünscht ist. (I61040, b/152756983)

  • Die Parameter text und icon von „ChangedTab“ und der Parameter label von „BottomNavigationItem“ wurden auf „nullable“ gesetzt, um das Verhalten der Komponente besser zu veranschaulichen, wenn diese Parameter angegeben werden oder nicht, da dies sich auf die Größe und das Layout der Komponente auswirkt. Wenn Sie derzeit emptyContent() übergeben, um keinen Text, kein Symbol und kein Label darzustellen, sollten Sie stattdessen null verwenden. (I57ed4)

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

  • „TabDefaults“ wurde verworfen und durch „TabRowDefaults“ ersetzt. (I0f189)

  • Die ColorMatrix API wurde eingeführt, um RGB-Werte von Quellinhalten zu ändern. Die ColorFilter API wurde als Schnittstelle refaktoriert und entspricht der Implementierung von PathEffect. (Ica1e8)

  • AnimatedValue/Float wurde eingestellt. Verwenden Sie stattdessen „Animatable“. (I71345, b/177457083)

  • Die API „SemanticsProperties.PaneTitle“ wurde hinzugefügt. (I20d5a)

  • Den Komponenten „Tab“ und „BottomNavigationItem“ wurden aktivierte Parameter hinzugefügt, um zu verhindern, dass sie angeklickt werden können. „BottomNavigationItem“ wurde in „RowScope.BottomNavigationItem“ geändert, um die Layoutanforderungen in der API besser auszudrücken. (Id683d)

  • „tapGestureFilter“, „doubleTapGestureFilter“, „longPressGestureFilter“ und „pressIndicaitonGestureFilter“ wurden eingestellt. Verwenden Sie stattdessen Modifier.clickable oder Modifier.pointerInput mit der Funktion detectTapGestures. (I6baf9, b/175294473)

  • Der Funktion „createOutline“ der Form wird der Parameter „layoutDirection“ hinzugefügt. So lassen sich Formen erstellen, die die Layoutrichtung berücksichtigen. (I57c20, b/152756983)

  • Recomposer.current() wurde entfernt. [Zusammenfassung]ComposeView wird jetzt standardmäßig verzögert erstellt und verwendet Recomposers mit Fensterbereich, die vom ViewTreeLifecycleOwner für das Fenster gesteuert werden. Die Recomposition und auf „withFrameNanos“ basierende Animations-Ticks werden pausiert, während der Lebenszyklus des Hosts angehalten wird. (I38e11)

Fehlerkorrekturen

  • Das Symbol wird jetzt so skaliert, dass es der Größe entspricht, wobei alle angewendeten Größenmodifizierer berücksichtigt werden. Icon(.., modifier = Modifier.size(50.dp) wird jetzt beispielsweise in einem Bereich von 50 × 50 dp gezeichnet. (Ib2ba9, b/178796190)

Version 1.0.0-alpha11

28. Januar 2021

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

API-Änderungen

  • Einige Material-APIs werden nicht mehr als @Experimental (I5d20e) eingestuft.
  • Dem Bild und dem Symbol wurde der Parameter „Inhaltsbeschreibung“ hinzugefügt. Sie wird verwendet, um Bedienungshilfen (I2ac4c) eine Beschreibung zu geben.
  • Änderungen an zustandsorientierten Materialparameter-Schnittstellen, sodass sie @Composable-Funktionen haben, die State<T> zurückgeben. Fügt Animatable.asState() hinzu, um die Konvertierung eines Animatable in einen State zu vereinfachen. Außerdem wird „animateElevation“ in eine Suspend-Erweiterung für „Animatable“ geändert. (If613c)
  • Snackbar, SnackbarHost und SnackbarHostState sind nicht mehr @ExperimentalMaterialAPI (Id1fb5)
  • Die Klassen „Typography“, „Shapes“ und „TabPosition“ sind keine Datenklassen mehr. Es wurde eine Kopierfunktion für Typografie und Formen hinzugefügt, um die generierten Elemente zu ersetzen. (I40037)
  • Einige zuvor verworfene Material-APIs (Ifaa25) wurden gelöscht.

Fehlerkorrekturen

  • Die APIs „onCommit“, „onDispose“ und „onActive“ wurden zugunsten der APIs „SideEffect“ und „DisposableEffect“ eingestellt (If760e).
  • Auf TransitionDefinition basierende Übergänge sind veraltet (I0ac57)
  • Der Ausgangsstatus in „updateTransition“ wird jetzt unterstützt (Ifd51d).
  • „WithConstraints“ wurde als „BoxWithConstraints“ überarbeitet und nach „foundation.layout“ verschoben. (I9420b, b/173387208)
  • scrollBy ohne Unterbrechung einstellen, scrollTo ohne Unterbrechung entfernen

    Wir empfehlen jetzt, das Scrollen mit Suspend-Funktionen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht zum Sperren verwendet werden, eingestellt und/oder entfernt. (Ie9ced)

  • smoothScrollBy ohne suspend wird eingestellt Wir empfehlen jetzt, suspend-Funktionen zu verwenden, um das Scrollen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen, die nicht suspendiert werden, eingestellt. (I12880)

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

  • Die in „Button“ und „FloatingActionButton“ verwendete Wellenanimation kann nicht mehr angepasst werden, indem eine neue Indication über „AmbientIndication“ bereitgestellt wird. Das war nie als Möglichkeit zum Anpassen dieser Komponenten vorgesehen. Dadurch sind diese Komponenten jetzt mit anderen Material-Komponenten konsistent. Informationen zum Anpassen von Ripples in einer Anwendung finden Sie unter „RippleTheme“. (I546c5)

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

  • BasicTextField hat einen neuen Parameter namens decorationBox erhalten. Damit können dem Textfeld Dekorationen wie Symbole, Platzhalter und Labels hinzugefügt und der Trefferbereich vergrößert werden. (I16996)

  • Fehlerbehebung: Die Breite des Material-Textfelds konnte nicht auf weniger als 280 dp festgelegt werden (I78373).

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

  • Entfernen Sie „displaySize“, da diese Eigenschaft vermieden werden sollte. In der Regel ist es besser, die Größe von onRoot() oder zumindest die Fenstergröße zu verwenden. (I62db4)

  • Eine Oberfläche kann jetzt mehrere untergeordnete Layouts haben. (I66a92, b/144488459)

  • invalidate und compositionReference() sind jetzt zugunsten von currentRecomposeScope bzw. rememberCompositionReference veraltet. (I583a8)

  • Ändert PopupPositionProvider, sodass fensterbezogene Koordinaten anstelle von globalen Koordinaten verwendet werden. Benennt parentGlobalBounds in anchorBounds um und ändert windowGlobalBounds in windowSize: IntSize (I2994a)

  • „Duration“ und „Uptime“ werden durch „Long milliseconds“ ersetzt. Durch diesen Schritt wird die Abhängigkeit der Zeigereingabe von diesen Klassen entfernt. (Ia33b2, b/175142755, b/177420019)

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

  • Klickbare, ein- und ausschaltbare sowie auswählbare Elemente können jetzt außerhalb der Komposition erstellt werden (I0a130, b/172938345, b/175294473).

  • Die Funktion „Easing“ wurde in eine funktionale Schnittstelle (Ib14e5) geändert.

  • ScrollableColumn/Row wurden verworfen. Die Verwendung von „ScrollableColumn“ ist weniger effizient als „LazyColumn“, wenn Sie viele Inhalte haben, die gescrollt werden müssen, da mit „LazyColumn“ nur sichtbare Elemente zusammengestellt, gemessen und gezeichnet werden können. Um zu verhindern, dass Nutzer ineffiziente Methoden verwenden, haben wir beschlossen, ScrollableColumn und ScrollableRow einzustellen und stattdessen die Verwendung von LazyColumn und LazyRow zu fördern. Nutzer können sich weiterhin gegen das Lazy-Verhalten entscheiden und die Modifikatoren direkt verwenden, z. B. „Column(Modifier.verticalScroll(rememberScrollState()))“ (Ib976b, b/170468083).

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

  • Experimentelle monotonicFrameAnimationClockOf-Methoden entfernt (Ib753f, b/170708374)

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

  • Es wurde „Modifier.toolingGraphicsLayer“ hinzugefügt, mit dem ein Grafikebenen-Modifikator hinzugefügt wird, wenn die Prüfung aktiviert ist. (I315df)

  • FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich die Funktion ä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 „horizontalScrollAxisRange“ umbenannt. „verticalAccessibilityScrollState“ wurde in „verticalScrollAxisRange“ umbenannt. (Id3148)

  • TestCoroutineDispatcher in Tests verwenden (I532b6)

  • Die API für Vektorgrafiken wurde aktualisiert, um das Parsen von Farbtonanpassungen zu unterstützen, die auf den Stamm von Vektorgrafiken angewendet werden. (Id9d53, b/177210509)

Version 1.0.0-alpha10

13. Januar 2021

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

API-Änderungen

  • Velocity wurde so geändert, dass es aus Komponenten besteht und mathematische Operationen unterstützt. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt, um mit ähnlichen experimentellen API-Anmerkungen (Ia4502, b/171464963) konsistent zu sein.
  • Position in „DpOffset“ umbenannt und „getDistance()“ entfernt (Ib2dfd)
  • Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
  • Schaltfläche zu „foundation/Strings.kt“ hinzufügen (I4a5b7, b/172366489)
  • FlowRow und FlowColumn wurden verworfen. Verwenden Sie stattdessen ein benutzerdefiniertes Layout. (I09027)
  • „Modifier.focus()“ und „Modifier.focusRequester()“ sind veraltet. Verwenden Sie stattdessen „Modifier.focusModifier()“ und „Modifier.focusReference()“. (I75a48, b/175160751, b/175160532, b/175077829)
  • nativeClass wurde in das UI-Modul verschoben und als intern festgelegt. Die Verwendung von „nativeClass“ in „equals“-Implementierungen wurde aktualisiert, sodass stattdessen „is MyClass“ verwendet wird. (I4f734)

Fehlerkorrekturen

  • Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
  • animate() wurde durch animateAsState() ersetzt, das anstelle von T ein State<T> zurückgibt. Dies ermöglicht eine bessere Leistung, da der Ungültigkeitsbereich auf den Ort eingegrenzt werden kann, an dem der Statuswert gelesen wird. (Ib179e)
  • Fügen Sie die Semantics-Rollen-API hinzu und fügen Sie „Role“ als Parameter für den klickbaren, auswählbaren und umschaltbaren SemanticsModifier hinzu. „Modifier.progressSemantics“ wurde so geändert, dass es auch für „Slider“ verwendet werden kann. (I216cd)

Version 1.0.0-alpha09

16. Dezember 2020

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

API-Änderungen

  • API zum manuellen Auslösen der „Settle“-Animation und zum Ziehen in Modifier.swipeable hinzugefügt (Iaa17a, b/162408885)
  • *Constants-Objekte wie ButtonConstants wurden umbenannt und enden jetzt mit „Defaults“, z. B. ButtonDefaults. Außerdem werden unnötige default-Präfixe aus Eigenschaften in diesen neuen Objekten entfernt. (Ibb915, b/159982740)
  • Compose unterstützt Property-Getter, die Aufrufe von Composables ermöglichen. Die Unterstützung dafür wird nicht eingestellt, aber die Syntax zum Deklarieren eines Property-Getters als @Composable ändert sich.

    Die jetzt eingestellte Syntax dafür bestand darin, das Attribut selbst zu kommentieren:

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

    Die jetzt korrekte Syntax dafür besteht darin, den Getter der Property zu annotieren:

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

    Beide Syntaxen funktionieren noch eine Weile, aber die eingestellte Syntax führt irgendwann zu einem Kompilierungsfehler. (Id9197)

  • Die androidx.compose.material:material-ripple-Bibliothek mit Ripple-APIs wurde hinzugefügt, damit interaktive Komponenten erstellt werden können, ohne dass die restliche Material-Bibliothek erforderlich ist. rememberRippleIndication wurde eingestellt und durch rememberRipple ersetzt. (Ibdf11)

Fehlerkorrekturen

  • Lambdas in Offset-Modifizierern geben jetzt „IntOffset“ anstelle von „Float“ zurück. (Ic9ee5, b/174137212, b/174146755)
  • ShaderBrush wurde so umgestaltet, dass eine Shader-Instanz erst erstellt wird, wenn Größeninformationen der Zeichenumgebung verfügbar sind. Das ist nützlich, um Verläufe zu definieren, die zur Kompositionszeit die gesamten Zeichenbegrenzungen eines Composables einnehmen, ohne dass benutzerdefinierte DrawModifier-Implementierungen erforderlich sind.

    Verworfene Konstruktor-APIs für Gradientenfunktionen zugunsten von Factory-Methoden für ein Gradient-Objekt. (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. LazyColumn und LazyRow verwenden (I5b48c)

  • Dp.VectorConverter, Position.VectorConverter usw. wurden in „animation-core“ verschoben und die alten VectorConverter (If0c4b) sind veraltet.

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

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

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

  • Neue Funktion „infiniteRepeatable“ zum Erstellen eines InfiniteRepeatableSpec (I668e5)

  • Das Positionierungsverhalten von DropdownMenus wurde gemäß der Material-Spezifikation leicht geändert. (I34c72, b/168594123)

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

  • „Modifier.clearAndSetSemantics“ wurde hinzugefügt, um die Semantik von untergeordneten Elementen zu löschen und neue festzulegen. (I277ca)

  • ContentDrawScope wurde in das Modul „ui-graphics“ verschoben, um mit DrawScope zusammen zu sein. (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 sind veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

API-Änderungen

  • Mit MaterialTheme werden jetzt die richtigen Farben für Auswahlhandles und den Auswahlhintergrund festgelegt. Nicht-Material-Apps können die Farben für die Auswahl manuell mit AmbientTextSelectionColors anpassen. (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 Einhaltung der Compose-Richtlinien zu prüfen. Außerdem wurden einige APIs, die children als Namen für ihr nachgestelltes Lambda verwenden, gemäß Lint-Prüfung und Anleitung zu content migriert. (Iec48e)
  • VectorAsset wurde in ImageVector umbenannt. VectorAsset wurde in Builder verschoben und umbenannt, um gemäß den API-Council-Richtlinien eine innere Klasse von ImageVector zu sein. Es wurde ein Typalias von VectorAssetBuilder hinzugefügt, um für die Kompatibilität auf ImageVector.Builder zu verweisen. (Icfdc8)
  • ImageAsset und zugehörige Methoden wurden in ImageBitmap umbenannt. (Ia2d99)
  • Semantische Eigenschaften der Grundlage in „ui“ verschoben (I6f05c)
  • fun RippleIndication() wurde eingestellt und durch rememberRippleIndication() ersetzt, um die Konsistenz mit anderen APIs zu gewährleisten. (Id8e2c)
  • In BasicTextField, TextField und OutlinedTextField wurde ein „singleLine“-Parameter hinzugefügt. Setzen Sie diesen Parameter auf „true“, damit das Textfeld eine einzelne horizontal scrollbare Zeile ist. (I57004, b/168187755)

Fehlerkorrekturen

  • Semantik-Aktion „Schließen“ hinzufügen (I2b706)
  • Die DrawModifier-APIs wurden vom Paket androidx.compose.ui in das Paket androidx.compose.ui.draw verschoben. Die Datei „DrawModifierDeprecated.kt“ wurde erstellt, um Typaliase/Hilfsmethoden für die Migration von den eingestellten zu den aktuellen APIs bereitzustellen. (Id6044, b/173834241)
  • „Modifier.drawLayer“ wurde in „Modifier.graphicsLayer“ umbenannt. Außerdem wurden zugehörige Klassen gemäß API-Feedback in „GraphicsLayer“ aktualisiert. (I0bd29, b/173834241)
  • <T> wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können es jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)
  • Die APIs „Modifier.scale“/„rotate“ wurden als Convenience-Funktionen für „drawLayer“ 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 offsetPx-Modifikatoren wurden in „offset“ umbenannt. Sie akzeptieren jetzt Lambda-Parameter anstelle von „State“. (Ic3021, b/173594846)
  • Die APIs „SweepGradientShader“ und „SweepGradientBrush“ wurden eingeführt. (Ia22c1)
  • Es wurde eine Lint-Prüfung für Modifier-Parameter in zusammensetzbaren Funktionen hinzugefügt. Bei dieser Lint-Prüfung werden der Name, der Rückgabetyp, der Standardwert und die Reihenfolge des Parameters auf Übereinstimmung mit den Compose-Richtlinien geprüft. (If493b)
  • Aktualisierte TextFieldValue API
    • TextFieldValue.composition ist jetzt schreibgeschützt
    • Entfernte Ausnahme für ungültigen Auswahlbereich (I4a675, b/172239032)
  • Eine neue Modifier.drawLayer()-Überladung wurde hinzugefügt. Es wird ein Lambda-Block in einem neuen GraphicsLayerScope verwendet, in dem Sie die Ebenenparameter so definieren, dass Recomposition und Relayout bei einer Zustandsänderung übersprungen werden können. DrawLayerModifier ist jetzt intern, um seine Logik in die placeable.placeWithLayer()-Methode von LayoutModifier zu migrieren (I15e9f, b/173030831).
  • Wir haben die verworfenen Ambients mit dem Suffix Ambient ersetzt und neue Eigenschaften mit dem Präfix „Ambient“ eingeführt, die anderen Ambients und den Compose-API-Richtlinien entsprechen. (I33440)
  • Es wurde ein Lint-Check hinzugefügt, um zu prüfen, ob in Modifier-Factories intern androidx.compose.ui.composed {} verwendet wird, anstatt als @Composable gekennzeichnet zu sein. (I3c4bc)
  • Das Semantikargument „mergeAllDescendants“ wurde in „mergeDescendants“ umbenannt. (Ib6250)
  • Die Zeitsteuerung in Tests (TestAnimationClock und ihre Verwendung) ist jetzt experimentell (I6ef86, b/171378521).
  • Altes ui-test-Modul und seine Stubs entfernen (I3a7cb)
  • TextUnit.Inherit wurde in TextUnit.Unspecified umbenannt, um die Einheit an andere Einheiten anzugleichen. (Ifce19)
  • Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
  • „id“ wurde 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 sind veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

API-Änderungen

  • Die Funktion „Emphasis“ wurde eingestellt und durch „AmbientContentAlpha“ ersetzt. AmbientContentAlpha ist eine einfachere Abstraktion, die den bevorzugten Alpha-Wert für Inhalte für einen Teil der Hierarchie darstellt, ähnlich wie AmbientContentColor die bevorzugte Farbe für Inhalte darstellt. Text und Symbol verwenden jetzt standardmäßig den aktuellen Wert von „AmbientContentAlpha“. Sie können manuell color.copy(alpha = AmbientContentAlpha.current) eingeben, um denselben Effekt in Ihren Komponenten zu erzielen. Statt ProvideEmphasis zu verwenden, können Sie einfach direkt einen Wert über AmbientContentAlpha angeben und die neuen Standardstufen in ContentAlpha verwenden, um die alten EmphasisLevels zu ersetzen. (Idf03e, b/159017896)
  • androidx.compose.material.AmbientContentColor wird hinzugefügt, um androidx.compose.foundation.AmbientContentColor zu ersetzen (I84f7b, b/172067770)
  • Fügt androidx.compose.material.Text hinzu, um androidx.compose.foundation.Text als Textkomponente auf hoher Ebene zu ersetzen, die thematisiert werden kann. Verwenden Sie BasicText für eine einfache Textkomponente, die keine Farbe oder keinen Textstil aus dem Design verwendet. (Ie6ae0)
  • maxLines für TextFields hinzugefügt (Ib2a5b)
  • TextFields für die Akzeptanz von KeyboardOptions aktualisieren (Ida7f3)
  • Bei der Berechnung von Höhen-Overlays wird jetzt die absolute (Gesamt-)Höhe verwendet. Wenn also eine Oberfläche in einer anderen Oberfläche verschachtelt ist, wird für das Overlay die kombinierte Höhe verwendet. (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 Nicht-Material-Anwendungen sollten Sie stattdessen eigene Designsystem-spezifische Ambient-Themen erstellen, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
  • foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine einfache, neutrale Text-API, die keine Werte aus einem Theme verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
  • KeyboardOptions in ImeOptions umbenennen (I82f36)
  • KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce)
  • BaseTextField wurde eingestellt. Verwenden Sie stattdessen BasicTextField. (I896eb)
  • Die Annotation „ExperimentalSubcomposeLayoutApi“ wurde entfernt. SubcomposeLayout kann jetzt ohne @OptIn verwendet werden (I708ad).
  • FirstBaseline und LastBaseline wurden in das Paket androidx.compose.ui.layout verschoben (Ied2e7).
  • Die Icon API wurde aktualisiert, um Color.Unspecified als mögliche Tönungsfarbe zu akzeptieren. Das bereitgestellte Asset oder der Painter wird dann ohne ColorFilter gezeichnet. Bisher wurde bei dem Versuch, die Tönung mit Color.Unspecified zu ignorieren, eine transparente Farbe verwendet, sodass nichts gerendert wurde. (I049e2, b/171624632)
  • „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifier „paddingFromBaseline“ wurde hinzugefügt, um die Angabe von Abständen von Layoutgrenzen zu Text-Baselines zu vereinfachen. (I0440a, b/170633813)
  • „LaunchedTask“ wurde in „LaunchedEffect“ umbenannt, um die Konsistenz mit den APIs „SideEffect“ und „DisposableEffect“ zu wahren. LaunchedEffect ohne Subject-Parameter ist nicht zulässig, um Best Practices zu fördern. (Ifd3d4)
  • „MeasureResult“ wurde aus „MeasureScope“ verschoben. (Ibf96d, b/171184002)
  • Mehrere layoutbezogene 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 sind veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.

API-Änderungen

  • androidx.compose.foundation.Icon wurde zu androidx.compose.material.Icon verschoben. Wenn Sie die Material-Bibliothek nicht verwenden möchten, können Sie auch die Image-Komponente / Modifier.paint() mit einem Painter verwenden. (I9f622)
  • Fügt „FloatingActionButtonElevation“ hinzu, um die Erhebung darzustellen, die von FABs in verschiedenen Status verwendet wird. Die Standardimplementierung finden Sie unter FloatingActionButtonConstants.defaultElevation() (I2d4f5).
  • Fügt die SwitchColors-Schnittstelle hinzu, um Farben darzustellen, die von einem Schalter in verschiedenen Status verwendet werden. Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
  • Es werden die Schnittstellen „ButtonElevation“ und „ButtonColors“ hinzugefügt, um die Höhe und die Farben darzustellen, die von Schaltflächen in verschiedenen Status verwendet werden. Die Standardfunktionen finden Sie in ButtonConstants. (Ic5b7b)
  • Fügt die RadioButtonColors-Schnittstelle hinzu, um die Farben darzustellen, die von einem RadioButton in verschiedenen Status verwendet werden. Mit RadioButtonConstants.defaultColors() können Sie die Farben anpassen, die in den verschiedenen Status verwendet werden. (I74130)
  • Fügt die CheckboxColors-Schnittstelle hinzu, um die Farben darzustellen, die von einem Kästchen in verschiedenen Status verwendet werden. Mit CheckboxConstants.defaultColors() können Sie die Farben anpassen, die in den verschiedenen Status verwendet werden. (I7dbdb)

Fehlerkorrekturen

  • In Material-Komponenten wird die Höhe nicht mehr als „zIndex“ festgelegt. Das bedeutet, dass das untergeordnete Element mit der größeren Schattengröße nicht automatisch über dem untergeordneten Element mit der kleineren Schattengröße gezeichnet wird. Wenn Sie dieses Verhalten weiterhin benötigen, legen Sie Modifier.zIndex() manuell fest (I70417, b/170623932).
  • VectorPainter wird zugunsten von rememberVectorPainter eingestellt, um besser zu verdeutlichen, dass die zusammensetzbare API intern „remember“ verwendet, um Daten über Kompositionen hinweg beizubehalten. (Ifda43)
  • Übergänge in ComposeTestRule aktivieren; Option zum Aktivieren des blinkenden Cursors aus ComposeTestRule entfernen. (If0de3)
  • Dem CoreTextField wurde die Option für einzeilige Tastaturen hinzugefügt (I72e6d).
  • Die Radius API wurde in CornerRadius umbenannt, um besser zu verdeutlichen, wie sie in Compose verwendet wird. Die Dokumentation wurde aktualisiert, um darauf hinzuweisen, dass negative Eckenradien auf null begrenzt werden. (I130c7, b/168762961)
  • DrawScope und ContentDrawScope wurden in Schnittstellen anstelle von abstrakten Klassen umgestaltet.
    • CanvasDrawScope-Implementierung von DrawScope erstellt
    • Implementierungen von DrawScope wurden refaktoriert, um stattdessen CanvasScope zu verwenden.
    • DrawContext wurde erstellt, um Abhängigkeiten für DrawScope zu umschließen.
    • Verworfene Methoden in DrawScope entfernt (I56f5e)
  • Box wurde zu einer Inline-Funktion. (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 sind 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 zum expliziten Konfigurieren hinzugefügt (I64966, b/143778148, b/143778149).
  • Für den Modifier „swipeable“ werden jetzt standardmäßig Schwellenwerte von 56 dp für Status verwendet (Iab825, b/168610267).
  • Alle Scaffold-Zustände sind mit @Stable gekennzeichnet. drawerGesturesEnabled in ScaffoldState wurde in Scaffold verschoben. (I36645, b/168297016)
  • Entfernt den Nullable-Typ aus den Scaffold-Lambda-Parametern. Sie können „emptyContent()“ verwenden, um anzugeben, dass für einen bestimmten Parameter keine Inhalte vorhanden sind. (I2b318, b/157633857, b/158551084)
  • Die APIs „contentColor()“ und „currentTextStyle()“ werden eingestellt und durch die Ambient-Variablen „AmbientContentColor“ und „AmbientTextStyle“ ersetzt. Sie können auf den aktuellen Wert zugreifen, indem Sie .current für die Ambient-Eigenschaft verwenden, wie bei jedem anderen Ambient. Diese Änderung wurde vorgenommen, um die Einheitlichkeit zu verbessern und mehrere Möglichkeiten zur Erledigung derselben Aufgabe zu vermeiden. Außerdem wurden einige Ambient-Properties umbenannt, um ihren Zweck besser zu beschreiben:

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

Fehlerkorrekturen

  • Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen wird „Color.Unset“ in „Color.Unspecified“ umbenannt, um die Konsistenz mit anderen Inline-Klassen zu gewährleisten (I97611, b/169797763).
  • „TextOverflow.None“ wurde eingeführt. Wenn „overflow“ auf „None“ gesetzt ist, wird kein Überlauf mehr verarbeitet und die tatsächliche Größe wird an „LayoutNode“ gemeldet. (I175c9, b/158830170)
  • „launchInComposition“ wurde in „LaunchedTask“ umbenannt, um den Compose-API-Richtlinien zu entsprechen (I99a8e).
  • OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() in onGloballyPositioned(). (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 sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

API-Änderungen

  • Macht InteractionState-Parameter in zustandsbehafteten Material-Komponenten verfügbar, um den Status zu verschieben und den Status zu lesen / zu steuern. (Iaca5f, b/168025711, b/167164434)
  • Die *color-Parameter für RadioButton und TriStateCheckbox wurden geändert, um die Farben in den einzelnen Status vollständig anpassen zu können. Außerdem kann bei Bedarf geändert werden, wie die Farben zwischen den Status animiert werden. Weitere Informationen finden Sie in den neuen Farbfunktionen „animateDefault*“ in „CheckboxConstants“ und „RadioButtonConstants“. (I1c532)
  • „rememberBackdropState“ wurde in „rememberBackdropScaffoldState“ 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)
  • Die experimentelle Komponente „BottomSheetScaffold“ wurde hinzugefügt. (Ie02f0, b/148996320)
  • Die experimentelle Komponente „ModalBottomSheetLayout“ wurde hinzugefügt. (Ic209e, b/148996320)
  • Benennt ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation um und gibt jetzt einen Dp-Wert anstelle eines AnimatedValue zurück. (I5f3ed)

Fehlerkorrekturen

  • Viele Grafik-APIs wurden aktualisiert.
    • Die APIs für die Skalierungs- und Rotations-Transformation wurden aktualisiert, sodass sie einen einzelnen Offset-Parameter für die Darstellung der Pivot-Koordinate anstelle separater Gleitkommaparameter für die x-/y-Koordinaten in DrawScope und DrawTransform verwenden.
    • Die Methoden „Rect.expandToInclude“ und „Rect.join“ wurden entfernt.
    • Die Dokumentation zum Radius wurde aktualisiert und enthält jetzt neben „elliptisch“ auch „oval“.
    • Dokumentation hinzugefügt, um darauf hinzuweisen, dass der öffentliche Konstruktor für die Inline-Klasse „Radius“ nicht direkt aufgerufen werden darf, sondern Radius-Objekte über ihre Funktionskonstruktoren instanziiert werden müssen.
    • Die RoundRect-APIs zum Abfragen von topRight, bottomRight, bottomCenter usw. wurden entfernt.
    • Rect.shift zugunsten von Rect.translate eingestellt
    • Entfernte APIs „RoundRect.grow“ und „Rect.shrink“
    • RoundRect.outerRect wurde in Rect.boundingRect umbenannt
    • Die Methoden „RoundRect.middleRect/tallMiddleRect/wideMiddleRect“ und „Rect.isStadium“ wurden entfernt.
    • RoundRect.longestSide wurde in RoundRect.maxDimension umbenannt.
    • RoundRect.shortestSide wurde in RoundRect.minDimension umbenannt
    • RoundRect.center ist jetzt eine Eigenschaft anstelle einer Funktion.
    • Der RoundRect-Konstruktor wurde aktualisiert, sodass er Radius-Eigenschaften anstelle von einzelnen Parametern für x-/y-Radiuswerte verwendet.
    • Entfernte Größen-APIs, bei denen davon ausgegangen wurde, dass es sich um ein Rechteck mit dem Ursprung bei 0,0 handelt
    • Destrukturierungs-API zu Radius hinzugefügt
    • Verschiedene RoundRect-Erweiterungsfunktionen wurden zu Eigenschaften migriert.
    • (I8f5c7, b/168762961)
  • foundation.Box wurde eingestellt. Verwenden Sie stattdessen foundation.layout.Box. (Ie5950, b/167680279)
  • Der Stapel wurde in „Box“ umbenannt. Die zuvor vorhandene Box wird zugunsten der neuen Box in compose.foundation.layout eingestellt. In der neuen Box werden untergeordnete Elemente übereinander gestapelt, wenn sie mehrere untergeordnete Elemente enthält. Das ist anders als bei der vorherigen Box, die sich ähnlich wie eine Spalte verhalten hat. (I94893, b/167680279)
  • Die Parameter für die Box-Dekoration wurden eingestellt. Wenn Sie Dekorationen/Abstände für Ihre Box festlegen möchten, verwenden Sie stattdessen Modifiers (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279).
  • Viele Grafik-APIs wurden aktualisiert.
    • Die DrawScope-APIs wurden mit Methoden für Transformationen mit Bereich aktualisiert, um anzugeben, dass die Transformation nur innerhalb des Callbacks angewendet und nach dem Aufrufen des Callbacks entfernt wird.
    • Die Dokumentation zu „clipPath“ wurde aktualisiert. Es wird jetzt auf „Path“ anstelle von abgerundeten Rechtecken verwiesen.
    • Der Abstand in der Dokumentation für den rechten Parameter in „clipPath“ wurde korrigiert.
    • DrawScope.drawCanvas wurde in drawIntoCanvas umbenannt und der Größenparameter wurde entfernt.
    • Die dx/dy-Parameter in der Inset-Methode wurden in „horizontal“ und „vertical“ umbenannt.
    • Es wurde eine Inset-Überladung hinzugefügt, die für alle vier Grenzen denselben Inset-Wert bereitstellt.
    • Dokumentation zur Inset-Methode entfernt, in der angegeben wurde, dass „inset“ auf alle vier Seiten angewendet wird
    • Aktualisierte Dokumentation für die Klasse „Rect“
    • Die Kommentare zu Rechteckparametern wurden an den kdoc-Stil angepasst.
    • Rect.join und Rect.expandToInclude entfernt
    • Überladung für Rect.translate(offset) erstellt und Rect.shift als veraltet markiert
    • (If086a, b/167737376)
  • Wir haben statische Importe von Inhalten von Layout-Scopes (z.B. „alignWithSiblings“ in „RowScope“) verhindert. Verwenden Sie stattdessen die explizite Bereichsalternative: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (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 sind 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 Parameter „InteractionState“ zu „BottomNavigationItem“ und „Tab“ hinzu, sodass dieser Status angehoben und die Darstellung der Komponente in verschiedenen Status angepasst werden kann. (Ia3e9e, b/168025711)
  • Entfernt die Parameter disabledBackgroundColor und disabledContentColor aus Schaltflächen. Verwenden Sie stattdessen die neuen Standardfarbfunktionen in ButtonConstants. Wenn Sie contentColor / backgroundColor bereits explizit festlegen, sollten Sie stattdessen diese Standardfunktionen verwenden und einige oder alle Parameter anpassen, um zu vermeiden, dass die Farbe für die aktivierten und deaktivierten Status überschrieben wird. (If9b52)
  • Die Hintergrundfarbe des Textfelds wird nicht mehr implizit mit einem Transparenz-Alpha-Wert versehen. Stattdessen wird jede Farbe, die über den Parameter „backgroundColor“ angegeben wird, 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 eine neue defaultResistanceConfig-Methode hinzugefügt. (I54238)
  • Unterstützung für animierte zustandsbezogene Erhebung für Button und FloatingActionButton wurde hinzugefügt. Die Erhebung wird jetzt zwischen dem Standard- und dem gedrückten Zustand animiert. Wenn Sie die Erhebung zwischen den Status anpassen möchten, verwenden Sie ButtonConstants.defaultAnimatedElevation() und FloatingActionButtonConstants.defaultAnimatedElevation(), anstatt in allen Fällen einen pauschalen Dp-Wert festzulegen. (I37925)
  • Das Label ist jetzt ein optionaler Parameter in TextField und OutlinedTextField (I267f6, b/162234081).

Fehlerkorrekturen

  • Globale Testfunktionen wie onNode oder waitForIdle sind jetzt veraltet. Migrieren Sie zu den neuen Gegenstücken, die in ComposeTestRule definiert sind (I7f45a).
  • DpConstraints und APIs, die sie verwenden, wurden eingestellt. (I90cdb, b/167389835)
  • Die Parameter „minWidth“ und „maxWidth“ von „widthIn“ wurden in „min“ und „max“ umbenannt. Das gilt auch für „preferredWidthIn“, „heightIn“ und „preferredHeightIn“. (I0e5e1, b/167389544)
  • Entfernen Sie die semantischen Aktionen zum Vor- und Zurückscrollen. Schritte in AccessibilityRangeInfo hinzugefügt. (Ia47b0)
  • Die Verwendung von „gravity“ wurde in Layout-APIs konsistent in „align“ oder „alignment“ umbenannt. (I2421a, b/164077038)
  • „onNode“ und andere globale Methoden wurden in „ComposeTestRule“ hinzugefügt, da die aktuellen globalen Methoden eingestellt werden. (Ieae36)
  • createAndroidComposeRule und AndroidInputDispatcher wurden 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 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

  • Es wurde eine experimentelle BackdropScaffold-Komponente 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 sind veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Bekanntes Problem

= Das erste Zeichen in einem Material TextField kann nicht mit der 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 sind veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.

API-Änderungen

  • Die zuvor verworfenen RadioGroup und RadioGroupItems wurden entfernt. Verwenden Sie stattdessen „Row“ und „RadioBotton“ (I381b7, b/163806637).
  • „onFocusChanged“-Callbacks aus „TextField“ entfernt. Verwenden Sie stattdessen „Modifier.focusObserver“. (I51089, b/161297615)
  • „Modifier.drawBorder“ wurde eingestellt. Verwenden Sie stattdessen „Modifier.border“. Die Border-Datenklasse wurde durch BorderStroke ersetzt (I4257d, b/158160576).
  • Einige Eigenschaften in „SwipeableState“ wurden umbenannt: „swipeTarget“ -> „targetValue“, „swipeProgress“ -> „progress“, „swipeDirection“ -> „direction“. Die Funktion „rememberSwipeableState“ zum Erstellen von „SwipeableState“-Objekten wurde hinzugefügt. (I2fc9c, b/163129614, b/163132293)
  • Es wurde Unterstützung für Snackbars mit Positionierung und korrekter Warteschlange hinzugefügt. Sie können über die Funktion SnackbarHostState.showSnackbar darauf zugreifen. Außerdem:
    • SnackbarHost-Komponenten wurden hinzugefügt. Sie enthält Snackbars basierend auf dem Status und ist für den Übergang zwischen Snackbars verantwortlich.
    • SnackbarHostState wurde hinzugefügt, um die Steuerung von Snackbars und Snackbar-Hosts zu ermöglichen und sie vom ScaffoldState zu entkoppeln. Sie können auch über scaffoldState.snackbarHostState auf diesen Status zugreifen.
    • Snackbar-Überladung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen „snackbarHostState“ und Snackbars zu unterstützen. (I79aaa)
  • Der Parameter „enabled“ wurde zu „IconButton“ hinzugefügt und die Parameter in „IconToggleButton“ wurden neu angeordnet (I0a941, b/161809385, b/161807956).
  • Die ListItem-Version mit String-basierter API wurde entfernt. Verwenden Sie stattdessen die Slot-Version. (Ib8f57, b/161804681)
  • Die nicht mehr weitergeführte Komponente „FilledTextField“ wurde entfernt. Verwenden Sie 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 sich der Widerstand beim Wischen über die Grenzen hinaus ändern lässt. Die Parameter [min/max]Value wurden entfernt. (I93d98)
  • Der Parameter „backgroundColor“ wurde dem LinearProgressIndicator hinzugefügt und das interne Padding wurde aus dem CircularProgressIndicator entfernt. Es wurde eine neue ProgressIndicatorConstants.DefaultProgressAnimationSpec hinzugefügt, die als Standard-AnimationSpec verwendet werden kann, wenn der Fortschritt zwischen Werten animiert wird (If38b5, b/161809914, b/161804677).
  • Der optionale Parameter „velocityThreshold“ wurde „Modifier.swipeable“ hinzugefügt. (I698ba)
  • bottomBarSize, fabSize und andere sind nicht mehr in ScaffoldState verfügbar. Verwenden Sie Modifier.onPosition anstelle der Komponente, deren Größe Sie ermitteln möchten. contentColor und Modifier-Parameter wurden zu Scaffold hinzugefügt (Ic6f7b, b/161811485, b/157174382).
  • Einige Parameter auf dem Tab wurden umbenannt und neu angeordnet, um die Konsistenz mit anderen APIs zu gewährleisten (Ia2d12, b/161807532).
  • Teilt TabRow in TabRow und ScrollableTabRow auf und entfernt isScrollable aus TabRow. Außerdem wird „edgePadding“ in „ScrollableTabRow“ verfügbar gemacht, sodass der kostenlose Platz 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 verschoben (TabPosition) und indicatorContainer wurde in indicator umbenannt. In den Beispielen und der Dokumentation finden Sie detaillierte Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen. (I54d45, b/161809544)
  • Der Parameter „thresholds“ in „Modifier.swipeable“ wurde angepasst. Er akzeptiert jetzt ein Paar von Status (vom Typ „T“) und gibt den Schwellenwert zwischen ihnen in Form einer „ThresholdConfig“ zurück. Der Funktion „SwipeToDismiss“ wurde der Parameter „dismissThresholds“ hinzugefügt. Dabei handelt es sich um eine Lambda-Funktion (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Der Schieberegler hat mehr Farben für eine detailliertere Anpassung (I73e64, b/161810475).
  • Der Farbparameter der Karte wurde in „backgroundColor“ umbenannt (I01fc1, b/161809546).
  • Die Snackbar hat jetzt anpassbare Hintergrund- und Inhaltsfarben (I238f2, b/161804381).
  • Für Drawers wurden Anpassungsparameter für „modifier“, „backgroundColor“, „contentColor“ und „scrimColor“ hinzugefügt (I23655, b/161804378).
  • Die zusammensetzbare Funktion state { ... } ist jetzt zugunsten expliziter Aufrufe von remember { mutableStateOf(...) } eingestellt. Dadurch wird die gesamte API-Oberfläche und die Anzahl der Konzepte für die Statusverwaltung reduziert und das by mutableStateOf()-Muster für die Delegierung von Klasseneigenschaften wird eingehalten. (Ia5727)
  • Der Padding-Parameter der Schaltfläche wurde in „contentPadding“ umbenannt (Id252e, b/161809394).
  • Die experimentelle Materialkomponente „SwipeToDismiss“ wurde hinzugefügt. (I129e5)

Fehlerkorrekturen

  • onChildPositioned und OnChildPositionedModifier wurden entfernt. Entwickler sollten stattdessen onPositioned und OnPositionedModifier im untergeordneten Layout verwenden. (I4522e, b/162109766)
  • Lambda „mergePolicy“ zu „SemanticsPropertyKey“ hinzugefügt. Damit kann eine benutzerdefinierte Richtlinie für das Zusammenführen von „mergeAllDescendants“-Semantik definiert werden. Die Standardrichtlinie sieht vor, dass der übergeordnete Wert verwendet wird, sofern er 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 das vorherige PlacementScope.place() wurde in PlacementScope.placeRelative() umbenannt. Daher wird die Position in Kontexten mit Leserichtung von rechts nach links nicht mehr automatisch gespiegelt.PlacementScope.place() Wenn dies gewünscht ist, verwenden Sie stattdessen PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds wurde zugunsten von Rect eingestellt. Alle Verwendungen von PxBounds wurden durch „rect“ ersetzt und es wurden entsprechende Annotations für die Einstellung und den Ersatz hinzugefügt, um die Migration zu erleichtern. (I37038, b/162627058)
  • RRect wurde in RoundRect umbenannt, um den Namensmustern von Compose besser zu entsprechen. Es wurden ähnliche Funktionskonstruktoren für RRect erstellt und die Funktionskonstruktoren von RRect wurden als veraltet eingestuft (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 sind veröffentlicht. Version 0.1.0-dev16 enthält diese Commits.

API-Änderungen

  • „Colors“ ist jetzt eine finale Klasse anstelle einer Schnittstelle. Anstatt eine benutzerdefinierte Implementierung zu erweitern und bereitzustellen, sollten Sie ein neues Ambient für Ihr benutzerdefiniertes Theme-Objekt erstellen und in Ihren Komponenten über das neue Ambient auf das Theme-Objekt zugreifen, ähnlich wie MaterialTheme intern funktioniert. (Ibae84)
  • „ColorPalette“ wurde in „Colors“ umbenannt, um besser dem Material-Farbsystem zu entsprechen und Verwirrung darüber zu vermeiden, dass „ColorPalette“ ein „generisches“ Theming-Objekt ist und keine spezifische Implementierung des Material-Farbsystems. Außerdem werden lightColorPalette und darkColorPalette in lightColors bzw. darkColors umbenannt. (I9e976, b/161812111)
  • Benennt den Parameter text von BottomNavigationItem in label, onSelected in onSelect, activeColor in selectedContentColor und inactiveColor in unselectedContentColor um und aktualisiert die Parameterreihenfolge entsprechend den Richtlinien. (Icb605, b/161809324)
  • Modifier.stateDraggable wurde komplett überarbeitet und in Modifier.swipeable umbenannt. Es wurde eine neue SwipeableState-Klasse eingeführt und DrawerState und BottomDrawerState wurden so umgestaltet, dass sie von ihr erben. [Modal/Bottom]DrawerLayout akzeptiert keinen onStateChange-Parameter mehr. (I72332, b/148023068)
  • Das Paket „foundation.shape.corner“ wurde in „foundation.share“ zusammengeführt (I46491, b/161887429).
  • Die Annotation „ExperimentalMaterialApi“ wurde hinzugefügt. RippleTheme als „Experimentell“ gekennzeichnet (Ic5fa0, b/161784800)
  • „Material FilledTextField“ wurde in „TextField“ umbenannt und „foundational TextField“ in „BaseTextField“, um die einfachste gewünschte API leichter auffindbar und nutzbar zu machen (Ia6242, b/155482676).

Fehlerkorrekturen

  • Die Methode „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen OnPositioned für das untergeordnete Element. (I87f95, b/162109766)
  • Umfassende API-Korrekturen (I077bc)
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Offset- und IntOffset-Klassen anpassen, um eine einheitliche API zu erhalten
    3. Benennen Sie „IntOffset.Origin“ in „IntOffset.Zero“ um, um die Konsistenz mit der Offset API zu wahren.
    4. Die nativeCanvas-Methode wurde aus der Canvas-Schnittstelle entfernt, damit Nutzer eigene Canvas-Instanzen erstellen können.
    5. Stub-Klasse „EmptyCanvas“ erstellt, um „DrawScope“ so umzugestalten, dass sie ein Parameter ist, der nicht null sein kann, anstatt „lateinit“, und um sicherzustellen, dass das Feld nicht null sein kann.
    6. ClipOp-Enumerationen wurden in PascalCase umbenannt
    7. Die FilterQuality-Enumerationen wurden in PascalCase umbenannt.
    8. StrokeJoin-Enumerationen in PascalCase umbenannt
    9. Die PointMode-Enumerationen wurden in PascalCase umbenannt.
    10. Die PaintingStyle-Enumerationen wurden in PascalCase umbenannt.
    11. Die PathFillType-Enumerationen wurden in PascalCase umbenannt.
    12. „StrokeCap“-Enums in PascalCase umbenannt
    13. Die DrawCache-Implementierung wurde aktualisiert, sodass keine „lateinit“-Parameter mehr verwendet werden.
    14. DrawScope wurde aktualisiert, sodass die interne Parameter „fillPaint“ und „strokePaint“ nicht mehr lazy delegiert werden.
    15. Das Image-Composable wurde aktualisiert, um die Verwendung von „Box“ zu vermeiden und den Overhead zu verringern.
    16. Die Outline-Klasse wurde aktualisiert und enthält jetzt @Immutable-Annotationen.
    17. PathNode wurde aktualisiert, sodass für jede Pfadanweisung @Immutable-Annotationen vorhanden sind.
    18. Die Vektor-Unterkomposition wurde aktualisiert, um redundante bedingte Gleichheitsprüfungen zu entfernen, da diese bereits von Compose verarbeitet werden.
    19. Verworfene Begleitkonstruktormethoden für „Rect“ zugunsten von Funktionskonstruktoren
    20. Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Immutable- und @Stable-APIs
    21. Die Enumeration „VertexMode“ wurde in PascalCase aktualisiert.
    22. Die Methode „DrawScope.selectPaint“ wurde aktualisiert, um Strichparameter im Paint-Objekt nur dann bedingt zu überschreiben, wenn sie sich geändert haben.
    23. Die Größe wurde aktualisiert, um die Destrukturierungs-API hinzuzufügen, UnspecifiedSize in Unspecified umzubenennen und nicht verwendete Methoden zu entfernen.
  • Dialog in die 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 Sprachen, die von rechts nach links geschrieben werden, wurden aktualisiert. „LayoutDirectionAmbient“ wurde hinzugefügt. Damit kann die Layoutrichtung gelesen und geändert werden. „Modifier.rtl“ und „Modifier.ltr“ wurden entfernt. (I080b3)
  • Modifier.deternimateProgress wurde in Modifier.progressSemantics umbenannt (I9c0b4).
  • Aktualisiert „material-icons-extended“ mit den neuesten Symbolen, die auf Material.io/icons hinzugefügt wurden (I4b1d3)
  • Der Typ T muss für „transitionDefinition“ explizit angegeben werden. (I1aded)
  • „Modifier.plus“ wurde eingestellt. Verwenden Sie stattdessen „Modifier.then“. „Dann“ ist ein stärkeres Signal für die Reihenfolge und verhindert gleichzeitig die Eingabe von Modifier.padding().background() + anotherModifier, was die Kette unterbricht und die Lesbarkeit erschwert (Iedd58, b/161529964).
  • AndroidComposeTestRule wurde in createAndroidComposeRule umbenannt. (I70aaf)
  • SemanticsMatcher für isFocused() und isNotFocused() hinzufügen. (I0b760)
  • BaseGestureScope.globalBounds wurde entfernt und sollte nicht in Tests verwendet werden. Verwenden Sie stattdessen Koordinaten, die sich auf den Knoten beziehen, mit dem Sie interagieren. (Ie9b08)
  • Die Position von Pop-ups auf Displays mit Aussparungen wurde korrigiert. (Idd7dd)
  • Modifier.drawBackground wurde in Modifier.background umbenannt (I13677)

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 sind 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 oben unter Abhängigkeiten deklarieren aktualisieren.

API-Änderungen

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

    Begründung

    Die Begründung umfasst unter anderem:

    • Reduziert die API-Oberfläche und die Konzepte, die wir vermitteln müssen
    • Bessere Abstimmung mit anderen vergleichbaren Toolkits (Swift UI, React, Flutter)
    • Die Entscheidung kann rückgängig gemacht werden. Wir können @Model später jederzeit wieder einführen.
    • Entfernt Grenzfälle und schwer zu beantwortende Fragen zur Konfiguration von @Model als Dinge, die wir berücksichtigen müssen
    • @Model-Datenklassen, „equals“, „hashcode“ usw.
    • Wie kann ich festlegen, dass einige Eigenschaften beobachtet werden und andere nicht?
    • Wie lege ich fest, ob die strukturelle oder die referenzielle Gleichheit in der Beobachtung verwendet werden soll?
    • Reduziert die „Magie“ im System. Dadurch wird die Wahrscheinlichkeit verringert, dass jemand annimmt, das System sei intelligenter als es ist (d. h., dass es weiß, wie man eine Liste vergleicht).
    • Die Granularität der Beobachtung wird intuitiver.
    • Verbessert die Refaktorierbarkeit von Variable → Eigenschaft in der Klasse
    • Möglicherweise ergeben sich dadurch Möglichkeiten für individuelle Optimierungen auf Bundesstaatsebene.
    • Es entspricht besser dem Rest des Ökosystems und reduziert die Unklarheit in Bezug auf unveränderliche oder „veränderliche“ Zustände.

    Hinweise zur Migration

    Fast alle vorhandenen Verwendungen von @Model lassen sich auf zwei Arten relativ einfach transformieren. Im folgenden Beispiel wird eine @Model-Klasse mit zwei Attributen verwendet, nur um das Beispiel zu veranschaulichen. Sie wird 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: State<OriginalClass> verwenden und Kopien erstellen

    Dieser Ansatz wird durch die Datenklassen von Kotlin erleichtert. Machen Sie im Grunde alle bisherigen var-Properties zu val-Properties einer Datenklasse und verwenden Sie dann state anstelle von remember. Weisen Sie den Statuswert den geklonten Kopien des Originals mithilfe der copy(...)-Hilfsmethode der Datenklasse zu.

    Dieser Ansatz funktioniert nur, wenn die einzigen Änderungen an dieser Klasse im selben Bereich vorgenommen wurden, in dem die State-Instanz erstellt wird. Wenn die Klasse sich intern außerhalb des Anwendungsbereichs ändert und Sie sich darauf verlassen, dass dies beobachtet wird, sollten Sie den nächsten Ansatz verwenden.

    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 Property Delegates verwenden

    Dieser Ansatz wird durch die Property Delegates von Kotlin und die mutableStateOf API erleichtert, mit der Sie MutableState-Instanzen außerhalb der Komposition erstellen können. Ersetzen Sie im Wesentlichen alle var-Attribute der ursprünglichen Klasse durch var-Attribute mit mutableStateOf als Attribut-Delegate. Das hat den Vorteil, dass sich die Verwendung der Klasse überhaupt nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht völlig identisch mit dem ursprünglichen Beispiel, da jede Eigenschaft jetzt einzeln beobachtet bzw. abonniert wird. Die Re-Compositions, die nach dieser Umgestaltung auftreten, könnten also eingeschränkter sein (was gut ist).

    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/143263925, b/139653744)

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

  • Der Parameter „thresholds“ wurde in „stateDraggable“ hinzugefügt, um Schwellenwerte zwischen Ankern anzugeben. Damit wurde ein Schwellenwert von 56 dp im unteren Bereich festgelegt. Außerdem wird für BottomDrawerLayout jetzt ein separates BottomDrawerState-Enum verwendet. (I533fa)

  • Entfernt den zuvor verworfenen Modifier.ripple. Bei „clickable“ wird jetzt standardmäßig „ripple“ als Indikator verwendet, wenn Sie in Ihrer Anwendung „MaterialTheme {}“ festgelegt haben. In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten den „ripple“-Indikator kostenlos. Wenn Sie die Farbe, Größe oder den begrenzten Parameter für den Ripple anpassen müssen, können Sie manuell eine „RippleIndication“ erstellen und sie als „indication“-Parameter an „clickable“ übergeben. (I663b2, b/155375067)

  • Veralteter Überschreibungsmechanismus für die zusammensetzbare Funktion „FilledTextField“ entfernt (I7f8f8)

  • Button-Objekt (mit den von der Button-Funktion verwendeten Standardwerten) in ButtonConstants umbenennen (I7c5f7, b/159687878)

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

  • RadioGroup und RadioGroupItem sind nicht mehr verfügbar. Verwenden Sie „Box“ mit „Modifier.selectable“, „Row“ und „Column“, um die richtige Gruppe von Optionsfeldern für Ihr Design zu erstellen (I7f5cf, b/149528535).

  • Das Textfeld „Material Outlined“ wurde hinzugefügt (I1a518).

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

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

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

  • Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Größeninformationen verwendet werden, sollten Sie die Klasse „Size“ anstelle von „PxSize“ verwenden. Dies bietet die Vorteile einer Inline-Klasse, um einen Long-Wert zu nutzen, um zwei Float-Werte zu packen, die Breite und Höhe als Floats darstellen. (Ic0191)

  • Modifier.ripple wird eingestellt. Bei „clickable“ wird jetzt standardmäßig „ripple“ als Indikator verwendet, wenn Sie in Ihrer Anwendung „MaterialTheme {}“ festgelegt haben. In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten den „ripple“-Indikator kostenlos. Wenn Sie die Farbe, Größe oder den begrenzten Parameter für den Ripple anpassen müssen, können Sie manuell eine „RippleIndication“ erstellen und sie als „indication“-Parameter an „clickable“ übergeben. (I101cd, b/155375067)

  • Die Scaffold API wurde überarbeitet: Einige Parameter haben ihren Namen geändert, es wurden neue Parameter für eine bessere Anpassung hinzugefügt. Getter zum Abfragen der Größen von Fab, TopBar und BottomBar hinzugefügt (I0e7ce)

  • Die Komponente „DropdownMenu“ wurde in „ui-material“ hinzugefügt. Sie ist eine Material Design-Menüimplementierung. (I9bb3d)

  • Manuelles Ein-/Ausblenden der Softwaretastatur mit SoftwareKeyboardController zulassen (Ifb9d6, b/155427736)

  • Dem Fundamentpaket wurde „Modifier.indication“ hinzugefügt. Damit können Sie auf Ihren benutzerdefinierten interaktiven Elementen (I8425f, b/155287131) Hinweise zum Drücken, Ziehen oder andere Hinweise anzeigen.

  • CanvasScope-Implementierungen wurden konsolidiert. Es gibt jetzt nur noch DrawScope und ContentDrawScope. CanvasScope wurde in DrawScope umbenannt. DrawScope wurde aktualisiert, um die Density-Schnittstelle zu implementieren und LayoutDirection bereitzustellen. Die DrawScope-Unterklasse in ContentDrawScope wurde gelöscht. Painter und PainterModifier wurden aktualisiert, um nicht mehr selbst eine RTL-Eigenschaft zu verwalten, da DrawScope diese bereits ohne manuelle Bereitstellung bereitstellt (I1798e).

  • Die Funktion „Emphasis.emphasize()“ wird in „Emphasis.applyEmphasis()“ umbenannt (Iceebe).

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

  • FilledTextField unterstützt jetzt IME-Aktionen, visuelle Transformationen und Tastaturtypen (I1f9cf, b/155075201).

  • Der CircularProgressIndicator-Komponente wurde der Parameter „strokeWidth“ hinzugefügt, um die Strichstärke anzupassen. Wenn Sie die Strichstärke (Höhe) eines LinearProgressIndicator ändern möchten, können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)

  • Der CircularProgressIndicator-Komponente wurde der Parameter „strokeWidth“ hinzugefügt, um die Strichstärke anzupassen. Wenn Sie die Strichstärke (Höhe) eines LinearProgressIndicator ändern möchten, können Sie Modifier.preferredHeight() oder einen anderen Größenmodifikator verwenden. (Icea16, b/154919081)

  • Es wurde eine Slot-API für nachgestellte und vorangestellte Symbole in FilledTextField hinzugefügt und die Verarbeitung des Fehlerstatus (Ic12e0) wurde verbessert.

  • Die Standardfarbe von FABs und Extended FABs wurde in „MaterialTheme.colors.secondary“ geändert. (I3b9b9, b/154118816)

  • Alle Verwendungen von „nullable Color“ in der API wurden durch „non-nullable“ ersetzt und anstelle von „null“ wird „Color.Unset“ verwendet (Iabaa7).

  • „EdgeInsets“ wurde in „InnerPadding“ umbenannt. Der Parameter „innerPadding“ von Material-Schaltflächen wurde in „padding“ umbenannt. (I66165)

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

  • StaticDrawer wurde entfernt. Verwenden Sie bei Bedarf stattdessen Box mit material-spec'ed width (I244a7).

  • Material Design-Implementierung des gefüllten Textfelds (Ic75cd) hinzugefügt

  • Der ListItem-Funktion wurde der Modifier-Parameter hinzugefügt und die Parameter wurden neu angeordnet, um den nachgestellten Lambda-Body zu fördern (I66e21).

  • Der Konstruktorparameter „defaultFontFamily“ wird „Typography“ hinzugefügt. So kann die Standardschriftfamilie angegeben werden, die für alle bereitgestellten „TextStyles“ verwendet wird, für die keine Schriftfamilie festgelegt ist. (I89d07)

  • Materialdatentabellen wurden vorübergehend aus der API entfernt. (Iaea61)

  • Umbenannte Parameter im Divider-Composable (Ic4373)

  • Kinder (Ia6d19)

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

  • Das System für die Gestaltung von Formen wurde 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 von Funktionen zu Attributen geändert. Entfernen Sie die Klammern aus vorhandenen Aufrufen. Es ist keine Verhaltensänderung zu erwarten. (I3565a)

  • Die APIs für FloatingActionButton wurden umgestaltet, sodass sie zusammensetzbare Lambdas anstelle von Primitiven akzeptieren. Aktualisierte Beispiele mit Informationen zur Verwendung (I00622)

  • enabled-Parameter für Checkbox, Switch und Toggleable hinzufügen (I41c16)

  • „Wellen“ ist jetzt ein Modifikator. Da Clickable noch nicht konvertiert wurde, wird die Verwendung von Clickable(onClick = { ... }, modifier = ripple()) empfohlen (Ie5200, b/151331852, b/150060763).

  • „Surface“ und „Card“ wurden von „androidx.ui.material.surface“ zu „androidx.ui.material“ verschoben (I88a6d, b/150863888)

  • Die Funktionen „Button“, „FloatingActionButton“ und „Clickable“ haben jetzt einen separaten enabled-Parameter. Einige Parameter für die Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)

  • „Image“ wurde in „ImageAsset“ umbenannt, um den Unterschied zwischen den Bilddaten und der bevorstehenden Image-Composable-Funktion, die zum Layouten und Zeichnen von Inhalten verwendet wird, besser zu verdeutlichen. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)

  • Die Snackbar API mit String-Parametern wurde entfernt. Stattdessen wird die Überladung verwendet, die zusammensetzbare Lambdas akzeptiert. Aktualisierte Beispiele für Nutzungsinformationen (I55f80)

  • Tab-APIs wurden umgestaltet, um text- und icon-Lambdas zu akzeptieren (Ia057e)

  • Die Komponente „BottomNavigation“ wurde hinzugefügt. Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I731a0).

  • Die Komponenten „Icon“, „IconButton“ und „IconToggleButton“ wurden hinzugefügt. „AppBarIcon“ wurde entfernt. Sie können vorhandene Verwendungen von AppBarIcon direkt durch IconButton ersetzen. Die Schaltflächen haben dann den richtigen Berührungszielbereich. Informationen zur Verwendung finden Sie in den Beispielen. Unter „Symbole“ finden Sie die bereitgestellten Material Icons, die Sie direkt mit diesen Komponenten verwenden können. (I96849)

  • ButtonStyle wurde durch separate Funktionen ersetzt und die Überladung von Text (String) wurde entfernt. In den aktualisierten Beispielen finden Sie Informationen zur Verwendung. (If63ab, b/146478620, b/146482131)

  • Modifikator „Border“ in „DrawBorder“ umbenennen (I8ffcc)

  • „LayoutCoordinates“ hat keine „position“-Eigenschaft mehr. Die Eigenschaft „position“ ist bei LayoutModifiers, Drehung oder Skalierung nicht sinnvoll. Stattdessen sollten Entwickler parentCoordinates und childToLocal() verwenden, um die Transformation von einer LayoutCoordinate in eine andere zu berechnen.

    Bei LayoutCoordinates wird IntPxSize für die size-Property anstelle von PxSize verwendet. Für Layouts werden ganzzahlige Pixelgrößen verwendet. Daher sollten alle Layoutgrößen als Ganzzahlen und nicht als Gleitkommawerte angegeben werden. (I9367b)

  • Funktionsgefährdende Änderungen an der Ambient-API. Weitere Informationen finden Sie im Log und in der Ambient<T>-Dokumentation (I4c7ee, b/143769776).

  • Die Scaffold-Materialkomponente wurde hinzugefügt. Geräte für Gerüste (I7731b)

  • DrawBorder wurde durch Border Modifier (Id335a) ersetzt.

Fehlerkorrekturen

  • „FocusModifier“ ist zugunsten von „Modifier.focus“, „Modifier.focusRequester“ und „Modifier.focusObserver“ veraltet. FocusState und FocusDetailedState sind zugunsten von FocusState2 veraltet (I46919, b/160822875, b/160922136).
  • „VerticalScroller“ und „HorizontalScroller“ wurden eingestellt. Verwenden Sie ScrollableColumn und ScrollableRow für eine integrierte Lösung mit Spalten-/Zeilenverhalten und ‑parametern oder Modifier.verticalScroll und Modifier.horizontalScroll für Ihr eigenes Element. Ebenso wurde „ScrollerPosition“ zugunsten von „ScrollState“ eingestellt (I400ce, b/157225838, b/149460415, b/154105299).
  • Die APIs „Modifier.draggable“ und „Modifier.scrollable“ wurden überarbeitet. „DragDirection“ wurde zugunsten von „Orientation“ entfernt. Der Status, der für das Scrollen erforderlich ist, wurde vereinfacht. „ScrollableState“ wurde in „ScrollableController“ umbenannt (Iab63c, b/149460415).
  • runOnIdleCompose wurde in runOnIdle umbenannt (I83607)
  • Für Eigenschaften mit Einzelwertsemantik wird jetzt ein Aufrufstil verwendet. Beispiel: „semantics { hidden = true }“ wird jetzt als „semantics { hidden() }“ geschrieben. (Ic1afd, b/145951226, b/145955412)
  • Mehrere Test-APIs wurden umbenannt, um sie intuitiver zu gestalten. Alle findXYZ-APIs wurden in onNodeXYZ umbenannt. Alle doXYZ-APIs wurden in performXYZ umbenannt. (I7f164)
  • Die Transition API wurde geändert, sodass sie einen TransitionState zurückgibt, anstatt den TransitionState an untergeordnete Elemente zu übergeben. Dadurch wird die API konsistenter mit den animate()-APIs. (I24e38)
  • Es wurde eine IntBounds-Einheitenklasse hinzugefügt, die ganzzahlige Pixelgrenzen aus dem Layout darstellt. Die API von PopupPositionProvider wurde aktualisiert, um sie zu verwenden. (I0d8d0, b/159596546)
  • Den Test-Findern wurde das neue optionale Flag useUnmergedTree hinzugefügt. (I2ce48)
  • Veraltete APIs zum Testen der Größe wurden entfernt. (Iba0a0)
  • Die Inline-Klasse „Shader“ wurde entfernt, die die NativeShader-Expect-Klasse umschlossen hat. NativeShader wurde in Shader umbenannt. Die umschlossene Inline-Klasse „Shader“ hat der API-Oberfläche nichts Wertvolles hinzugefügt und war eine Inline-Klasse. Verwenden Sie daher die Klasse „NativeShader“ direkt. (I25e4d)
  • Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485).
  • Material-Dropdown-Menüs sind jetzt scrollbar. (Ide699)
  • Der Parameter für die Layoutrichtung wurde aus dem Messblock der Funktion „Layout()“ entfernt. Die Layoutrichtung ist jedoch im Callback über das Messbereichsobjekt (Ic7d9d) verfügbar.
  • Verwenden Sie AnimationSpec anstelle von AnimationBuilder in den APIs der obersten Ebene, um das Konzept der statischen Animationsspezifikation zu verdeutlichen. Verbessern Sie die Übergangs-DSL, indem Sie die Lambda-Anforderung zum Erstellen von AnimationSpecs wie Tween und Spring entfernen. Stattdessen werden Konstruktorparameter direkt verwendet. – Die allgemeine Benutzerfreundlichkeit von AnimationSpec wurde verbessert, indem Konstruktoren anstelle von Buildern verwendet werden. – Die Dauer und Verzögerung für KeyFrames und Tween wurde in „Int“ geändert. Dadurch werden unnötige Typumwandlungen und Methodenüberladungen (zur Unterstützung von „Long“ und „Int“) vermieden. (Ica0b4)
  • Der Schalter wird jetzt deaktiviert angezeigt, wenn enabled auf „false“ gesetzt ist (If4624, b/155941869, b/159331694)
  • „Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um Verwechslungen mit „Modifier.testTag“ zu vermeiden. (I995f0)
  • Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungslinie sind jetzt nicht mehr null. Wenn die abgefragte Ausrichtungslinie fehlt, wird AlignmentLine.Unspecified zurückgegeben. (I896c5, b/158134875)
  • Die Klasse „Radius“ wurde in eine Inline-Klasse umgestaltet. Methoden zum Erstellen von Begleitern wurden zugunsten des Funktionskonstruktors mit Standardparameter entfernt, damit der Radius entlang der Y-Achse dem des obligatorischen X-Achsen-Radiusparameters entspricht.

    Die Funktion DrawScope.drawRoundRect wurde aktualisiert, sodass sie einen einzelnen Radius-Parameter anstelle von zwei separaten Gleitkommawerten für den Radius entlang der x- und y-Achse verwendet (I46d1b).

  • Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Positionsinformationen verwendet werden, wird die Verwendung der Offset-Klasse anstelle von PxPosition standardisiert. Dies bietet die Vorteile einer Inline-Klasse, um einen „long“-Wert zu verwenden, um zwei Gleitkommawerte zu packen, die als Gleitkommazahlen dargestellte x- und y-Offsets darstellen. (I3ad98)

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um für Pixelparameter nur noch Dp und primitive Typen zu verwenden. Die Px-Klasse wurde vollständig gelöscht (I3ff33).

  • Die umschaltbare Komponente wurde eingestellt. Verwenden Sie stattdessen Modifier.toggleable (I35220, b/157642842).

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (I086f4).

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (Id3434).

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Refaktorierung ersetzt, um sich nur auf Dp- und primitive Typen für Pixelparameter zu verlassen (I97a5a).

  • Der onClick-Handler wird jetzt für DropdownMenuItems aufgerufen. (I3998b, b/157673259)

  • „MutuallyExclusiveSetItem“ wurde eingestellt. Verwenden Sie stattdessen „Modifier.selectable“. (I02b47, b/157642842)

  • TestTag ist jetzt eingestellt. Verwenden Sie stattdessen „Modifier.testTag“. (If5110, b/157173105)

  • Der Cursor des Textfelds blinkt (Id10a7)

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (I19d02).

  • Die Komponente „VerticalScroller“ bietet jetzt standardmäßig „Column“. HorizontalScroller bietet jetzt standardmäßig Row. (Ieca5d, b/157020670)

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der großen Umstellung ersetzt, um nur noch Dp und primitive Typen für Pixelparameter zu verwenden (Iede0b).

  • „Modifier.semantics“ wurde wieder eingeführt, um die Verwendung für Komponenten auf hoher Ebene zu ermöglichen. (I4cfdc)

  • Die API für DrawLayer-Modifizierer wurde geändert: „outlineShape“ wurde in „shape“ umbenannt und hat jetzt den Standardwert „RectangleShape“ und ist nicht mehr nullfähig. „clipToOutline“ wurde in „clip“ umbenannt. „clipToBounds“ wurde entfernt, da es dasselbe ist wie „clip == true“ mit „RectangleShape“ (I7ef11, b/155075735).

  • Aktualisierte Compose-APIs auf höherer Ebene, die anstelle von CanvasScope ein Canvas-Objekt bereitstellen. Dadurch müssen Nutzer keine eigenen Paint-Objekte mehr verwalten. Für Nutzer, die weiterhin Zugriff auf ein Canvas benötigen, kann die drawCanvas-Erweiterungsmethode verwendet werden. Sie bietet einen Callback zum Ausgeben von Zeichenbefehlen mit dem zugrunde liegenden Canvas. (I80afd)

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

  • Die WithConstraints-Trailing-Lambda-API wurde geändert. Anstelle von zwei Parametern gibt es jetzt einen Empfängerbereich, der zusätzlich zu Einschränkungen und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in Dp bietet (I91b9a, b/149979702).

  • Der Layout-Modifier „defaultMinSizeConstraints“ wurde hinzugefügt. Er legt Größenbeschränkungen für das umschlossene Layout nur dann fest, wenn die entsprechenden eingehenden Beschränkungen nicht angegeben sind (0 für Mindestbeschränkungen und unendlich für Maximalbeschränkungen). (I311ea, b/150460257)

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

  • Die CanvasScope API wurde erstellt, die ein Canvas-Objekt umschließt, um eine zustandslose, deklarative Zeichen-API bereitzustellen. Transformationen sind in ihrem eigenen Empfängerbereich enthalten und Größeninformationen sind auch auf die entsprechenden Inset-Grenzen beschränkt. Der Consumer muss kein eigenes Paint-Zustandsobjekt zum Konfigurieren von Zeichenvorgängen verwalten.

    CanvasScopeSample wurde hinzugefügt und die Demo-App wurde aktualisiert, um eine deklarative Grafikdemo (Ifd86d) zu enthalten.

  • Cursorfarben für das TextField anpassen (I6e33f)

  • TextFieldValue, das mit TextField verwendet wird, kann jetzt die Neuerstellung von Aktivitäten überstehen, wenn es so verwendet wird: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • „LayoutModifier2“ wurde in „LayoutModifier“ umbenannt. (Id29f3)

  • Die nicht mehr weitergeführte LayoutModifier-Schnittstelle wurde entfernt. (I2a9d6)

  • Der Parameter „focusIdentifier“ von „CoreTextField“/„TextField“ wurde durch „FocusNode“ ersetzt, um die Integration in das Fokus-Subsystem zu ermöglichen. (I7ea48)

  • Die Funktionen für intrinsische Messungen in Layout und LayoutModifier2 haben jetzt einen IntrinsicMeasureScope-Empfänger, der eine API für intrinsische Abfragen mit implizit weitergegebener Layoutrichtung bereitstellt. (Id9945)

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

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

  • Aktualisierung der TextField API: Die Callbacks „onFocus“ und „onBlur“ wurden in einem einzigen Callback „onFocusChange(Boolean)“ mit Parameter zusammengeführt (I66cd3)

  • Den Komponenten „Row“ und „Column“ wurden die Parameter „verticalGravity“ und „horizontalGravity“ hinzugefügt. (I7dc5a)

  • Die Attribute „wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert. Sie erwarten jetzt eine vertikale oder horizontale Ausrichtung anstelle einer beliebigen Ausrichtung. Der Schwerkraftmodifikator wurde aktualisiert, um die vertikale oder horizontale Ausrichtung zu akzeptieren. „Zeile“, „Spalte“ und „Stapel“ wurden aktualisiert, um benutzerdefinierte kontinuierliche Ausrichtungen zu unterstützen. (Ib0728)

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

  • Entfernt ProvideContentColor. Verwenden Sie stattdessen ContentColorAmbient direkt mit Providers (Iee942).

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

  • Das Modul „ui-text“ wurde in „ui-text-core“ umbenannt (I57dec).

  • Die Composables ui-framework/CoreText und CoreTextField wurden unter ui-text-compose verschoben. Möglicherweise möchten Sie „ui-text-compose“ in Ihr Projekt einbinden. (I32042)

  • DrawModifier API verbessern:

    • Der Empfängerbereich für draw() wurde zu ContentDrawScope geändert.
    • Alle Parameter für draw() entfernt
    • DrawScope hat dieselbe Benutzeroberfläche wie das frühere CanvasScope.
    • ContentDrawScope hat die Methode drawContent() (Ibaced, b/152919067)
  • runOnIdleCompose und runOnUiThread sind jetzt globale Funktionen anstelle von Methoden für ComposeTestRule. (Icbe8f)

  • [Mutable]State-Property-Delegatenoperatoren wurden in Erweiterungen verschoben, um die Optimierungen für Property-Delegaten in Kotlin 1.4 zu unterstützen. Anrufer müssen Importe hinzufügen, um by state { ... } oder by mutableStateOf(...) weiterhin verwenden zu können. (I5312c)

  • „positionInParent“ und „boundsInParent“ für „LayoutCoordinates“ 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 Layoutmodifizierern. LayoutModifier (If32ac) wurde eingestellt.

  • Modifikator plus Operator durch Factory-Erweiterungsfunktionen ersetzt (I225e4)

  • „Draggable“ wurde in den Modifier verschoben (Id9b16, b/151959544)

  • Die zusammensetzbare Funktion „ParentData“ ist veraltet. Sie sollten entweder einen Modifier erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder den LayoutTag-Modifier verwenden, wenn Sie Layout-Untergeordnete nur taggen müssen, um sie im Measure-Block zu erkennen. (I51368, b/150953183)

  • Eingestellte Center-Composable. Es sollte entweder durch den Modifizierer „LayoutSize.Fill + LayoutAlign.Center“ oder durch eine der Box- oder Stack-Composables mit entsprechenden Modifizierern ersetzt werden (Idf5e0).

  • Die VectorPainter API wurde hinzugefügt, um die vorhandene Subcomposition API für Vektorgrafiken zu ersetzen. Das Ergebnis der Unterkomposition ist ein VectorPainter-Objekt anstelle eines DrawModifier. Die bisherigen DrawVector-Composables wurden zugunsten von VectorPainter eingestellt.

    Die Image(Painter)-API wurde in PaintBox(Painter) umbenannt. Es wurde eine Vektor-Composable-Funktion erstellt, die sich wie die Image-Composable-Funktion verhält, aber anstelle eines ImageAsset ein VectorAsset verwendet (I9af9a, b/149030271).

  • „LayoutFlexible“ wurde in „LayoutWeight“ umbenannt. Der enge Parameter wurde in „fill“ umbenannt. (If4738)

  • RepaintBoundary wurde zugunsten von DrawLayerModifier entfernt (I00aa4)

  • DrawVector wurde von einer regulären zusammensetzbaren Funktion in eine Funktion geändert, die einen Modifier drawVector() zurückgibt, mit dem der Vektor als Hintergrund für ein Layout gezeichnet wird. (I7b8e0)

  • Die zusammensetzbare Funktion „Opacity“ wurde durch den Modifier „drawOpacity“ ersetzt. (I5fb62)

  • Ersetzen Sie die zusammensetzbare Funktion „Clip“ durch den Modifier „drawClip()“. „DrawClipToBounds“ ist ein praktischer Modifier, wenn Sie nur mit einer rechteckigen Form auf die Ebenengrenzen beschneiden müssen. (If28eb)

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

  • „LayerModifier“ hinzugefügt, ein Modifikator, mit dem einem Layout ein „RenderNode“ hinzugefügt werden kann. Damit lassen sich Beschneidung, Deckkraft, Drehung, Skalierung und Schatten festlegen. Damit wird „RepaintBoundary“ ersetzt. (I7100d, b/150774014)

  • androidx.compose.ViewComposer wurde nach androidx.ui.node.UiComposer verschoben. androidx.compose.Emittable wurde entfernt. Sie war redundant mit ComponentNode. androidx.compose.ViewAdapters wurde entfernt. Sie werden nicht mehr unterstützt. Die Funktion „Compose.composeInto“ wurde eingestellt. Verwenden Sie stattdessen setContent oder setViewContent. Die Funktion „Compose.disposeComposition“ wurde eingestellt. Verwenden Sie stattdessen die Methode dispose für das von setContent zurückgegebene Composition. androidx.compose.Compose.subcomposeInto wurde zu androidx.ui.core.subcomposeInto verschoben. ComponentNode#emitInsertAt wurde in ComponentNode#insertAt umbenannt. ComponentNode#emitRemoveAt wurde in ComponentNode#removeAt umbenannt. ComponentNode#emitMode wurde in ComponentNode#move umbenannt (Idef00).

  • Die zusammensetzbare Funktion „CreatedImage“ übernimmt die Größenanpassung und das Layout und zeichnet ein bestimmtes ImageAsset auf dem Bildschirm. Diese zusammensetzbare Funktion unterstützt auch das Zeichnen einer beliebigen Painter-Instanz unter Berücksichtigung ihrer intrinsischen Größe sowie einer bestimmten festen Größe oder Mindestgröße (Ibcc8f).

  • Veraltete Wrap-Composable-Funktion. Er kann entweder durch den Modifier „LayoutAlign“ oder durch die zusammensetzbare Funktion „Stack“ (Ib237f) ersetzt werden.

  • WithConstraints hat den Parameter „LayoutDirection“ erhalten (I6d6f7)

  • Die Layoutrichtung wird jetzt vom übergeordneten Layoutknoten an die untergeordneten Knoten weitergegeben. Modifikator für die Layoutrichtung hinzugefügt. (I3d955)

  • Die Stapelkomponente unterstützt die Richtung von rechts nach links (Ic9e00).

  • Die zusammensetzbare Funktion „DrawShape“ wurde entfernt. Verwenden Sie stattdessen den Modifier „DrawBackground“. (I7ceb2)

  • Unterstützung für die Richtung „Rechts nach links“ im Modifier „LayoutPadding“ (I9e8da)

  • AdapterList wurde hinzugefügt, eine scrollbare Listenkomponente, die nur die sichtbaren Elemente zusammensetzt und anordnet. Zu den derzeit bekannten Problemen gehört, dass es nur vertikal funktioniert und nicht alle Fälle von Änderungen an untergeordneten Elementen vollständig berücksichtigt. (Ib351b)

  • Das Flag ComposeFlags.COMPOSER_PARAM wurde in true geändert. Dadurch ändert sich die Strategie für die Codegenerierung für das Compose-Plug-in. Auf hoher 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 richtig verwalten kann. Dies ist eine erhebliche binäre Breaking Change, sollte aber die Quellcodekompatibilität bei allen zulässigen Verwendungen von Compose beibehalten. (I7971c)

  • Canvas-Komponente hinzugefügt Diese Composable-Funktion nimmt eine bestimmte Größe ein (vom Nutzer angegeben) und ermöglicht es Ihnen, mit CanvasScope (I0d622) zu zeichnen.

  • „Density“ und „DensityScope“ wurden in einer Benutzeroberfläche zusammengeführt. Statt ambientDensity() können Sie jetzt DensityAmbient.current verwenden. Anstelle von withDensity(density) nur with(density) (I11cb1)

  • „LayoutCoordinates“ wurde geändert, sodass „providedAlignmentLines“ ein Set anstelle einer Map ist und „LayoutCoordinates“ stattdessen den Operator „get()“ zum Abrufen eines Werts implementiert. So können Modifikatoren einen oder mehrere Werte des Sets ändern, ohne für jeden Modifikator eine neue Sammlung erstellen zu müssen. (I0245a)

  • Scroller verhalten sich jetzt wie bei der nativen Android-Wischbewegung. (I922af, b/147493715)

  • Verbesserungen der API-Oberfläche von Constraints (I0fd15)