Material erstellen

Jetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der Einstiegspunkt auf höherer Ebene für Compose. Er wurde entwickelt, um Komponenten bereitzustellen, die den auf www.material.io beschriebenen Komponenten entsprechen.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
9. September 2026 1.12.1 - - 1.13.0-alpha03

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 einzelnen Versionshinweisen enthalten.

GruppeBeschreibung
compose.animationAnimationen in Jetpack Compose-Anwendungen erstellen, um die User Experience zu verbessern
compose.compiler@Zusammensetzbare 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 Foundation-Bibliothek 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 wurde entwickelt, um Komponenten bereitzustellen, die den auf www.material.io beschriebenen Komponenten entsprechen.
compose.material3Jetpack Compose-UIs mit Material Design 3-Komponenten erstellen – der nächsten Generation von Material Design. Material 3 umfasst aktualisierte Designs und Komponenten sowie Material You-Personalisierungsfunktionen wie dynamische Farben und 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 unter Google-Repository bei Maven.

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

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. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.13

Version 1.13.0-alpha03

9. September 2026

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

API-Änderungen

  • Die Überladungen des Material 2-Textfelds, die value, onValueChange-Parameter akzeptieren, sind veraltet. Stellen Sie auf die Überladung um, die TextFieldState verwendet, um den Status zu übertragen. (I6b841, b/556234973)

Fehlerkorrekturen

  • compileSdk für Compose-Bibliotheken auf Version 37.1 aktualisiert. Dazu muss compileSdk für alle Apps und Bibliotheken, die Compose verwenden, transitiv aktualisiert werden. (I05b0f)
  • Die Komponenten SecureTextField und OutlinedSecureTextField (sowie die eingestellten BasicSecureTextField-Überladungen) wurden aktualisiert, sodass TextObfuscationMode.System anstelle von TextObfuscationMode.RevealLastTyped als Standardmodus für die Verschleierung verwendet wird. (I76c7e)

Version 1.13.0-alpha02

26. August 2026

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

Version 1.13.0-alpha01

12. August 2026

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

API-Änderungen

  • androidx.benchmark hat jetzt einen minSdk von 24. (Ic2a85)

Fehlerkorrekturen

  • Optimierte Initialisierung von material-Properties der Wertklasse auf Dateiebene mithilfe dynamischer Getter. (Iae591)
  • Optimierte Initialisierung von Companion-Objekten für material-Wertklassen (FabPosition und Strings) mithilfe dynamischer Getter. (I0c7c0)
  • Anforderung für compileSdk 37 entfernen (If78b4)

Version 1.12

Version 1.12.1

9. September 2026

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

Version 1.12.0

12. August 2026

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

Wichtige Änderungen seit Version 1.11.0:

Version 1.12.0-rc01

29. Juli 2026

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

Version 1.12.0-beta02

01. Juli 2026

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

Version 1.12.0-beta01

17. Juni 2026

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

Version 1.12.0-alpha03

19. Mai 2026

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

Version 1.12.0-alpha02

6. Mai 2026

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

Version 1.12.0-alpha01

22. April 2026

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

API-Änderungen

  • Die VelocityTracker wurde so geändert, dass die vom Android-Framework bereitgestellte Implementierung verwendet wird (konfigurierbar mit AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, b/359962905)

Fehlerkorrekturen

  • Compose compileSdk wurde auf API 37 aktualisiert. Das bedeutet, dass bei der Verwendung von Compose mindestens AGP 9.2.0 erforderlich ist. (Id45cd, b/413674743)

Version 1.11

Version 1.11.4

01. Juli 2026

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

Version 1.11.3

17. Juni 2026

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

Version 1.11.2

19. Mai 2026

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

Version 1.11.1

6. Mai 2026

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

Version 1.11.0

22. April 2026

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

Version 1.11.0-rc01

8. April 2026

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

Version 1.11.0-beta02

25. März 2026

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

Version 1.11.0-beta01

11. März 2026

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

Version 1.11.0-alpha06

25. Februar 2026

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

Version 1.11.0-alpha05

11. Februar 2026

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

Version 1.11.0-alpha04

28. Januar 2026

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

Version 1.11.0-alpha03

14. Januar 2026

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

Version 1.11.0-alpha02

17. Dezember 2025

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

Version 1.11.0-alpha01

3. Dezember 2025

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

Version 1.10

Version 1.10.6

25. März 2026

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

Version 1.10.5

11. März 2026

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

Version 1.10.4

25. Februar 2026

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

Version 1.10.3

11. Februar 2026

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

Version 1.10.2

28. Januar 2026

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

Version 1.10.1

14. Januar 2026

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

Version 1.10.0

3. Dezember 2025

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

Version 1.10.0-rc01

19. November 2025

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

Version 1.10.0-beta02

5. November 2025

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

Version 1.10.0-beta01

22. Oktober 2025

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

Version 1.10.0-alpha05

8. Oktober 2025

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

Version 1.10.0-alpha04

24. September 2025

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

Version 1.10.0-alpha03

10. September 2025

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

Version 1.10.0-alpha02

27. August 2025

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

Version 1.10.0-alpha01

13. August 2025

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

Fehlerkorrekturen

Version 1.9

Version 1.9.5

19. November 2025

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

Version 1.9.4

22. Oktober 2025

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

Version 1.9.3

8. Oktober 2025

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

Version 1.9.2

24. September 2025

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

Version 1.9.1

10. September 2025

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

Version 1.9.0

13. August 2025

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

Wichtige Änderungen seit Version 1.8.0

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-Datei verwenden. Wenn Sie Compose-Lint-Prüfungen in der IDE ausführen möchten, 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)

Fehlerkorrekturen

  • ExposedDropdownMenu ist binärkompatibel mit älteren Versionen. (I133f7)

Version 1.9.0-rc01

30. Juli 2025

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

Version 1.9.0-beta03

16. Juli 2025

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

Version 1.9.0-beta02

2. Juli 2025

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

Fehlerkorrekturen

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

Version 1.9.0-alpha04

4. Juni 2025

androidx.compose.material:material-*:1.9.0-alpha04 ist 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 ist 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 ist 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 ist 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. Wenn Sie Compose-Lint-Prüfungen in der IDE ausführen möchten, 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 der Begriff das Verhalten klarer beschreibt: Alle Messwerte werden pausiert. Außerdem wird die MicrobenchmarkScope-Basisklasse 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)
  • Es wurde ein Absturz bei den Fortschritts- und Ladeanzeigen behoben, wenn Float.NaN als Fortschritt übergeben wurde. (I4fa96, b/352364576)

Version 1.8

Version 1.8.3

18. Juni 2025

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

Version 1.8.2

20. Mai 2025

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

Version 1.8.1

7. Mai 2025

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

Version 1.8.0

23. April 2025

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

Version 1.8.0-rc03

09. April 2025

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

Fehlerkorrekturen

  • Fügt displayCutout der Gruppe von Einsätzen hinzu, die Material-Komponenten standardmäßig berücksichtigen, um zu verhindern, dass Inhalte mit der Display-Aussparung überlappen.
    • Dies ist eine Verhaltensänderung, die sich darauf auswirkt, wie inset-fähige Komponenten um eine Display-Aussparung herum funktionieren. Dazu gehören der Standardwert des Parameters WindowInsets für Material 3-Komponenten, die Insets berücksichtigen, 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 die 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 festgelegt ist. Wenn Sie dieses Verhalten deaktivieren möchten, können Sie die Abhängigkeit von ui-test-manifest entfernen und einen Aktivitätseintrag in der AndroidManifest.xml Ihrer Test-App für ComponentActivity mit dem gewünschten Design hinzufügen. (I7ae1b, b/383368165)

Externer Beitrag

Version 1.8.0-alpha07

11. Dezember 2024

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

Fehlerkorrekturen

  • Optimieren Sie das Verhalten von contentPadding, um zu vermeiden, dass der Inhalt des Bodys immer neu zusammengesetzt wird, wenn sich contentPadding ändert. (I8c8e2, b/373904168)
  • Sorgen Sie dafür, dass sich der Wert des Material-Schiebereglers ändert, wenn Steuertasten gedrückt werden. (I1c442)

Version 1.8.0-alpha04

16. Oktober 2024

androidx.compose.material:material-*:1.8.0-alpha04 ist 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 unter Android S+ hinzugefügt, z. B. bei einer Karte, die sich beim Klicken maximiert. Bisher wurde die neue Größe nicht durch den Ripple-Effekt ausgefüllt. Jetzt wird er jedoch auf die neuen Grenzen ausgeweitet. (If509a, b/183019123)

Version 1.8.0-alpha02

18. September 2024

androidx.compose.material:material-*:1.8.0-alpha02 ist 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 ist 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 TextField- und OutlinedTextField-Überladungen hinzugefügt, die ein TextFieldState akzeptieren (I3b74c)

Version 1.7

Version 1.7.8

12. Februar 2025

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

Version 1.7.7

29. Januar 2025

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

Version 1.7.6

11. Dezember 2024

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

Version 1.7.5

30. Oktober 2024

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

Version 1.7.4

16. Oktober 2024

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

Version 1.7.2

18. September 2024

androidx.compose.material:material-*:1.7.2 ist 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 ist 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 ist 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 ist 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 ist 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 ist 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 ist 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 ist 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 ist 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 ist 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. Insbesondere wurden die Methoden aus TextDefaults zum Erstellen von thematischen 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 ist veröffentlicht. Version 1.7.0-alpha08 enthält diese Commits.

API-Änderungen

  • Beheben Sie das Problem, dass backgroundColor nicht auf TextFieldDecorationBox und OutlinedTextFieldDecorationBox angewendet wird. Für Dekorationsfelder ist jetzt ein shape-Parameter verfügbar. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled wurde entfernt und LocalRippleConfiguration kann jetzt null sein. 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 Stilen, den Hover- und Fokusstilen auch eine Option für den Stil im gedrückten Zustand. TextDefaults-Methoden haben jeweils ein pressedStyle-Argument, um dies zu unterstützen. (Ic473f, b/139312671)

Fehlerkorrekturen

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

Version 1.7.0-alpha07

17. April 2024

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

API-Änderungen

  • Für Textlinks gibt es jetzt zusätzlich zum normalen Stil sowie den Stilen für „Hover“ und „Fokus“ 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 ist veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.

Mitteilung

  • 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-Standardeinstellungen wurden in das DrawerDefaults-Objekt verschoben. (Ib5b2e)

Version 1.7.0-alpha05

20. März 2024

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

API-Änderungen

  • BottomDrawer wurde von „experimental“ zu „stable“ hochgestuft. BottomDrawerState gibt den Fortschritt jetzt als Funktion aus, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann. In BottomDrawerState kann die Animationsspezifikation jetzt angepasst werden und confirmStateChange ist keine nachgestellte Lambda-Funktion mehr. (I9c029, b/261423850)
  • BackdropScaffold wurde von „experimental“ zu „stable“ 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, um den Fortschritt zwischen Ankern abzufragen. (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 jetzt stabil und nicht mehr experimentell. 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, was die Leistung verbessert. (I7a025)

Version 1.7.0-alpha02

7. Februar 2024

androidx.compose.material:material-*:1.7.0-alpha02 ist 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 ist 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() } verwendet 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 ist veröffentlicht. Version 1.6.8 enthält diese Commits.

Version 1.6.7

1. Mai 2024

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

Version 1.6.6

17. April 2024

androidx.compose.material:material-*:1.6.6 ist veröffentlicht. Keine Änderungen seit der letzten Version.

Version 1.6.5

3. April 2024

androidx.compose.material:material-*:1.6.5 ist 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 ist 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 ist 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 ist veröffentlicht. Version 1.6.2 enthält diese Commits.

Version 1.6.1

7. Februar 2024

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

Version 1.6.0

24. Januar 2024

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

  • Abhängigkeitsupdates

Version 1.6.0-alpha06

20. September 2023

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

Funktionsgefährdende Verhaltensänderung

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

API-Änderungen

  • Es wurde ein temporäres Flag eingeführt, mit dem gesteuert werden kann, ob das Scaffold-Element seine untergeordneten Elemente während der Messung oder während der Platzierung messen soll. Standardmäßig wird dies in der Analyse gemessen. 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 ist 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 Attributen 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 Verarbeitung für das Spiegeln von Symbolen in RTL-Sprachen haben, empfehlen wir Ihnen, 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 ist veröffentlicht. Version 1.6.0-alpha04 enthält diese Commits.

Fehlerkorrekturen

  • Einige Komponenten, die Subcomposition (z. B. BottomSheetScaffold) in einem Scaffold in einem LookaheadScope verwenden, haben versucht, ihre Größe zu früh zu lesen. Das Problem wurde behoben. (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)
  • Die internen Layouts von BottomSheetScaffold wurden optimiert und ein potenzielles Problem mit BottomSheetScaffold in einem LookaheadLayout wurde behoben. (Ic0afa)

Version 1.6.0-alpha03

9. August 2023

androidx.compose.material:material-*:1.6.0-alpha03 ist 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. Orientieren Sie sich an den entsprechenden Beispielen. (I655e8)

Version 1.6.0-alpha02

26. Juli 2023

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

API-Änderungen

  • Die Dichteabhängigkeit wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten: SwipeToDismiss und blattbasierte Komponenten. Verwenden Sie stattdessen die neue Überladung, bei der die Dichte ein Parameter ist. (I1846e)
  • Zusätzliche Annotationen 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 ist 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. Der Standardstil für die Zeilenhöhe wurde ebenfalls in Trim.None und Alignment.Center geändert und den TextStyles von Typography wurden explizite 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 von 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 (festgelegten) 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 ist veröffentlicht. Version 1.5.4 enthält diese Commits.

Version 1.5.3

4. Oktober 2023

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

Version 1.5.2

27. September 2023

androidx.compose.material:material-*:1.5.2 ist 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 ist 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 Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert verfügbar gemacht. 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 snapTo-Funktion im Drawer als nicht experimentelle API. (Ib9c18, b/261425368)
  • Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Spurfarbe und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Strichkappe hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • Die confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState wurden 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 ist. (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 wurde hinzugefügt. (I8f206)
  • Die Änderungen an den Swipeable-APIs in ModalDrawer. DrawerState wurden übernommen. animateTo wurde durch die Methoden „open“ und „close“ ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Offset anzufordern. (I3de9e)
  • Die Funktion „Drawers and Sheets“ wurde aktualisiert, um das Drücken von Tasten richtig zu verzögern, falls aus Gesten Scroll-Ereignisse werden können.
  • Der Parameter minLines wurde in die Textkomponenten „material“ und „material3“ sowie in TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Zeilen angegeben werden (I4af1d).

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem pullRefresh die Geschwindigkeit nicht berücksichtigt hat, was zu einem Overscroll geführt hat. Die API-Signatur des Lambdas onRelease in Modifier.pullRefresh wurde geändert, sodass ein Float für die verbrauchte Geschwindigkeit zurückgegeben wird (I7db65, b/266874741).
  • BottomSheetState, ModalBottomSheetState und BottomDrawerState haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (abgerechneten) Anker und dem nächstgelegenen Anker in der Wischrichtung angibt. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • Die AlertDialog-Schaltfläche wird jetzt unter der Schaltfläche zum Bestätigen angezeigt, wenn die Schaltflächen übereinander angeordnet sind, 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 am verschachtelten Scrollen teil, wenn gesturesEnabled auf „false“ gesetzt ist. (I634f3, b/215403277)
  • Ein Fehler wurde behoben, durch den BottomSheetScaffold abstürzte, wenn für Slots leerer Inhalt angegeben wurde. (Ib24a5, b/235588730)
  • Behebt das Abfangen von Klicks/Zeigerereignissen durch PullRefreshIndicator. (2494256, b/271777421)
  • Ein Problem wurde behoben, bei dem ModalBottomSheetLayout in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B. Modifier.animateContentSize) in/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 ist 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 ist 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 (festgelegten) 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 ist 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 ist veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

API-Änderungen

  • Der Offset von DrawerState und BottomDrawerState ist nicht mehr nullable. Stattdessen wird Float.NaN zurückgegeben, um anzuzeigen, dass kein Offset vorhanden ist. (Ie9855)
  • Es wurde eine Option zum Übergeben eines ScrollState beim Erstellen eines DropdownMenu oder eines ExposedDropdownMenu hinzugefügt, um den vertikalen Scrollstatus der angezeigten Menüelemente zu steuern. (Idb009, b/185304441)
  • Unterstützung für das Aktivieren/Deaktivieren der Geste für 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 Attributs „Semantik“ isContainer in isTraversalGroup (I121f6)

Fehlerkorrekturen

  • Die AlertDialog-Schaltfläche wird jetzt unter der Schaltfläche zum Bestätigen angezeigt, wenn die Schaltflächen übereinander angeordnet sind, 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 ist veröffentlicht. Version 1.5.0-alpha04 enthält diese Commits.

API-Änderungen

  • Die Dichteabhängigkeit wird auf die Komponentenebene verschoben. Dies gilt für die folgenden Komponenten: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Verwenden Sie stattdessen 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 ist veröffentlicht. Version 1.5.0-alpha03 enthält diese Commits.

API-Änderungen

  • Aktualisieren Sie die internen Komponenten von BottomDrawer, um die neuen SwipeableV2-APIs zu verwenden. Daher 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 eine Nullable-Gleitkomma-Eigenschaft. Auf den aktuellen Wert und den Wischzielwert kann weiterhin über die Eigenschaften „currentValue“ und „targetValue“ zugegriffen 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-)Zustand 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 am verschachtelten 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 ist veröffentlicht. Version 1.5.0-alpha02 enthält diese Commits.

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den BottomSheetScaffold abstürzte, wenn für Slots leerer Inhalt angegeben wurde. (Ib24a5, b/235588730)
  • Fehlerbehebung bei PullRefreshIndicator, das Klicks / Zeigerereignisse abfängt (2494256, b/271777421)

Version 1.5.0-alpha01

22. März 2023

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

Fehlerkorrekturen

  • Fügen Sie ein Reflow-Beispiel für Chipgruppen hinzu. Aktualisiere das horizontale Padding zwischen untergeordneten Chips im Beispiel für die einzeilige Chipgruppe, damit es der Spezifikation entspricht. (I3b155)
  • Ein Problem wurde behoben, bei dem ModalBottomSheetLayout in einem Grenzfall beim Ändern der Ausrichtung abstürzte. Layout-Animationen (z.B. Modifier.animateContentSize) in/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 ist veröffentlicht. Version 1.4.2 enthält diese Commits.

Version 1.4.1

5. April 2023

androidx.compose.material:material-*:1.4.1 ist 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 ist 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 ist. (I33f58, b/258495559)
  • Änderungen an den Swipeable APIs in ModalDrawer 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)
  • Der Parameter minLines wurde in die Textkomponenten „material“ und „material3“ sowie in TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Zeilen angegeben werden (I4af1d).
  • Der Parameter minLines wurde den BasicText 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-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 ist veröffentlicht. Version 1.4.0-beta02 enthält diese Commits.

API-Änderungen

  • Änderungen an den Swipeable APIs in BottomSheetScaffold Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert verfügbar gemacht. 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 aus 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-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 ist veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

  • Ein Problem wurde behoben, bei dem pullRefresh die Geschwindigkeit nicht berücksichtigt hat, was zu einem Overscroll geführt hat. Die API-Signatur des Lambdas onRelease in Modifier.pullRefresh wurde geändert, sodass ein Float für die verbrauchte Geschwindigkeit zurückgegeben wird (I7db65, b/266874741).
  • Stellen Sie den Property-Getter LocalMinimuTouchTargetEnforcement wieder her, markieren Sie ihn als eingestellt und leiten Sie ihn zu LocalMinimumInteractiveComponentEnforcement weiter. (I60dd5)

Version 1.4.0-alpha05

25. Januar 2023

androidx.compose.material:material-*:1.4.0-alpha05 ist 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, der unter bestimmten Umständen zu einem Absturz des Blatts führte, wenn es vom ausgeblendeten in den sichtbaren Zustand wechselte. (Ia9265, b/265444789)

Version 1.4.0-alpha04

11. Januar 2023

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

API-Änderungen

  • Die Semantikeigenschaft IsContainer wurde auf Surfaces hinzugefügt. Diese Eigenschaft wird bei einer späteren Änderung verwendet, bei der die Reihenfolge der Bewegung basierend auf der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379)
  • Markieren Sie die snapTo-Funktion im Drawer als nicht experimentelle API. (Ib9c18, b/261425368)
  • Für kreisförmige Fortschrittsanzeigen wurde ein Parameter für die Spurfarbe und für kreisförmige und lineare Fortschrittsanzeigen ein Parameter für die Strichkappe hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • Die confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState wurden in confirmValueChange umbenannt. (Ib48d1)
  • Mehr Null-Zulässigkeit von Rückgabetypen für eingestellte, ausgeblendete 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 ist. (I33f58, b/258495559)
  • Änderungen an den Swipeable APIs in ModalBottomSheetLayout 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 rememberPullRefreshStaterefreshThresholdrefreshingOffset im Laufe der Zeit nicht aktualisiert wurde. (Ifed10, b/263159832)
  • Der Fortschritt für Fortschrittsanzeigen 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, durch das ModalBottomSheetLayout abstürzte, wenn der Tabelleninhalt leer war. In ModalBottomSheetLayout sind jetzt leere Tabelleninhalte zulässig. 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 ein Downgrade Ihrer androidx.compose.foundation-Bibliothek auf Version 1.4.0-alpha03 durchführen.

Version 1.4.0-alpha03

7. Dezember 2022

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

API-Änderungen

  • Annotation @JvmDefaultWithCompatibility wurde hinzugefügt. (I8f206)
  • Änderungen in 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.
  • Der Fehler, dass Clickables Wellen nicht richtig verzögert hat, wenn es in einem Scrollable ViewGroup verwendet wurde, wurde behoben.
  • Die Funktion „Drawers and Sheets“ wurde aktualisiert, um das Drücken von Tasten richtig zu verzögern, falls aus Gesten Scroll-Ereignisse werden können.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem 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 ist veröffentlicht. Version 1.4.0-alpha02 enthält diese Commits.

API-Änderungen

  • awaitFirstDown und waitForUpOrCancellation akzeptieren jetzt ein PointerEventPass für mehr Flexibilität. (I7579a, b/212091796)
  • Der Parameter minLines wurde in die Textkomponenten „material“ und „material3“ sowie in TextField und OutlinedTextField eingefügt. Damit kann die Mindesthöhe der Komponente in Zeilen angegeben werden (I4af1d).
  • Der Parameter minLines wurde den BasicTex- und BasicTextField-Parametern hinzugefügt. Damit kann die Mindesthöhe dieser Composables in Zeilen festgelegt werden (I24294, b/122476634).

Version 1.4.0-alpha01

24. Oktober 2022

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

API-Änderungen

  • Für Gestenerkennungen wurde die neue Methode awaitEachGesture() 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 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 ist veröffentlicht. Version 1.3.1 enthält diese Commits.

Version 1.3.0

24. Oktober 2022

androidx.compose.material:material-*:1.3.0 ist 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 ändern (I3b79a)

Version 1.3.0-rc01

5. Oktober 2022

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

API-Änderungen

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

Version 1.3.0-beta02

7. September 2022

androidx.compose.material:material-*:1.3.0-beta02 ist 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 ist 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 mit Material- als auch mit UI-Design. 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 dann von dieser Änderung betroffen, wenn Sie ein benutzerdefiniertes Dialogfeld oder Pop-up mit einer Erhebung über 8 dp erstellen. Verringern Sie die Höhe 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 Bedienungshilfen interaktiv und lesbar ist.

Version 1.3.0-alpha03

10. August 2022

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

Externer Beitrag

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

Version 1.3.0-alpha01

29. Juni 2022

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

Version 1.2.0

27. Juli 2022

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

API-Änderungen

  • Schnittstellen in Compose-Bibliotheken werden jetzt mit JDK8-Standardmethoden für Schnittstellen erstellt (I5bcf1).

Fehlerkorrekturen

  • Das Tab „Symbol vorangestellt“ wurde aktualisiert, damit das Symbol 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 ist veröffentlicht. Version 1.2.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, bei dem 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 ist 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 ist 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 ist 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 nicht gebundenes 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 ist 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 ist veröffentlicht. Version 1.2.0-alpha06 enthält diese Commits.

API-Änderungen

  • Updates an 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 ist 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 zum Verwalten 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 ist 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)
  • ComposableTarget, ComposableTargetMarker und ComposableOpenTarget wurden hinzugefügt, um zur Kompilierzeit zu melden, 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 Anmerkungen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Anmerkungen 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.

    Für benutzerdefinierte Applier müssen die zusammensetzbaren Funktionen, die ComposeNode oder ReusableComposeNode aufrufen, eine CompoableTarget-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es wird jedoch empfohlen, eine Anmerkung zu erstellen, die mit ComposableTargetMarker annotiert ist, und dann die markierte Anmerkung anstelle von ComposableTarget direkt zu verwenden. Eine mit ComposableTargetMarker gekennzeichnete Composable-Annotation entspricht einem ComposbleTarget mit dem voll 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 ist 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 ist 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 hinzugefügt (I07100, b/192585545)

Version 1.2.0-alpha01

12. Januar 2022

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

Abhängigkeitsupdates

  • Jetzt hängt von Kotlin 1.6.10 ab.

Externer Beitrag

  • ModalBottomSheetState hat jetzt ein isSkipHalfExpanded-Flag. Sie kann entweder über den Konstruktor festgelegt oder später aktualisiert werden, indem die isSkipHalfExpanded-Eigenschaft von ModalBottomSheetState 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 ist veröffentlicht. Version 1.1.1 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.1.0

9. Februar 2022

androidx.compose.material:material-*:1.1.0 ist 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 in Android 12
  • Verbesserungen bei der Größe von Berührungszielbereichen
  • Im Vergleich zu Compose 1.0 wird der Layoutbereich von Material-Komponenten erweitert, um die Richtlinien für Bedienungshilfen von Material Design für die Größe von Berührungszielen 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. So wird Compose Material an das gleiche Verhalten von Material Design-Komponenten angepasst und bietet ein einheitliches Verhalten, 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 Berührungszielbereichen erfüllt werden.
  • Stabile Unterstützung für Navigation Rail
  • Eine Reihe von zuvor experimentellen APIs wird als stabil eingestuft.
  • Unterstützung für neuere Versionen von Kotlin

Version 1.1.0-rc03

26. Januar 2022

androidx.compose.material:material-*:1.1.0-rc03 ist 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 die Barrierefreiheit für die Größe von Berührungszielen 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. So wird Compose Material an das gleiche Verhalten von Material Design-Komponenten angepasst und bietet ein einheitliches Verhalten, 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 Berührungszielbereichen erfüllt werden.

Fehlerkorrekturen

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

Version 1.1.0-rc01

15. Dezember 2021

androidx.compose.material:material-*:1.1.0-rc01 ist 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 ist 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 ist 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 ist 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 ist 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 setzen, wird jetzt das richtige Status-Overlay angezeigt.

Version 1.1.0-alpha06

13. Oktober 2021

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

API-Änderungen

  • Es wurde eine überladene Version von „Layout“ 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. So lässt sich genauer steuern, ob „onDismissRequest“ aufgerufen werden soll oder nicht. Das kann beispielsweise nützlich sein, um zu verhindern, dass der Anker bei Berührungen des Ankers geschlossen wird.
    • updateAndroidWindowManagerFlags wurde zu 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 ist 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 barrierefreien Berührungszielbereich haben. Da dadurch zusätzlicher Abstand um Komponenten herum entsteht, 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-Kompositions-Local 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 lässt sich das Aussehen von TextField je nach Fokusstatus ändern. (I66923, b/198402662)

Version 1.1.0-alpha04

15. September 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Ermöglicht, 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 Trennlinien mit einer Breite von einem Pixel unabhängig von der Displaydichte gezeichnet werden. (I16ffb, b/196840810)

Version 1.1.0-alpha03

1. September 2021

androidx.compose.material:material-*:1.1.0-alpha03 ist 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)
  • Die Mindestgröße des Berührungszielbereichs wurde ViewConfiguration hinzugefügt, um sie in der Semantik und bei der Zeigereingabe zu verwenden und so die Barrierefreiheit zu gewährleisten. (Ie861c)

Version 1.1.0-alpha02

18. August 2021

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

Externer Beitrag

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

Version 1.1.0-alpha01

4. August 2021

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

API-Änderungen

  • Die DrawScope#drawImage-Methode wurde aktualisiert, um Quell- und Zielrechtecke zu verwenden und einen optionalen FilterQuality-Parameter zu nutzen. Das ist nützlich für Pixelkunst, die beim Hochskalieren für pixelbasierte Kunst pixelig dargestellt 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 Badge-Composables 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 Katalog-App wurden hinzugefügt. (I3cffc)
  • Dialogfelder 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 ist 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 ist 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 ist 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 ist veröffentlicht. Version 1.0.2 enthält diese Commits.

Aktualisiert, um die Compose-Version 1.0.2 zu unterstützen. Compose 1.0.2 ist weiterhin mit Kotlin 1.5.21 kompatibel.

Version 1.0.1

4. August 2021

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

Abhängigkeitsupdates

  • Die Abhängigkeit von Kotlin 1.5.21 wurde aktualisiert.

Version 1.0.0

28. Juli 2021

androidx.compose.material:material-*:1.0.0 ist 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-Versionsblog.

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 der Datei build.gradle 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 ist veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Dialogfelder 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 ist 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 kein Eingabetext im Textfeld vorhanden ist und das Textfeld nicht im Vordergrund ist. Durch diese Änderung 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 ist 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“ wurde 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 wurden 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 für Menschen lesbaren 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 steht <FLAGS> für ein 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 im Voraus 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, weist darauf hin, dass sie beim Start verwendet wird und im Heap vorab zugewiesen werden sollte, um die Kosten für das Laden der Klasse zu vermeiden.

So funktioniert's

  • Bibliotheken können diese Regeln definieren, die in AAR-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 ist veröffentlicht. Version 1.0.0-beta08 enthält diese Commits.

Neue Funktionen

Verhaltensänderung durch API-Änderung

  • VERHALTENSÄNDERUNG: Die Karte verarbeitet jetzt Klicks. Klicks, die über Card(Modifier.clickable) hinzugefügt werden, werden ignoriert. Verwenden Sie bitte die neue experimentelle Überladung einer Karte, die „onClick“ akzeptiert. (Ia8744, b/183775620)
    • Es wurde ein neues Karten-Overlay hinzugefügt, das Klicks sowie andere klickbare Funktionen verarbeitet: indication, interactionSource, enabled/disabled. Es war nicht möglich, eine normale, nicht klickbare Karte mit Modifier.clickable zu verwenden, da die Karte in diesen Fällen die Ripple-Anzeige nicht beschneidet.
  • VERHALTENSÄNDERUNG: Die Oberfläche verarbeitet jetzt Klicks. Klicks, die über Surface(Modifier.clickable) hinzugefügt werden, haben keine Auswirkungen mehr. Verwenden Sie die neue experimentelle Überladung der Oberfläche, 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 reguläre, nicht anklickbare Oberfläche mit dem Modifier.clickable zu verwenden, da die Oberfläche in diesen Fällen die Wellenanzeige nicht beschneidet.

API-Änderungen

  • FabPosition wurde von einem Enum 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)
  • Fügt ein Tipp-Zeitlimit für klickbare/umschaltbare Elemente hinzu, um zu verhindern, dass während eines Scroll- oder Ziehvorgangs ein Ripple-Effekt angezeigt wird (Ia2704, b/168524931).
  • Die Eigenschaften „ContentDescription“ und „Text semantics“ sind nicht mehr einzelne Werte, sondern Listen. So können sie zusammengeführt werden, anstatt verkettet zu werden. Außerdem wurden bessere Test-APIs bereitgestellt, um diese Änderungen zu nutzen (Ica6bf, b/184825850).
  • Modifier.focusModifier() wurde eingestellt und durch Modifier.focusTarget() (I6c860) ersetzt.
  • Das FocusState-Enum wurde durch eine FocusState-Schnittstelle ersetzt (Iccc1a, b/187055290).
  • LocalRippleNativeRendering wurde entfernt, da die Ripple-Implementierung mit View-Unterstützung 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 Modifikatoren jetzt beeinflusst, welche Koordinaten gemeldet werden. (Ieb67d, b/177926591)
  • Dem 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 ist 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 ist 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 Wechseln zwischen Bildschirmen. Dadurch ändert sich die API-Oberfläche von „ripple“ nicht, es kann aber zu Verhaltensänderungen kommen. Zur Unterstützung der Migration wurde LocalRippleNativeRendering hinzugefügt. Geben Sie für diese CompositionLocal den Wert false an, um im CompositionLocalProvider auf die vorherige Ripple-Implementierung 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 Bedienungshilfen-APIs für CollectionInfo und CollectionItemInfo hinzugefügt, mit denen Sammlungen und ihre Elemente für Bedienungshilfen-Dienste markiert werden können (Id54ef, b/180479017).
  • Die Bedienungshilfen-API error wurde hinzugefügt, mit der ein Knoten mit ungültiger Eingabe markiert werden kann (I12997, b/180584804, b/182142737).

Fehlerkorrekturen

  • Die Implementierung von Insets im Compose Material-Katalog wurde aktualisiert: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Untergeordnete Elemente vom Typ „Zeile“ und „Spalte“ 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 ist veröffentlicht. Version 1.0.0-beta05 enthält diese Commits.

Fehlerkorrekturen

  • Dem bestehenden Compose Material-Katalog wurden Kachelbilder für Komponenten, eine Themenauswahl und spezifischere Menü-URLs hinzugefügt. (I9b58e)

Version 1.0.0-beta04

7. April 2021

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

API-Änderungen

  • API-ÄNDERUNG: Der Status DrawerState erbt nicht mehr von der experimentellen Klasse „SwipeableState“.
    • API-ÄNDERUNG: BottomDrawerState ist jetzt als „Experimentell“ gekennzeichnet, um der bereits experimentellen 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-Barrierefreiheits-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

  • Dem vorhandenen Modul wurde die Implementierung des Compose Material-Katalogs hinzugefügt. Derzeit fehlen noch: Kachelbilder für Komponenten, Themenauswahl (werden in Folgeänderungen hinzugefügt). (Ie7a94)

Version 1.0.0-beta03

24. März 2021

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

API-Änderungen

  • DefaultMonotonicFrameClock wurde verworfen. Wenn Sie withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock aufrufen, wird jetzt IllegalStateException ausgegeben. (I4eb0d)
  • Es wurde eine neue API LeadingIconTab hinzugefügt, um die Anzeige eines Symbols und von Inline-Text auf einem Tab zu unterstützen. (I23267)

Externer Beitrag

  • [von Jossi Wolf] BottomDrawer umschließt jetzt den Inhalt des Drawer-Slots. BottomDrawer löst kein 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 ist 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 Row übereinstimmt (Ib2dc7).
  • Es wurde ein neues Modul und eine neue Platzhalter-UI für einen Compose-Materialkatalog 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 ein ComposeView verwenden und Fragment und/oder AppCompat, 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 ist 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ößenmodifikatoren 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)
  • Entfernte Geräteprofil-Assertions (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 hinzufügen (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 Textkomponenten auf niedriger Ebene 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 eine Sammlung von Tabs oder Optionsfeldern für Barrierefreiheitszwecke markiert werden kann (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 mit @ReadOnlyComposable gekennzeichneten Composables 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 von vordefinierten Decays. (I02b86, b/175294473)

  • Größenmodifikatoren 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 Foundation-Paket verschoben. „VelocirtTracker“ 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 Composition-Konstruktor akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
    • „currentCompositeKeyHash“ ist jetzt eine zusammensetzbare Property der obersten Ebene anstelle einer zusammensetzbaren Funktion der obersten Ebene.
    • „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 die binäre Kompatibilität, nicht aber die Quellkompatibilität beeinträchtigt. Das sollte für die meisten Nutzer 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).

  • Die folgenden Ä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.
    • Der Parameter icon in BottomNavigationItem wurde nach selected und onClick verschoben.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • Die bodyContent-Parameter in einigen Komponenten wurden in content umbenannt.
    • Die Parameter in ButtonDefaults.buttonColors() wurden neu angeordnet. Da sich der Typ der Parameter nicht geändert hat, führt dies nicht zu einem Fehler in Ihrem Code. Achten Sie jedoch darauf, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren, da Ihr Code sonst nicht wie zuvor funktioniert.
    • Der Parameter secondaryVariant wurde zu darkColors() hinzugefügt. Diese Farbe ist in der Regel dieselbe wie secondary im dunklen Design, wird aber 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 als „nullable“ festgelegt.
    • 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 bzw. ImageVector. 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 in 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 ist 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 gekennzeichnet (Id766e).
  • 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 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 Pop-up weiter zu konfigurieren. (I9c443)
  • „loadFontResource“ wird nicht mehr unterstützt. 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 und dropdownModifier, dropdownOffset und dropdownContent wurden in modifier, offset und content umbenannt. „DropdownMenu“ verhält sich jetzt konsistent mit 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 zusammenfassen. Weitere Informationen zur Verwendung dieser API finden Sie im aktualisierten Beispiel in der Dokumentation. (I884fb)
  • toIntPx() wurde in roundToPx() umbenannt. (I9b7e4, b/173502290)
  • IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
  • 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).
  • Umbenennung von „Ambients“ entsprechend der Umbenennung von „Ambient“ -> „CompositionLocal“. 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 Status wird dann automatisch gespeichert und wiederhergestellt, wenn der in MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie zuvor ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie jetzt eine neue Überladung von rememberSaveable verwenden, die den Parameter stateSaver hat. 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 jetzt @NonRestartableComposable
    • @ComposableContract(readonly = true) ist zu @ReadOnlyComposable geworden
    • @ComposableContract(preventCapture = true) ist jetzt @DisallowComposableCalls
    • @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 „Tab“ und der Parameter label von „BottomNavigationItem“ wurden in „nullable“ geändert, um das Verhalten der Komponente besser zu vermitteln, 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 „contentColor“ wurde in „backgroundColor“ umbenannt (I5bb67).

  • „TabDefaults“ wurde eingestellt 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 wird nicht mehr unterstützt. Verwenden Sie stattdessen „Animatable“. (I71345, b/177457083)

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

  • Den Elementen „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)

  • Fügen Sie den Parameter „layoutDirection“ zu „Shape.createOutline“ hinzu. So können Sie Formen erstellen, die die Layoutrichtung berücksichtigen. (I57c20, b/152756983)

  • Recomposer.current() wurde entfernt. [Zusammenfassung]ComposeView-Recomposers werden jetzt standardmäßig verzögert erstellt und sind auf das Fenster beschränkt. Sie werden vom ViewTreeLifecycleOwner für das Fenster gesteuert. Die Neukomposition und auf „withFrameNanos“ basierende Animations-Ticks werden pausiert, wenn der Host-Lebenszyklus beendet wird. (I38e11)

Fehlerkorrekturen

  • Das Symbol wird jetzt so skaliert, dass es in die Größe passt, wobei die darauf angewendeten Größenmodifikatoren berücksichtigt werden. Beispiel: Icon(.., modifier = Modifier.size(50.dp) wird jetzt 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 ist veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

API-Änderungen

  • Einige Material-APIs werden nicht mehr als @Experimental eingestuft (I5d20e).
  • Dem Bild und dem Symbol wurde der Parameter „Inhaltsbeschreibung“ hinzugefügt. Sie wird verwendet, um Bedienungshilfen eine Beschreibung zu geben (I2ac4c).
  • Änderungen an zustandsorientierten Materialparameter-Schnittstellen, sodass @Composable-Funktionen 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)
  • Änderungen an „Typography“, „Shapes“ und „TabPosition“: Diese sind keine Datenklassen mehr. Es wird 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

  • „onCommit“, „onDispose“ und „onActive“ wurden zugunsten der APIs „SideEffect“ und „DisposableEffect“ eingestellt (If760e).
  • Auf TransitionDefinition basierender Übergang wurde eingestellt (I0ac57)
  • Der Ausgangszustand 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 darauf zu warten, dass 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).

  • Der Ripple-Effekt, der in „Button“ und „FloatingActionButton“ verwendet wird, kann nicht mehr angepasst werden, indem eine neue Indication über „AmbientIndication“ bereitgestellt wird. Dies war nie als Möglichkeit zum Anpassen dieser Komponenten vorgesehen und macht 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 lassen sich Dekorationen wie Symbole, Platzhalter und Labels zum Textfeld hinzufügen und der Trefferbereich vergrößern. (I16996)

  • Fehler behoben, der dazu führte, dass die Breite des Material-Textfelds nicht auf weniger als 280 dp festgelegt werden konnte (I78373)

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

  • Entfernen Sie „displaySize“, da diese Eigenschaft vermieden werden sollte. Normalerweise 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)

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

  • Klickbare, umschaltbare und 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 zusammengesetzt, gemessen und gezeichnet werden können. Um zu verhindern, dass Nutzer ineffiziente Wege gehen, haben wir beschlossen, ScrollableColumn und ScrollableRow einzustellen und stattdessen die Verwendung von LazyColumn und LazyRow zu fördern. Nutzer können weiterhin entscheiden, dass sie das Lazy-Verhalten nicht benötigen, und die Modifizierer direkt verwenden, z. B. so: 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. 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)

  • „Modifier.toolingGraphicsLayer“ wurde hinzugefügt. Damit wird ein Grafikebenen-Modifier hinzugefügt, wenn die Überprü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 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

API-Änderungen

  • Die Velocity-Funktion wurde so geändert, dass sie Komponenten und mathematische Operationen enthält. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt, um mit ähnlichen experimentellen API-Anmerkungen (Ia4502, b/171464963) übereinzustimmen.
  • „Position“ wurde in „DpOffset“ umbenannt und „getDistance()“ wurde entfernt (Ib2dfd)
  • Color.useOrElse() wurde in Color.takeOrElse() umbenannt (Ifdcf5)
  • Schaltfläche zu „foundation/Strings.kt“ hinzufügen (I4a5b7, b/172366489)
  • FlowRow und FlowColumn wurden eingestellt. 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. Das 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 und die Rolle 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 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

API-Änderungen

  • API zum manuellen Auslösen der Ansiedlungsanimation 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 korrekte Syntax dafür ist jetzt, den Getter der Property zu annotieren:

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

    Beide Syntaxen funktionieren noch eine Weile, aber die eingestellte Syntax führt schließlich 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“ wird nicht mehr unterstützt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484).

  • Die Funktionen „LazyColumnFor“, „LazyRowFor“, „LazyColumnForIndexed“ und „LazyRowForIndexed“ werden eingestellt. Verwenden Sie stattdessen LazyColumn und LazyRow (I5b48c).

  • Dp.VectorConverter, Position.VectorConverter usw. wurden in animation-core verschoben und die alten VectorConverter (If0c4b) wurden eingestellt.

  • Die Autofill API ist jetzt eine experimentelle API und erfordert die Einwilligung der Nutzer (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 sich in der Nähe von DrawScope zu befinden. (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. Bei Apps, die nicht auf Material basieren, können Sie 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äß dem Lint-Check und der 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 einen Link zu ImageVector.Builder für die Kompatibilität zu erstellen. (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 der Parameter „singleLine“ 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 sie jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)
  • Die APIs „Modifier.scale“/„rotate“ wurden als Convenience-Funktionen für „drawLayer“ hinzugefügt.
    • Modifier.drawOpacity wurde umbenannt in Modifier.alpha
    • Modifier.drawShadow wurde in Modifier.shadow umbenannt (I264ca, b/173208140)
  • Der Ausrichtungsparameter von „Box“ wurde in „contentAlignment“ umbenannt. (I2c957)
  • „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.
    • Ausnahme für ungültigen Auswahlbereich entfernt (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 die 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 den Richtlinien für andere Ambients und die Compose API entsprechen. (I33440)
  • Es wurde eine Lint-Prüfung hinzugefügt, um zu prüfen, ob in Modifier-Faktories 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 zugehörige Stubs entfernen (I3a7cb)
  • TextUnit.Inherit wurde in TextUnit.Unspecified umbenannt, um die Konsistenz mit anderen Einheiten zu wahren. (Ifce19)
  • Die Alignment-Schnittstelle 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 Hervorhebung 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) ausführen, um denselben Effekt in Ihren Komponenten zu erzielen. Anstatt 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 wurde 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 mit Theme zu ersetzen. Verwenden Sie BasicText für eine einfache Textkomponente, die keine Farbe oder keinen Textstil aus dem Design verwendet. (Ie6ae0)
  • maxLines wurde 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 wurde 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 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 ist veraltet. 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. In diesem Fall wird das bereitgestellte Asset oder der Painter ohne ColorFilter gezeichnet. Bisher wurde bei dem Versuch, die Einfärbung 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 aus Konsistenzgründen mit den APIs „SideEffect“ und „DisposableEffect“ in „LaunchedEffect“ umbenannt. LaunchedEffect ohne Subjektparameter 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. Sie können auch die Image-Komponente / Modifier.paint() mit einem Painter verwenden, wenn Sie die Material-Bibliothek nicht verwenden möchten. (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. Informationen zum Anpassen der Farben für die verschiedenen Status finden Sie unter CheckboxConstants.defaultColors(). (I7dbdb)

Fehlerkorrekturen

  • In Material-Komponenten wird die Erhebung 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() bei Bedarf 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)
  • 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 Interfaces anstelle von abstrakten Klassen umgestaltet.
    • CanvasDrawScope-Implementierung von DrawScope erstellt
    • Implementierungen von DrawScope wurden so umgestaltet, dass CanvasScope verwendet wird.
    • DrawContext wurde erstellt, um Abhängigkeiten für DrawScope zu umschließen.
    • Veraltete Methoden in DrawScope entfernt (I56f5e)
  • Box wurde zu einer Inlinefunktion gemacht. (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 Gerüstzustä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 keinen Inhalt für einen bestimmten Parameter darzustellen. (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-Property verwenden, wie bei jedem anderen Ambient. Diese Änderung wurde vorgenommen, um die Einheitlichkeit zu verbessern und mehrere Möglichkeiten zu vermeiden, dasselbe zu erreichen. Außerdem werden 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, mit dem 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 berücksichtigt 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 und onPositioned() in onGloballyPositioned() umbenannt. (I587e8, b/169083903)

Version 1.0.0-alpha04

1. Oktober 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 und androidx.compose.material:material-icons-extended:1.0.0-alpha04 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 übertragen und 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
    • Die APIs „RoundRect.grow“ und „Rect.shrink“ wurden entfernt.
    • 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 Property anstelle einer Funktion.
    • Der RoundRect-Konstruktor wurde aktualisiert, sodass er Radius-Eigenschaften anstelle von einzelnen Parametern für x-/y-Radiuswerte verwendet.
    • Größen-APIs entfernt, 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)
  • „Stack“ wurde in „Box“ umbenannt. Die bisherige Box wird zugunsten der neuen Box in compose.foundation.layout eingestellt. Im neuen Box-Element werden untergeordnete Elemente übereinander gestapelt, wenn es mehrere untergeordnete Elemente enthält. Das ist anders als beim vorherigen Box-Element, das sich ähnlich wie eine Spalte verhalten hat. (I94893, b/167680279)
  • Die Parameter für die Box-Dekoration wurden eingestellt. Wenn Sie Dekorationen/Abstand in Ihrem Feld haben 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 „rounded rectangle“ verwiesen.
    • 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 zusätzliche Inset-Überladung hinzugefügt, die allen vier Grenzen denselben Inset-Wert zuweist.
    • Die Dokumentation zur Inset-Methode wurde entfernt, da sie darauf hinwies, dass Inset auf alle vier Seiten angewendet wird.
    • Aktualisierte Dokumentation für die Klasse „Rect“
    • Kommentare zu Rect-Parametern aktualisiert, um dem kdoc-Stil zu entsprechen
    • 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 Layoutbereichen (z.B. „alignWithSiblings“ in „RowScope“) verhindert. Stattdessen sollte die explizite Bereichsalternative with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } verwendet werden. (I216be, b/166760797)

Version 1.0.0-alpha03

16. September 2020

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

API-Änderungen

  • Der Parameter onSelect von BottomNavigationItem wird in onClick umbenannt (I91925, b/161809324).
  • Der Parameter „InteractionState“ wird „BottomNavigationItem“ und „Tab“ hinzugefügt, sodass dieser Status gehoistet 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 beiden Zustände (aktiviert/deaktiviert) überschrieben wird. (If9b52)
  • Die Hintergrundfarbe des Textfelds hat nicht mehr implizit einen transparenten Alphawert. 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 statusbezogene Erhebung für Button und FloatingActionButton 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 Entsprechungen, 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 einheitlich 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

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

Fehlerkorrekturen

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

Version 1.0.0-alpha01

26. August 2020

androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 und androidx.compose.material:material-icons-extended:1.0.0-alpha01 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-Komponenten 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 sie über die Funktion SnackbarHostState.showSnackbar aufrufen. Außerdem:
    • SnackbarHost-Komponenten wurden hinzugefügt. Hier werden Snackbars basierend auf dem Status gehostet und der Übergang zwischen Snackbars wird gesteuert.
    • 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 dem IconButton hinzugefügt und die Parameter im 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 im Tab werden 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 Leerraum 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 Parameter „dismissThresholds“ wurde zu „SwipeToDismiss“ hinzugefügt. Dabei handelt es sich um eine Lambda-Funktion (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Der Schieberegler bietet mehr Farben für eine detaillierte 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)
  • Den Drawers wurden Anpassungsparameter für „modifier“, „backgroundColor“, „contentColor“ und „scrimColor“ hinzugefügt (I23655, b/161804378).
  • Die zusammensetzbare Funktion state { ... } wird jetzt zugunsten expliziter Aufrufe von remember { mutableStateOf(...) } eingestellt, um die Übersichtlichkeit zu verbessern. Dadurch wird die gesamte API-Oberfläche und die Anzahl der Konzepte für die Statusverwaltung reduziert und entspricht dem by mutableStateOf()-Muster für die Delegierung von Klasseneigenschaften. (Ia5727)
  • Der Padding-Parameter des Buttons wurde in „contentPadding“ umbenannt (Id252e, b/161809394).
  • Fügen Sie eine experimentelle Materialkomponente „SwipeToDismiss“ hinzu. (I129e5)

Fehlerkorrekturen

  • onChildPositioned und OnChildPositionedModifier wurden entfernt. Entwickler sollten stattdessen onPositioned und OnPositionedModifier für das untergeordnete Layout verwenden. (I4522e, b/162109766)
  • Lambda „mergePolicy“ zu „SemanticsPropertyKey“ hinzugefügt. Damit kann eine benutzerdefinierte Richtlinie für das Zusammenführen von untergeordneten Elementen definiert werden. Standardmäßig wird der übergeordnete Wert verwendet, sofern er bereits vorhanden ist, andernfalls der untergeordnete Wert. (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 PlacementScope.place() die Position in Kontexten mit Leserichtung von rechts nach links nicht mehr automatisch gespiegelt. Wenn dies gewünscht ist, verwenden Sie stattdessen PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds wurde zugunsten von Rect eingestellt. Alle Verwendungen von PxBounds wurden mit „rect“ aktualisiert 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 besser zu den Namensmustern von Compose zu passen. Es wurden ähnliche Funktionskonstruktoren für RRect erstellt und die RRect-Funktionskonstruktoren 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 Themenobjekt erstellen und in Ihren Komponenten über das neue Ambient auf das Themenobjekt zugreifen. Das ist ähnlich wie bei MaterialTheme. (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“, damit die gewünschte API einfacher zu finden und zu verwenden ist (Ia6242, b/155482676).

Fehlerkorrekturen

  • „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen OnPositioned für das untergeordnete Element. (I87f95, b/162109766)
  • Umfassende API-Korrekturen (I077bc)
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Offset- und IntOffset-Klassen anpassen, um eine konsistente 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. Die Stub-Klasse „EmptyCanvas“ wurde erstellt, um „DrawScope“ so umzugestalten, dass sie ein Parameter ist, der nicht null sein kann, anstatt „lateinit“ zu verwenden. Außerdem wird so sichergestellt, dass das Feld nicht null sein kann.
    6. ClipOp-Enums wurden in PascalCase umbenannt.
    7. Die FilterQuality-Enums wurden in PascalCase umbenannt.
    8. „StrokeJoin“-Enums in PascalCase umbenannt
    9. Die PointMode-Enumerationen wurden in PascalCase umbenannt.
    10. „PaintingStyle“-Enums in PascalCase umbenannt
    11. „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 internen Parameter „fillPaint“ und „strokePaint“ nicht mehr lazy delegiert werden.
    15. Das Image-Composable wurde aktualisiert, um die Verwendung von „Box“ zu vermeiden und den Aufwand zu reduzieren.
    16. Die Outline-Klasse wurde aktualisiert und enthält jetzt @Immutable-Annotationen.
    17. PathNode wurde aktualisiert und enthält jetzt @Immutable-Annotationen für jede Pfadanweisung.
    18. Die Vektorteilkomposition wurde aktualisiert, um redundante bedingte Gleichheitsprüfungen zu entfernen, da diese bereits von Compose verarbeitet werden.
    19. Veraltete Methoden für die Konstruktorklasse „Rect“ zugunsten von Funktionskonstruktoren entfernt
    20. Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Immutable- und @Stable-APIs
    21. Die Enumeration „VertexMode“ wurde in PascalCase aktualisiert.
    22. Die Methode „selectPaint“ von DrawScope wurde aktualisiert, um Strichparameter im Paint-Objekt nur dann zu überschreiben, wenn sie sich geändert haben.
    23. Die Größe wurde aktualisiert, um die Destructuring API hinzuzufügen, „UnspecifiedSize“ in „Unspecified“ umzubenennen und nicht verwendete Methoden zu entfernen.
  • Dialogfeld 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)
  • Erfordert, dass der Typ „T“ für „transitionDefinition“ explizit angegeben wird. (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 das Lesen erschwert (Iedd58, b/161529964).
  • AndroidComposeTestRule wurde in createAndroidComposeRule umbenannt. (I70aaf)
  • SemanticsMatcher-Methoden „isFocused()“ und „isNotFocused()“ hinzugefügt. (I0b760)
  • BaseGestureScope.globalBounds wurde entfernt, da es nicht in Tests verwendet werden sollte. 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.

Aktualisierung von Abhängigkeiten

  • 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 Folgendes:

    • 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 bearbeiten müssen
    • @Model-Datenklassen, „equals“, „hashcode“ usw.
    • Wie kann ich festlegen, dass einige Eigenschaften „beobachtet“ werden und andere nicht?
    • Wie lege ich fest, ob in einer Beobachtung strukturelle oder referenzielle Gleichheit verwendet werden soll?
    • Weniger „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 Variablen zu Eigenschaften in Klassen
    • Möglicherweise ergeben sich dadurch Möglichkeiten für individuelle Optimierungen auf Bundesstaatsebene.
    • Sie 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, die in einer zusammensetzbaren Funktion verwendet wird.

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

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

    Dieser Ansatz wird durch die Datenklassen von Kotlin erleichtert. 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 mit der Datenklasse copy(...)-Hilfsmethode 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 auf die Beobachtung dieser Änderung verlassen, 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 Grunde 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 nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht vollständig identisch mit dem ursprünglichen Beispiel, da jede Property jetzt einzeln beobachtet/abonniert wird. Die Recompositions, die nach dieser Umgestaltung angezeigt werden, könnten also enger 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)

  • Der onFocusChange-Callback in Textfeldern wurde 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 Drawer festgelegt. BottomDrawerLayout verwendet jetzt auch ein separates BottomDrawerState-Enum. (I533fa)

  • Entfernt den zuvor verworfenen Modifier.ripple. „Clickable“ verwendet jetzt standardmäßig „ripple“ als Indikator (wenn Sie „MaterialTheme {}“ in Ihrer Anwendung festgelegt haben). In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten „ripple“ als Indikator. 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 Indikationsparameter an „clickable“ übergeben. (I663b2, b/155375067)

  • Veralteter Überschreibungsaufruf der zusammensetzbaren 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 richtigen RadioButton-Optionen für Ihr Design zu erstellen (I7f5cf, b/149528535).

  • Material-Textfeld mit Umriss hinzugefügt (I1a518)

  • „androidx.ui.foundation.TextFieldValue“ und „androidx.ui.input.EditorValue“ wurden eingestellt. 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“ durch „IntSize“ ersetzt. (Ib7b44)

  • Um die Anzahl der Klassen zu konsolidieren, 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 „float“-Werte darstellen. (Ic0191)

  • Der Modifikator „Modifier.ripple“ wird eingestellt. „Clickable“ verwendet jetzt standardmäßig „ripple“ als Indikator (wenn Sie „MaterialTheme {}“ in Ihrer Anwendung festgelegt haben). In den meisten Fällen können Sie also einfach „clickable“ verwenden und erhalten „ripple“ als Indikator. 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 Indikationsparameter 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 Implementierung des Material Design-Menüs. (I9bb3d)

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

  • Dem Fundierungspaket 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 zusammengeführt. 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 keine RTL-Property mehr 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).

  • Dem CircularProgressIndicator wird 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)

  • Dem CircularProgressIndicator wird 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)

  • Slot-API für nachgestellte und vorangestellte Symbole in FilledTextField hinzugefügt und Fehlerstatus behandelt (Ic12e0)

  • Die Standardfarbe von FABs und erweiterten 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 materialbezogener Breite (I244a7).

  • Material Design-Implementierung von „Gefülltes Textfeld“ hinzugefügt (Ic75cd)

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

  • Der Konstruktorparameter „defaultFontFamily“ wird zu „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 bestehenden Aufrufen. Es wird keine Verhaltensänderung erwartet. (I3565a)

  • Die FloatingActionButton-APIs wurden so umgestaltet, dass 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)

  • Button, FloatingActionButton und Clickable haben jetzt einen separaten enabled-Parameter. Einige Parameter für „Button“ 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:Die Erweiterungsmethode „Bitmap.asImageAsset()“ wurde für „android.graphics.Bitmap“ erstellt, um eine Instanz von „ImageAsset“ zu erstellen, die sich für die Kombination aus traditioneller Android-Anwendungsentwicklung und dem Compose-Framework (Id5bbd) eignet.

  • Die Snackbar API mit String-Parametern wurde entfernt. Stattdessen sollte die Überladung verwendet werden, 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. In den Beispielen finden Sie Informationen zur Verwendung. Unter „Icons“ finden Sie die bereitgestellten Material Icons, die Sie direkt mit diesen Komponenten verwenden können. (I96849)

  • ButtonStyle wurde durch separate Funktionen ersetzt und die Textüberladung (String) wurde entfernt. Aktualisierte Beispiele mit Nutzungsdaten ansehen (If63ab, b/146478620, b/146482131)

  • Modifikator Border in DrawBorder umbenennen (I8ffcc)

  • „LayoutCoordinates“ hat keine „position“-Property mehr. Die Eigenschaft „position“ ist bei LayoutModifiers, Rotation 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 für die size-Property IntPxSize 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)

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

  • Es wurde eine Komponente für Gerüstmaterial hinzugefügt. Scaffold-Implementierungen (I7731b)

  • DrawBorder wurde durch den Border Modifier (Id335a) ersetzt.

Fehlerkorrekturen

  • FocusModifier ist zugunsten von Modifier.focus, Modifier.focusRequester und Modifier.focusObserver veraltet. FocusState und FocusDetailedState sind zugunsten von FocusState2 eingestellt. (I46919, b/160822875, b/160922136)
  • „VerticalScroller“ und „HorizontalScroller“ wurden eingestellt. Verwenden Sie ScrollableColumn und ScrollableRow für integrierte Funktionen 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 Attribut „scrollable“ erforderlich ist, wurde vereinfacht. „ScrollableState“ wurde in „ScrollableController“ umbenannt (Iab63c, b/149460415)
  • runOnIdleCompose wurde in runOnIdle umbenannt (I83607)
  • Für Eigenschaften mit Single-Value-Semantik 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 die ganzzahligen 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 wird verbessert, indem Konstruktoren anstelle von Buildern verwendet werden. – Die Dauer und Verzögerung für KeyFrames und Tween werden 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 Positionen für die Ausrichtungslinie sind jetzt nicht mehr null. Wenn die abgefragte Ausrichtungslinie fehlt, wird AlignmentLine.Unspecified zurückgegeben. (I896c5, b/158134875)
  • Die Radius-Klasse 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.

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

  • Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Positionsinformationen verwendet werden, sollte anstelle von PxPosition die Klasse „Offset“ verwendet werden. Dies bietet die Vorteile einer Inline-Klasse, um einen Long-Wert zu verwenden, um zwei Float-Werte zu packen, die die als Floats dargestellten X- und Y-Offsets darstellen. (I3ad98)

  • 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. 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).

  • Das Problem, dass „onClick“ für „DropdownMenuItems“ nicht aufgerufen wurde, wurde behoben. (I3998b, b/157673259)

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

  • TestTag wurde 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).

  • 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 sich bei Pixelparametern nur auf Dp und primitive Typen zu verlassen (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-Modifikatoren 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).

  • Die Compose-APIs auf höherer Ebene wurden aktualisiert, sodass sie CanvasScope anstelle von Canvas verfügbar machen. Dadurch müssen Nutzer keine eigenen Paint-Objekte mehr verwalten. Nutzer, die weiterhin Zugriff auf ein Canvas benötigen, können die drawCanvas-Erweiterungsmethode verwenden, die einen Callback für die Ausgabe von Zeichenbefehlen mit dem zugrunde liegenden Canvas bereitstellt. (I80afd)

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

  • Die API für die nachgestellte Lambda-Funktion „WithConstraints“ 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 Höchstbeschrä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 Nutzer muss kein eigenes Paint-Zustandsobjekt zum Konfigurieren von Zeichenvorgängen verwalten.

    CanvasScopeSample hinzugefügt und Demo-App aktualisiert, um eine deklarative Grafikdemo (Ifd86d) einzuschließen

  • Dem TextField die Anpassung der Cursorfarbe hinzufügen (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 nicht mehr die Zeichenreihenfolge. Die Reihenfolge der Parameter für DrawShadow wurde geändert: „elevation“ ist jetzt der erste und „shape“ der zweite Parameter mit einem RectangleShape-Standardwert. (I20150, b/152417501)

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

  • TextField API-Update: 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“ bzw. „horizontalGravity“ hinzugefügt. (I7dc5a)

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

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

  • Entfernt ProvideContentColor. Verwenden Sie stattdessen einfach 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 in „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() ist jetzt ContentDrawScope.
    • Alle Parameter in draw() entfernt
    • DrawScope hat dieselbe Schnittstelle wie der 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-Eigenschaftsdelegator-Operatoren wurden in Erweiterungen verschoben, um die Optimierungen von Kotlin 1.4 für Eigenschaftsdelegatoren 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.

  • „Modifier 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 Elemente nur taggen müssen, um sie im Measure-Block zu erkennen. (I51368, b/150953183)

  • Eingestellte Center-Composable. Er sollte entweder durch den Modifier „LayoutSize.Fill + LayoutAlign.Center“ oder durch eines der Composables „Box“ oder „Stack“ mit entsprechenden Modifiers 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-Objekts. 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, jedoch mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271).

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

  • RepaintBoundary wurde zugunsten von DrawLayerModifier entfernt (I00aa4)

  • DrawVector wurde von einer regulären zusammensetzbaren Funktion in eine Modifier-Funktion drawVector() geändert, die den Vektor als Hintergrund für ein Layout zeichnet. (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 an die Ebenengrenzen anpassen müssen. (If28eb)

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

  • „LayerModifier“ wurde hinzugefügt. Mit diesem Modifier kann einem Layout ein „RenderNode“ hinzugefügt werden. Damit lassen sich Clipping, Deckkraft, Drehung, Skalierung und Schatten festlegen. Dadurch wird RepaintBoundary ersetzt. (I7100d, b/150774014)

  • androidx.compose.ViewComposer wurde nach androidx.ui.node.UiComposer verschoben. androidx.compose.Emittable wurde entfernt. Sie war redundant mit ComponentNode. androidx.compose.ViewAdapters wurde entfernt. Sie sind kein unterstützter Anwendungsfall mehr. Die Funktion „Compose.composeInto“ wurde eingestellt. Verwende 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“ wurde erstellt, um die Größenanpassung und das Layout zu verarbeiten und ein bestimmtes ImageAsset auf dem Bildschirm zu zeichnen. 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. Es wurde ein 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 von rechts nach links im Modifier „LayoutPadding“ (I9e8da)

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

  • Das Flag ComposeFlags.COMPOSER_PARAM wurde in true geändert. Dadurch ändert sich die Strategie zur 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 zusammensetzbare 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 Schnittstelle 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)