Material zusammenstellen
Erstellen Sie Jetpack Compose-UIs mit vorgefertigten Material Design-Komponenten. Dies ist der übergeordnete Einstiegspunkt von Compose. Er wurde entwickelt, um Komponenten bereitzustellen, die denen auf www.material.io entsprechen.
Letzte Aktualisierung Stabile Version Release Candidate Beta-Ausgabe Alphaversion
30. Oktober 2024 1.7.5 - - 1.8.0-alpha05

Struktur

Compose ist eine Kombination aus sieben Maven-Gruppen-IDs in androidx. Jede Gruppe enthält eine gezielte Teilmenge von Funktionen, für die jeweils eigene Release-Notes gelten.

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

GruppeBeschreibung
compose.animationAnimationen in den Jetpack Compose-Anwendungen erstellen, um die User Experience zu bereichern
compose.compiler@Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren.
compose.foundationErstellen Sie Jetpack Compose-Anwendungen mit vorgefertigten Bausteinen und erweitern Sie die Grundlage, um eigene Designsystem-Elemente zu erstellen.
compose.materialErstellen Sie Jetpack Compose-UIs mit vorgefertigten Material Design-Komponenten. Dies ist der übergeordnete Einstiegspunkt von Compose. Er wurde entwickelt, um Komponenten bereitzustellen, die denen auf www.material.io entsprechen.
compose.material3Erstellen Sie Jetpack Compose-UIs mit Material Design 3-Komponenten, der nächsten Weiterentwicklung von Material Design. Material 3 umfasst aktualisierte Themen und Komponenten sowie Personalisierungsfunktionen von Material You wie dynamische Farben. Es wurde so konzipiert, dass es zum neuen visuellen Stil und zur System-UI von Android 12 passt.
compose.runtimeGrundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die Kernlaufzeit, auf die das Compose-Compiler-Plug-in ausgerichtet ist.
compose.uiGrundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe

Abhängigkeiten deklarieren

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

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

Cool

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.7.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. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können einem vorhandenen Problem Ihre Stimme hinzufügen, indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.8

Version 1.8.0-alpha05

30. Oktober 2024

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

Fehlerkorrekturen

  • Optimieren Sie das Verhalten von contentPadding im Scaffold, damit der Textkörper nicht jedes Mal neu formatiert werden muss, wenn sich contentPadding ändert. (I8c8e2, b/373904168)
  • Der Material-Schieberegler soll seinen Wert ändern, wenn Steuertasten gedrückt werden. (I1c442)

Version 1.8.0-alpha04

16. Oktober 2024

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

API-Änderungen

  • Entfernen Sie readOnly aus TextFields, um die Version an die stabile Foundation-Version anzupinnen. (I3aaba)

Fehlerkorrekturen

  • In Expandable-Komponenten unter Android S+ werden Ripples unterstützt, z. B. eine Karte, die sich durch Klicken maximiert. Bisher füllte die Welle nicht die neue Größe aus, sondern wurde auf die neuen Grenzen erweitert. (If509a, b/183019123)

Version 1.8.0-alpha02

18. September 2024

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

Version 1.8.0-alpha01

4. September 2024

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

API-Änderungen

  • Neuer NavGraphBuilder.bottomSheet-Builder zum Erstellen eines BottomSheets mit sicheren Argumenten hinzugefügt ((I28589, I777db, b/351858980))

Version 1.7

Version 1.7.5

30. Oktober 2024

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

Version 1.7.4

16. Oktober 2024

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

Version 1.7.2

18. September 2024

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

Version 1.7.1

10. September 2024

  • Keine Änderungen an Android-Artefakten. -desktop Artefakte wurden entfernt und -jvmStubs und -linuxx64Stubs Artefakte hinzugefügt. Keines dieser Ziele ist zur Verwendung gedacht. Sie sind Platzhalter, die Jetbrains Compose unterstützen.

Version 1.7.0

4. September 2024

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

Wichtige Änderungen seit Version 1.6.0

  • Materialkomponenten wurden auf die neuen Ripple APIs umgestellt und RippleTheme wird nicht mehr abgefragt.
  • Bei Materialkomponenten, für die zuvor ein MutableInteractionSource akzeptiert und standardmäßig remember { MutableInteractionSource() } verwendet wurde, ist jetzt ein nullables MutableInteractionSource zulässig und der Standardwert ist null. Wenn Sie MutableInteractionSource nicht hochskalieren und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz nur bei Bedarf erstellen, was die Leistung verbessert. Wir empfehlen Ihnen außerdem, ähnliche Änderungen an Ihren eigenen Komponenten vorzunehmen.
  • BottomDrawer, ModalBottomSheet, BackdropScaffold und das standardmäßige Bottomsheet wurden zur stabilen API hochgestuft.

Version 1.7.0-rc01

21. August 2024

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

Version 1.7.0-beta07

7. August 2024

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

Version 1.7.0-beta06

24. Juli 2024

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

Version 1.7.0-beta05

10. Juli 2024

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

Version 1.7.0-beta04

26. Juni 2024

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

Version 1.7.0-beta03

12. Juni 2024

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

Version 1.7.0-beta02

29. Mai 2024

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

API-Änderungen

  • API für das Formatieren der Links aktualisiert: TextLinkStyles wurde an die TextStyle verschoben und TextDefaults aus dem Material entfernt (I5477b)

Version 1.7.0-beta01

14. Mai 2024

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

API-Änderungen

  • Die API zum Abrufen von Links zu Material-Themen in Text wurde aktualisiert. Insbesondere wurden die Methoden aus der TextDefaults zum Erstellen von themenbezogenen LinkAnnotations und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde die Klasse TextLinkStyles hinzugefügt, mit der die Links als Parameter für das Text-Element formatiert werden können. (I31b93)

Version 1.7.0-alpha08

1. Mai 2024

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

API-Änderungen

  • Behebung des Problems, dass backgroundColor nicht auf TextFieldDecorationBox und OutlinedTextFieldDecorationBox angewendet wurde. Für Dekorationsboxen kann jetzt ein shape-Parameter verwendet werden. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled wurde entfernt und LocalRippleConfiguration ist jetzt nullable. Wenn Sie eine Verbreitung deaktivieren möchten, geben Sie null an LocalRippleConfiguration an, anstatt RippleConfiguration mit isEnabled = false anzugeben. (I22725)
  • Textlinks haben neben dem normalen Stil auch einen Stil für den gedrückten Zustand, den Mauszeiger- und den Fokusstil. TextDefaults-Methoden haben jeweils ein pressedStyle-Argument, das dies unterstützt. (Ic473f, b/139312671)

Fehlerkorrekturen

  • OutlinedTextField Der obere Abstand für das Label berücksichtigt jetzt die Systemschriftgröße. (Idc781)

Version 1.7.0-alpha07

17. April 2024

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

API-Änderungen

  • Die Stiloption für Textlinks wurde zusätzlich zur normalen Gestaltung gedrückt, wenn der Mauszeiger darauf bewegt wurde und der Text hervorgehoben wurde. (I5f864, b/139312671)
  • Es wurde ein TextDefaults-Objekt hinzugefügt, das Methoden zum Erstellen einer LinkAnnotation und zum Parsen von HTML-getaggten Strings enthält, die MaterialTheme auf die Links anwenden. (I98532, b/139312671)

Version 1.7.0-alpha06

3. April 2024

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

Mitteilung

  • androidx.compose.material verlangt nicht mehr, dieselbe Version jedes Artefakts zu verwenden, ist diese Maven-Gruppe. Nutzer können Versionen der Compose Foundation Library (Ie5fba) mischen und abgleichen

API-Änderungen

  • Weitere Standardeinstellungen für ModalDrawer und BottomDrawer wurden in das Objekt DrawerDefaults verschoben. (Ib5b2e)

Version 1.7.0-alpha05

20. März 2024

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

API-Änderungen

  • Das Flag ScaffoldSubcomposeInMeasureFix wurde entfernt. (I67363)

Version 1.7.0-alpha04

6. März 2024

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

Neue Funktionen

Version 1.7.0-alpha03

21. Februar 2024

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

API-Änderungen

  • BottomDrawer wurde von der experimentellen Version in die stabile Version übernommen. BottomDrawerState zeigt den Fortschritt jetzt als Funktion an, mit der Sie den Fortschritt zwischen bestimmten Zielen abfragen können. Mit BottomDrawerState lässt sich die Animationsspezifikation jetzt anpassen und confirmStateChange ist kein abschließendes Lambda mehr. (I9c029, b/261423850)
  • BackdropScaffold wurde von der experimentellen Version in die stabile Version übernommen. Die Animationsspezifikation ist jetzt gemäß den Richtlinien eine tween-Spezifikation. Der snackbarHost-Parameter von BackdropScaffold ist nicht mehr der letzte Parameter, um Verwechslungen mit nachgestellten Lambdas zu vermeiden. BackdropScaffoldState stellt eine progress(from, to) API bereit, um den Fortschritt zwischen Ankern abzufragen. (I73f48, b/261423218)
  • Standard-Unterseitenlisten wurden von der experimentellen Version in die stabile Version überführt. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt eine Spezifikation für Tweens, die den Richtlinien entspricht. (I3c1a8, b/278692145, b/261409034)
  • Modale Blätter am unteren Rand wurden von experimentell zu stabil hochgestuft. Verworfene Konstruktoren wurden entfernt. Die Animationsspezifikation ist jetzt gemäß den Richtlinien eine tween-Spezifikation. (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)
  • Unterkomposition in BottomSheetScaffold entfernt, um die Leistung zu verbessern. Ein Problem wurde behoben, bei dem BottomSheetScaffold in bestimmten Szenarien in Kombination mit LookaheadScope abstürzte. (I2f90c)
  • Die Unterkomposition in ModalBottomSheetLayout wurde entfernt, um die Leistung zu verbessern. (I7a025)

Version 1.7.0-alpha02

7. Februar 2024

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

Version 1.7.0-alpha01

24. Januar 2024

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

Änderungen im Verhalten

  • Materialkomponenten wurden auf die neuen Ripple APIs umgestellt und RippleTheme wird nicht mehr abgefragt.

API-Änderungen

  • rememberRipple und RippleTheme wurden aus Material-Ripple entfernt, wobei neue Ripple- und RippleConfiguration-APIs zu Material und anderen Designsystembibliotheken hinzugefügt wurden.

  • Materialkomponenten, für die bisher ein MutableInteractionSource akzeptiert wurde und standardmäßig { MutableInteractionSource() } gespeichert wurde, akzeptieren jetzt MutableInteractionSource, für die Nullwerte zulässig sind, und werden stattdessen auf null gesetzt. Wenn Sie MutableInteractionSource nicht hochskalieren und verwenden, sollten Sie „null“ übergeben. So können einige Komponenten eine Instanz nur bei Bedarf erstellen, was die Leistung verbessert. Wir empfehlen Ihnen außerdem, ähnliche Änderungen an Ihren eigenen Komponenten vorzunehmen.

Version 1.6

Version 1.6.8

12. Juni 2024

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

Version 1.6.7

1. Mai 2024

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

Version 1.6.6

17. April 2024

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

Version 1.6.5

3. April 2024

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

Version 1.6.4

20. März 2024

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

Version 1.6.3

6. März 2024

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

Fehlerkorrekturen

  • Regression in ExposedDropdownMenu behoben, damit der Fokus wieder darauf gesetzt werden kann. (c0e0ed, b/323694447)

Version 1.6.2

21. Februar 2024

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

Version 1.6.1

7. Februar 2024

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

Version 1.6.0

24. Januar 2024

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

Version 1.6.0-rc01

10. Januar 2024

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

Version 1.6.0-beta03

13. Dezember 2023

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

Version 1.6.0-beta02

29. November 2023

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

Version 1.6.0-beta01

15. November 2023

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

Version 1.6.0-alpha08

18. Oktober 2023

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

API-Änderungen

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

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

Version 1.6.0-alpha07

4. Oktober 2023

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

  • Abhängigkeitsupdates

Version 1.6.0-alpha06

20. September 2023

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

Funktionsgefährdende Änderung

  • Die Funktionen für die Seitenleiste wurden aus BottomSheetScaffold entfernt. Fassen Sie BottomSheetScaffold in einer zusammensetzbaren Funktion in der Leiste zusammen, um die vorherige Funktionalität zu nutzen. Ein Beispiel findest du in BottomSheetScaffoldWithDrawerSample. (I1dcc8)

API-Änderungen

  • Es wurde ein temporäres Flag eingeführt, um zu steuern, ob die untergeordneten Elemente von Scaffold während der Messung oder während des Placements analysiert werden sollen. Standardmäßig wird dies in „Messung“ gemessen. Wenn Sie Probleme mit dem neuen Verhalten haben, reichen Sie bitte ein Problem ein. (If6e3b)

Version 1.6.0-alpha05

6. September 2023

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

Neue Funktionen

  • Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts von rechts nach links hinzugefügt Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze, die das automatische Spiegeln unterstützen, 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 in der Liste der Material Design-Symbole.

API-Änderungen

  • Unterstützung für automatisch gespiegelte Symbole beim Rendern in Layouts von rechts nach links hinzugefügt Die Symbole in den Modulen „material-icons-core“ und „material-icons-extended“ bieten jetzt zusätzliche Symbolsätze, die das automatische Spiegeln unterstützen, 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 in der Liste der Material Design-Symbole. Die zuvor angegebenen Symboleigenschaften für diese Symbole sind jetzt als veraltet markiert. Außerdem wird ein Ersatzblock vorgeschlagen, der bei der Migration helfen kann. Falls Sie keine besondere Handhabung der Spiegelung von Symbolen bei RTL haben, empfehlen wir die Migration zu den neuen Symbolen. Beispiel: Icons.Filled.ArrowBack sollte in Icons.AutoMirrored.Filled.ArrowBack umstrukturiert werden. (I4b511)

Version 1.6.0-alpha04

23. August 2023

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem einige Komponenten mit Subcomposition (z.B. BottomSheetScaffold) in einem Scaffold in einer LookaheadScope versuchten, ihre Größe zu früh zu lesen. (If2c5d)
  • Die offset-Berechnung von DropdownMenu wurde so korrigiert, dass der x-Versatz ausschließlich von der lokalen Layoutrichtung abhängt und der y-Versatz nicht mehr umgekehrt wird, wenn sich das Menü unten auf dem Bildschirm befindet. (Iccc74, b/294103942)
  • Das Layout von BottomSheetScaffold wurde optimiert und ein potenzielles Problem mit BottomSheetScaffold in LookaheadLayout behoben. (Ic0afa)

Version 1.6.0-alpha03

9. August 2023

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

API-Änderungen

  • Material2-Komponenten haben jetzt eine separate API, um windowInsets zu übergeben und so die Funktion „Edge-to-Edge“ unter Android zu unterstützen. Im Gegensatz zu Material 3-Komponenten unterstützen Material 2-Komponenten standardmäßig keine Einzüge. Der Wert muss manuell übergeben werden. Eine Orientierungshilfe finden Sie in den entsprechenden Beispielen. (I655e8)

Version 1.6.0-alpha02

26. Juli 2023

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

API-Änderungen

  • Wir verlagern die Abhängigkeit von der Dichte auf Komponentenebene. Dies gilt für die folgenden Komponenten: SwipeToDismiss und tabellenbasierte Komponenten. Verwenden Sie die neue Überlastung, bei der die Dichte ein Parameter ist. (I1846e)
  • Zusätzliche Anmerkungen zum Angeben zulässiger Eingaben für Composeables (I51109)
  • API-Dateien wurden aktualisiert, um die Unterdrückung der Kompatibilität zu vermerken (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 Überlastung mit interactionSource. (Id57ed, b/199377790)

Version 1.6.0-alpha01

21. Juni 2023

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

Verhaltensänderungen

  • includeFontPadding ist in der Material 2-Typografie jetzt standardmäßig false. Der Standardstil für die Zeilenhöhe wurde ebenfalls in Trim.None und Alignment.Center geändert. Den TextStyles von Typography wurden explizite lineHeight (in sp) hinzugefügt. Wenn du diese Werte anpassen möchtest, findest du in der API-Dokumentation entsprechende Informationen. Im Blogpost werden diese Änderungen ausführlich erläutert. (Icabc3, I3f801, I04c03)

API-Änderungen

  • Die Swipeable APIs von Material werden eingestellt. Weitere Informationen finden Sie in der AnchoredDraggable API von Foundation, die sowohl für einfache als auch komplexe Anwendungsfälle optimiert ist. (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 wird veröffentlicht. Version 1.5.4 enthält diese Commits.

Version 1.5.3

4. Oktober 2023

androidx.compose.material:material-*:1.5.3 wird veröffentlicht. An dieser Version wurden keine Änderungen vorgenommen

Version 1.5.2

27. September 2023

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

Version 1.5.1

6. September 2023

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

Version 1.5.0

9. August 2023

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

Wichtige Änderungen seit Version 1.4.0

API-Änderungen

  • Änderungen an den Swipeable1 APIs in BottomSheetScaffold übernommen. Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert angezeigt. 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 Navigationsmenü als nicht experimentelle API. (Ib9c18, b/261425368)
  • Es wurde ein Parameter für die Farbe des Tracks für kreisförmige Fortschrittsanzeigen und ein Parameter für den Endpunkt des Strichs für kreisförmige und lineare Fortschrittsanzeigen hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • ModalBottomSheetState, ModalBottomSheetState.Saver und confirmStateChange von rememberModalBottomSheetState wurden in confirmValueChange umbenannt. (Ib48d1)
  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den APIs für wischbare Inhalte in ModalBottomSheetLayout übernommen. Für „animateTo“ von ModalBottomSheetState wird kein animationSpec-Parameter mehr verwendet und der übergebene Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Versatz zu erzwingen. (Ia2e79)
  • @JvmDefaultWithCompatibility-Anmerkung hinzufügen (I8f206)
  • Die Änderungen an den wischbaren APIs in ModalDrawer. DrawerState wurden durch die Methoden „open“ und „close“ ersetzt und der Offset ist jetzt nullable.animateTo Verwenden Sie requireOffset, um den Versatz zu erzwingen. (I3de9e)
  • In Ausklappern und Ansichten werden Tastendrücke jetzt korrekt verzögert, falls Touch-Gesten zu Scrollereignissen führen können.
  • Dem Material- und Material3-Text wurden die Parameter minLines, TextField und OutlinedTextField hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d)

Fehlerkorrekturen

  • Es wurde ein Problem behoben, durch das pullRefresh die Geschwindigkeit nicht nutzte, was zu Überscrollen führte. Außerdem wurde die API-Signatur der onRelease-Lambda in Modifier.pullRefresh geändert, um für die verbrauchte Geschwindigkeit ein Float zurückzugeben (I7db65, b/266874741)
  • 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)
  • Die AlertDialog-Schaltfläche zum Schließen wird jetzt unter der Bestätigungsschaltfläche angezeigt, wenn die Aktionen übereinander gestapelt werden, um in die Breite des Dialogfelds zu passen. Durch diese Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277)
  • BottomSheetScaffold nimmt nicht mehr am verschachtelten Scrollen teil, wenn gesturesEnabled auf „falsch“ gesetzt ist. (I634f3, b/215403277)
  • Ein Fehler wurde behoben, aufgrund dessen BottomSheetScaffold abstürzte, wenn für Slots leere Inhalte angegeben wurden. (Ib24a5, b/235588730)
  • Behebung eines Problems, bei dem Klicks/Mausbewegungen PullRefreshIndicator abgefangen wurden. (2494256, b/271777421)
  • Ein Problem wurde behoben, bei dem ModalBottomSheetLayout bei einer Änderung der Ausrichtung in einem Grenzfall abstürzte. Layoutanimationen (z.B. Modifier.animateContentSize) in/auf dem Tabelleninhalt funktionieren jetzt reibungslos. (I2f981, b/266780234)

Version 1.5.0-rc01

26. Juli 2023

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

Version 1.5.0-beta03

28. Juni 2023

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

Version 1.5.0-beta01

24. Mai 2023

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

API-Änderungen

  • Der Offset von DrawerState und BottomDrawerState ist nicht mehr zulässig. Stattdessen wird Float.NaN zurückgegeben, um anzuzeigen, dass der Offset nicht vorhanden ist. (Ie9855)
  • Es wurde eine Option hinzugefügt, um beim Erstellen einer DropdownMenu oder ExposedDropdownMenu eine ScrollState zu übergeben, um den vertikalen Scrollstatus der angezeigten Menüpunkte zu steuern. (Idb009, b/185304441)
  • Unterstützung für die Aktivierung/Deaktivierung der Geste für ModalBottomSheetLayout hinzufügen, damit Nutzer die Funktion für mehr Funktionen im unteren Bereich konfigurieren können (I40af0)
  • BasicText hat jetzt einen Farbparameter, mit dem sich Textfarben effizient animieren oder festlegen lassen. (Iffd88, b/246961787)
  • Die Eigenschaft „Semantik“ isContainer in isTraversalGroup umbenannt (I121f6)

Fehlerkorrekturen

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

Version 1.5.0-alpha04

10. Mai 2023

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

API-Änderungen

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

Version 1.5.0-alpha03

19. April 2023

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

API-Änderungen

  • Aktualisieren Sie die internen BottomDrawer-Komponenten, damit die neuen SwipeableV2 APIs verwendet werden. Aus diesem Grund werden für BottomDrawerState jetzt nur APIs auf Klassenebene definiert und keine Methoden/Eigenschaften von SwipeableState übernommen. Wir verwenden eine Komposition mit einer internen SwipeableV2State. „Offset“ ist jetzt eine gültige Gleitkommaeigenschaft. Auf den aktuellen Wert und den Zielwert für Wischaktionen kann weiterhin über die Eigenschaften „currentValue“ und „targetValue“ zugegriffen werden. Die bisherigen Methoden auf Klassenebene wie „open/expand/close“ und Eigenschaften wie isOpen/isClosed werden weiterhin unterstützt. (Iad40c, b/178529942, b/220676296)

Fehlerkorrekturen

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

Version 1.5.0-alpha02

5. April 2023

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

Fehlerkorrekturen

  • Ein Fehler wurde behoben, aufgrund dessen BottomSheetScaffold abstürzte, wenn für Slots leere Inhalte angegeben wurden. (Ib24a5, b/235588730)
  • Behebung eines Problems, bei dem PullRefreshIndicator Klicks / Mausbewegungen abfängt (2494256, b/271777421)

Version 1.5.0-alpha01

22. März 2023

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

Fehlerkorrekturen

  • Beispiel für ein Chipgruppen-Reflow hinzufügen Aktualisieren Sie den horizontalen Abstand zwischen untergeordneten Chips im Beispiel einer einzeiligen Chipgruppe, um den Spezifikationen zu entsprechen (I3b155).
  • Ein Problem wurde behoben, durch das ModalBottomSheetLayout in einem Grenzfall bei der Ausrichtungsänderung abstürzte. Layoutanimationen (z.B. Modifier.animateContentSize) in/auf dem Tabelleninhalt 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 Versionsaktualisierung).

Version 1.4.2

19. April 2023

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

Version 1.4.1

5. April 2023

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

Version 1.4.0

22. März 2023

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

Wichtige Änderungen seit Version 1.3.0

API-Änderungen

  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den Swipe-APIs in ModalDrawer wurden übernommen. Das animateTo von DrawerState wurde durch die Methoden „open“ und „close“ ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Versatz zu erzwingen. (I3de9e)
  • Dem Material- und Material3-Text wurden die Parameter minLines, TextField und OutlinedTextField hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d)
  • Der Parameter minLines wurde zu BasicText und BasicTextField hinzugefügt. Damit lässt sich die Mindesthöhe dieser Composeables in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634)

Version 1.4.0-rc01

8. März 2023

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

Version 1.4.0-beta02

22. Februar 2023

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

API-Änderungen

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

Fehlerkorrekturen

  • Semantische Rollen wurden aus anklickbaren und auswählbaren Oberflächen entfernt und Komponenten aktualisiert, mit denen Rollen mithilfe von „modifizierer.semantik“ festgelegt wurden (Ibb4ba).
  • Kleinere Aktualisierung der erweiterten Material Design-Symbole, bei der die ausgefü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 wurde veröffentlicht. Version 1.4.0-beta01 enthält diese Commits.

API-Änderungen

  • Es wurde ein Problem behoben, durch das pullRefresh die Geschwindigkeit nicht nutzte, was zu Überscrollen führte. Außerdem wurde die API-Signatur der Lambda-Funktion onRelease in Modifier.pullRefresh geändert, um eine Gleitkommazahl für die genutzte Geschwindigkeit zurückzugeben (I7db65, b/266874741).
  • Property-Getter LocalMinimuTouchTargetEnforcement wiederhergestellt, als eingestellt markiert und auf LocalMinimumInteractiveComponentEnforcement umgeleitet (I60dd5)

Version 1.4.0-alpha05

25. Januar 2023

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem der ModalBottomSheetLayout's HalfExpanded-Status falsch berechnet wurde und das Tabellenblatt scheinbar unverankert zu sein schien. (I8c615, b/265610459)
  • Es wurde ein Fehler in ModalBottomSheetLayout behoben, bei dem das Tabellenblatt unter bestimmten Umständen abgestürzt ist, wenn vom ausgeblendeten in einen sichtbaren Zustand gewechselt wurde. (Ia9265, b/265444789)

Version 1.4.0-alpha04

11. Januar 2023

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

API-Änderungen

  • Die IsContainer-Semantik-Property wurde auf Oberflächen hinzugefügt. Diese Property wird bei einer späteren Änderung verwendet, bei der die Durchlaufreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen bestimmt wird. (I63379)
  • Markieren Sie die snapTo-Funktion im Navigationsmenü als nicht experimentelle API. (Ib9c18, b/261425368)
  • Ein Farbparameter der Spurverfolgung für kreisförmige Fortschrittsanzeigen und ein Strichkappe-Parameter für kreisförmige und lineare Fortschrittsanzeigen wurden hinzugefügt. (Ie668c, b/216325962, b/222964817)
  • confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState in confirmValueChange umbenannt. (Ib48d1)
  • Mehr Informationen zur Nullbarkeit des Rückgabetyps von eingestellten und ausgeblendeten Funktionen (Ibf7b0)
  • Fügen Sie Modifier.minimumInteractiveComponentSize hinzu. Damit kann eine Größe von mindestens 48 dp reserviert werden, um Touch-Interaktionen zu unterscheiden, wenn das Element kleiner wäre. (I33f58, b/258495559)
  • Änderungen an den APIs für wischbare Inhalte in ModalBottomSheetLayout übernommen. Für animateTo von ModalBottomSheetState wird kein animationSpec-Parameter mehr verwendet und der freigegebene offset ist jetzt nullable. Verwende requireOffset, um die offset anzufordern. (Ia2e79)

Fehlerkorrekturen

  • Das Tabellenblatt einer ModalBottomSheetLayout hat jetzt eine maximale Breite von 640 dp. (I71a4f, b/234927577)
  • Es wurde ein Problem behoben, bei dem rememberPullRefreshState refreshThreshold und refreshingOffset im Laufe der Zeit nicht aktualisierte. (Ifed10, b/263159832)
  • Der Fortschritt der Fortschrittsanzeigen ist jetzt korrekt auf den erwarteten Bereich begrenzt. (I8a7eb, b/262262727)
  • Wenn ModalBottomSheetState noch keine Anker empfangen hat, wird currentValue ohne Animation aktualisiert, wenn snapTo oder animateTo aufgerufen wird, anstatt eine Ausnahme auszulösen. (I2c91b)
  • Der aktivierte Status bei der Material 2-FilterChip-Implementierung wurde korrigiert. (Id326a, b/261329817)
  • Ein Fehler wurde behoben, durch den ModalBottomSheetLayout beim Wechsel vom Hoch- ins Querformat abstürzte, wenn es sich um HalfExpanded handelte. Prüfen Sie, ob Sie die richtige initialValue übergeben, z. B. anhand der Konfiguration. (Ie8df7, b/182882364)
  • Ein Problem wurde behoben, bei dem ModalBottomSheetLayout abstürzte, wenn der Tabelleninhalt leer war. ModalBottomSheetLayout ermöglicht jetzt leere Tabelleninhalte. Ist das Tabellenblatt leer, hat es nur den Status „Ausgeblendet“. (Ic2288, b/200980998, b/216693030)

Bekanntes Problem

  • Beim Aktualisieren von androidx.compose.foundation:1.4.0-alpha03 auf androidx.compose.foundation:1.4.0-alpha04 kann der Fehler java.lang.NoSuchFieldError auftreten. Hier wurde das Problem ursprünglich gemeldet. Eine Lösung wurde eingereicht und ist im nächsten Update für Compose verfügbar. Als Behelfslösung können Sie Ihre androidx.compose.material- und androidx.compose.material3-Bibliotheken auf die neueste Version(1.1.0-alpha04) aktualisieren oder Ihre androidx.compose.foundation auf 1.4.0-alpha03 downgraden.

Version 1.4.0-alpha03

7. Dezember 2022

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

API-Änderungen

  • @JvmDefaultWithCompatibility-Anmerkung hinzufügen (I8f206)
  • Änderungen an den Swipeable APIs in ModalDrawer übernommen. Der animateTo von DrawerState wurde durch die Methoden open und close ersetzt und der Offset ist jetzt nullable. Verwenden Sie requireOffset, um den Versatz zu erzwingen. (I3de9e)
  • Eine Modifier API zum Abfragen von Informationen zum Scrollen von Vorfahren hinzugefügt. (I2ba9d, b/203141462)
  • Wird in Clickable verwendet, um die Interaktionen mit dem Drücken richtig zu verzögern, wenn Touch-Gesten zu Scrollereignissen werden könnten.
  • Bei Verwendung in einem Scrollable ViewGroup wurden bei Clickables keine korrekten Verzögerungen für Wellen erzeugt. Dieses Problem wurde behoben.
  • In Ausklappern und Ansichten werden Tastendrücke jetzt korrekt verzögert, falls Touch-Gesten zu Scrollereignissen führen können.

Fehlerkorrekturen

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

Abhängigkeitsupdates

  • Compose UI und Compose Material sind jetzt von Lifecycle 2.5.1 abhängig. (I05ab0, b/258038814)

Version 1.4.0-alpha02

9. November 2022

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

API-Änderungen

  • Für awaitFirstDown und waitForUpOrCancellation kann jetzt ein PointerEventPass verwendet werden, um mehr Flexibilität zu ermöglichen. (I7579a, b/212091796)
  • Dem Material- und Material3-Text wurden die Parameter minLines, TextField und OutlinedTextField hinzugefügt, mit denen die minimale Höhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden kann (I4af1d)
  • Den Parametern BasicText und BasicTextField wurde der Parameter minLines hinzugefügt. Damit lässt sich die Mindesthöhe dieser Composeables in Bezug auf die Anzahl der Zeilen festlegen (I24294, b/122476634)

Version 1.4.0-alpha01

24. Oktober 2022

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

API-Änderungen

  • Die neue Methode awaitEachGesture() für Gestenerkennung wurde hinzugefügt. Die Funktionsweise ähnelt der von forEachGesture(), aber die Schleife über die Touch-Gesten wird vollständig innerhalb von AwaitPointerEventScope ausgeführt, sodass Ereignisse zwischen den Iterationen nicht verloren gehen können.
  • forEachGesture() wurde zugunsten von awaitEachGesture() eingestellt, da bei forEachGesture() Ereignisse zwischen den Touch-Gesten verloren gehen können. (Iffc3f, b/251260206)

Version 1.3

Version 1.3.1

9. November 2022

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

Version 1.3.0

24. Oktober 2022

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

Wichtige Änderungen seit Version 1.2.0

Verhaltensverändernde Änderung

  • Die maximal unterstützte Erhöhung in Dialogen und Pop-ups wurde auf 8 dp reduziert.

API-Änderungen

  • Dem Tool „Compose“ wurde eine Pull-to-Refresh-Komponente hinzugefügt (I29168).
  • Ändern Sie den Parameternamen von „values“ in „value“ im RangeSlider (I3b79a).

Version 1.3.0-rc01

5. Oktober 2022

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

API-Änderungen

  • Dem Tool zum Erstellen von E-Mails eine Pull-to-Refresh-Komponente hinzufügen (I29168)

Version 1.3.0-beta02

7. September 2022

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

Keine Änderungen seit 1.3.0-beta01

Version 1.3.0-beta01

24. August 2022

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

Verhaltensverändernde Änderung

Die maximal unterstützte Erhöhung in Dialogen und Pop-ups wurde auf 8 dp reduziert.

Die maximal unterstützte Erhöhung für Dialogfelder und Pop-ups für die Nachrichtenerstellung wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl Materialdialoge als auch benutzerdefinierte UI-Dialoge und Pop-ups. Mit dieser Änderung soll ein Bedienungshilfenfehler in Android-Versionen unterhalb von S behoben und dafür gesorgt werden, dass Bedienungshilfen in diesen Fenstern mit den Inhalten im Dialogfeld oder Pop-up interagieren können.

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

Version 1.3.0-alpha03

10. August 2022

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

Version 1.3.0-alpha02

27. Juli 2022

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

Externer Beitrag

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

Version 1.3.0-alpha01

29. Juni 2022

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

API-Änderungen

  • Ändern Sie den Parameternamen von „values“ in „value“ in RangeSlider (I3b79a).

Fehlerkorrekturen

  • Beispiel für das Gütesiegel aktualisieren, um eine aussagekräftigere Inhaltsbeschreibung zu liefern (I10b9d)

Version 1.2

Version 1.2.1

10. August 2022

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

Version 1.2.0

27. Juli 2022

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

Version 1.2.0-rc03

29. Juni 2022

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

  • Keine Änderungen seit 1.2.0-rc02.

Version 1.2.0-rc02

22. Juni 2022

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

Version 1.2.0-rc01

15. Juni 2022

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

API-Änderungen

  • Schnittstellen in Compose-Bibliotheken werden jetzt mit den Standardschnittstellenmethoden von JDK 8 erstellt (I5bcf1)

Fehlerkorrekturen

  • Das Logo wird jetzt mit einem vorangestellten Symbol-Tab versehen, damit es an das Label statt an das Symbol angehängt wird. (I90993)

Version 1.2.0-beta03

1. Juni 2022

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

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, durch den das Symbol BottomSheetScaffold über dem Schatten der oberen App-Leiste gezeichnet wurde. BottomSheetScaffold Beim Platzieren von Infofeldern wird jetzt auch der Status des Tabellenblatts berücksichtigt: Im minimierten Zustand werden Infofelder über dem Tabellenblatt und dem Floating Action Button platziert. Im maximierten Zustand sind sie am unteren Rand des Tabellenblatts verankert. (Ia80b5, b/187771422)

Version 1.2.0-beta02

18. Mai 2022

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

Version 1.2.0-beta01

11. Mai 2022

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

Neue Funktionen

  • Dies ist die erste Betaversion von Version 1.2.

API-Änderungen

  • Das TextFieldDefaults.BorderStroke-Element, das in OutlinedTextField einen Rahmenstrich zeichnet, wurde in TextFieldDefaults.BorderBox umbenannt. (I5f295)

Version 1.2.0-alpha08

20. April 2022

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

API-Änderungen

  • Der Teilverbrauch (nach unten ODER in der 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 einer anderen Person übernommen wurde.
  • PointerInputChange::copy() erstellt jetzt immer eine flache Kopie. Das bedeutet, dass Kopien von „PointerInputChange“ genutzt werden, sobald eines der Exemplare verarbeitet wurde. Wenn Sie eine nicht gebundene PointerInputChange erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)

Version 1.2.0-alpha07

6. April 2022

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

Version 1.2.0-alpha06

23. März 2022

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

API-Änderungen

  • Aktualisierungen an der klickbaren Karten-API, um Änderungen an der Surface API zu berücksichtigen (I56bcb)
  • Aktualisierungen der Material 2 Surface API mit zusätzlichen überladenen Funktionen für auswählbare und umschaltbare Oberflächen. (Ifcca5)

Version 1.2.0-alpha05

9. März 2022

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

API-Änderungen

  • LazyVerticalGrid und LazyHorizontalGrid sind jetzt stabil. (I307c0)
  • LazyVerticalGrid/LazyHorizontalGrid und alle zugehörigen APIs wurden in das .grid-Teilpaket verschoben. Bitte aktualisieren Sie Ihre Importe von androidx.compose.foundation.lazy auf androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • Die vorherige Änderung, bei der nur eine Ansicht für WindowInsetsControllerCompat verwendet wurde, wurde rückgängig gemacht. Es ist wieder ein Fenster erforderlich, das zum Verwalten einiger Fensterflaggen benötigt wird. ViewCompat.getWindowInsetsController wurde zugunsten von WindowCompat.getInsetsController eingestellt, damit das richtige Fenster verwendet wird, z. B. wenn sich die Ansicht in einem Dialogfeld befindet. (I660ae, b/219572936)
  • Text:includeFontPadding ist jetzt standardmäßig deaktiviert. Die Probleme mit dem Zuschneiden aufgrund von includeFontPadding=false wurden behoben und bei hohen Scripts sollte es nicht mehr zu Zuschneidungen kommen. (I31c84, b/171394808)
  • Neue LazyVerticalGrid API zum Definieren von Achsengrößen hinzugefügt (I17723)

Version 1.2.0-alpha04

23. Februar 2022

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

API-Änderungen

  • Add support for filter chips (I39a6e, b/192585545)
  • TextFieldDecorationBox und OutlinedTextFieldDecorationBox wurden hinzugefügt. Wenn Sie sie mit BasicTextField kombinieren, können Sie benutzerdefinierte Textfelder erstellen, die auf Material Design-Textfeldern basieren, aber mehr Anpassungsoptionen bieten.
  • Es wurde eine Möglichkeit bereitgestellt, horizontale und vertikale Abstände in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/6178003))
  • Die Funktionen ComposableTarget, ComposableTargetMarker und ComposableOpenTarget wurden hinzugefügt. Damit können Sie zur Kompilierungszeit Berichte dazu erhalten, wann eine zusammensetzbare Funktion auf einen Anwender angewendet wird, für den sie nicht vorgesehen ist.

    In den meisten Fällen können die Annotationen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Annotationen sollte daher selten sein. Dazu gehören das Erstellen und Verwenden benutzerdefinierter Applier, abstrakter zusammensetzbarer Funktionen (z. B. Schnittstellenmethoden), Felder oder globaler Variablen, die zusammensetzbare Lambdas sind (lokale Variablen und Parameter werden abgeleitet), oder die Verwendung von ComposeNode oder einer ähnlichen zusammensetzbaren Funktion.

    Bei benutzerdefinierten Anwendungen müssen die zusammensetzbaren Funktionen, die ComposeNode oder ReusableComposeNode aufrufen, eine CompoableTarget-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es wird jedoch empfohlen, eine Annotation zu erstellen, die mit ComposableTargetMarker annotiert ist, und dann die markierte Annotation direkt anstelle von ComposableTarget zu verwenden. Eine mit ComposableTargetMarker gekennzeichnete zusammensetzbare Anmerkung entspricht einer ComposbleTarget mit dem voll qualifizierten Namen der Attributklasse als Anwenderparameter. 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 wurde 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 wurde 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 vom Compiler generierte Speicherprüfungen (ist gleich) für alle Parameter reduziert, die in der aufgerufenen inneren Funktion wiederholt werden. (I90490)
  • Unterstützung für den Aktions-Chip hinzugefügt (I07100, b/192585545)

Version 1.2.0-alpha01

12. Januar 2022

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

Abhängigkeitsupdates

  • Jetzt abhängig von Kotlin 1.6.10.

Externer Beitrag

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

Version 1.1

Version 1.1.1

23. Februar 2022

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

Fehlerkorrekturen

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

Version 1.1.0

9. Februar 2022

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

Wichtige Änderungen seit Version 1.0.0

  • Stabile Unterstützung für den Overscroll-Effekt von Android 12
  • Verbesserungen bei der Größe von Berührungszielbereichen
  • In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material für die Größe des Berührungszielbereichs entsprechen. Das Berührungsziel der Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche entsprechend verringern. Dadurch wird das Verhalten von Compose-Material mit dem von Material Design-Komponenten abgeglichen, was für ein einheitliches Verhalten sorgt, wenn Sie Ansichten und Compose kombinieren. Durch diese Änderung werden auch die Mindestanforderungen an die Barrierefreiheit von Touch-Zielen erfüllt, wenn Sie Ihre Benutzeroberfläche mit Compose Material-Komponenten erstellen.
  • Stabile Unterstützung für den Navigationsstreifen
  • Eine Reihe zuvor experimenteller APIs wird in stabile APIs überführt
  • Unterstützung für neuere Kotlin-Versionen

Version 1.1.0-rc03

26. Januar 2022

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

Geändertes Verhalten

In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material Touchziel entsprechen. So wird beispielsweise der Berührungszielbereich einer Schaltfläche auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche kleiner festlegen. Dadurch wird das Verhalten von Compose-Material mit dem von Material Design-Komponenten abgeglichen, was für ein einheitliches Verhalten sorgt, wenn Sie Ansichten und Compose kombinieren. Durch diese Änderung werden auch die Mindestanforderungen an die Barrierefreiheit von Touch-Zielen erfüllt, wenn Sie Ihre Benutzeroberfläche mit Compose Material-Komponenten erstellen.

Fehlerkorrekturen

  • Für den Layout-Inspektor wurden bessere Informationen zur Fehlerbehebung hinzugefügt, wenn Mindestgrößen für Touch-Ziele geprüft werden. (aosp/1955036)

Version 1.1.0-rc01

15. Dezember 2021

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

Fehlerkorrekturen

Version 1.1.0-beta04

1. Dezember 2021

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

Neue Funktionen

  • Aktualisiert für die Kompatibilität mit Kotlin 1.6.0

Version 1.1.0-beta03

17. November 2021

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

Version 1.1.0-beta02

3. November 2021

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

Fehlerkorrekturen

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

Version 1.1.0-beta01

27. Oktober 2021

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

Neue Funktionen

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

Version 1.1.0-alpha06

13. Oktober 2021

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

API-Änderungen

  • Eine Überlastung ohne Kinder für Layout wurde mit verbesserter Effizienz hinzugefügt (Ib0d9a).
  • Implementierung von ExposedDropdownMenu basierend auf ExposedDropdownMenuBox mit TextField und DropdownMenu (If60b2)
  • dismissOnOutsideClick wurde zu PopupProperties hinzugefügt und ersetzt dismissOnClickOutside, das eingestellt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen und ermöglicht so eine genauere Kontrolle darüber, ob onDismissRequest aufgerufen werden soll oder nicht. So lässt sich beispielsweise verhindern, dass der Anker bei Berührungen geschlossen wird.
    • updateAndroidWindowManagerFlags wurde zu PopupProperties hinzugefügt, um eine Low-Level-Steuerung der Flags zu ermöglichen, die vom Pop-up an den Android WindowManager übergeben werden. Der Parameter der Lambda-Funktion sind die Flags, die aus den PopupProperties-Werten berechnet werden und zu WindowManager-Flags führen, z.B. „focusable“. Das Ergebnis des Lambdas sind die endgültigen Flags, die an den Android WindowManager übergeben werden. Standardmäßig bleiben die aus den Parametern berechneten Flags durch updateAndroidWindowManagerFlags unverändert. Diese API sollte mit Vorsicht verwendet werden und nur in Fällen, in denen das Pop-up sehr spezifische Verhaltensanforderungen hat. (I6e9f9)

Version 1.1.0-alpha05

29. September 2021

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

API-Änderungen

  • Fügen Sie eine Mindestgröße für Berührungszielbereiche für Materialkomponenten hinzu, die kein barrierefreies Berührungsziel haben. Da dadurch zusätzliche Abstände um Komponenten herum hinzugefügt werden, damit sie ein ausreichend großes Berührungsziel haben, kann dies bestehende UIs ändern, bei denen davon ausgegangen wird, dass die Größe dieser Komponenten ihrer visuellen Größe entspricht und die Größe des Berührungsziels nicht berücksichtigt wird. Mit der experimentellen LocalMinimumTouchTargetEnforcement-Komposition „local“ können Sie dieses Verhalten für eine gesamte Hierarchie deaktivieren. Diese Funktion ist jedoch nur als vorübergehende Lösung gedacht, während Sie vorhandene UIs auf die neue Mindestgröße anpassen. (I9b966, b/149691127, b/171509422)
  • Die experimentelle Benutzeroberfläche „TextFieldColorsWithIcons“ wurde hinzugefügt. Sie erweitert „TextFieldColors“, um „InteractionSource“ für die Farben „leadingColor“ und „trailingColor“ bereitzustellen. So lässt sich das Aussehen des Textfelds entsprechend dem Fokusstatus ändern. (I66923, b/198402662)

Version 1.1.0-alpha04

15. September 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Zulassen, dass sich die Grenzen des Berührungszielbereichs über den Clipbereich hinaus erstrecken, um ein Mindestmaß für den Berührungszielbereich festzulegen. (I43e10, b/171509422)
  • Die Divider-Komposition wurde aktualisiert, damit Dp.Hairline für den Parameter „Dicke“ berücksichtigt wird. So können Trennlinien mit nur 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 wird veröffentlicht. Version 1.1.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Compose 1.1.0-alpha03 wurde so aktualisiert, dass es von Kotlin 1.5.30 abhängt. (I74545)

API-Änderungen

  • Testmethode zum Abrufen der zugeschnittenen Begrenzungen hinzugefügt (I6b28e)
  • In ViewConfiguration wurde eine Mindestgröße für den Berührungszielbereich hinzugefügt, die für die Semantik und die Eingabe per Mauszeiger verwendet wird, um die Barrierefreiheit zu verbessern. (Ie861c)

Version 1.1.0-alpha02

18. August 2021

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

Externer Beitrag

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

Version 1.1.0-alpha01

4. August 2021

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

API-Änderungen

  • Die DrawScope#drawImage-Methode wurde aktualisiert. Sie verwendet jetzt Quell- und Ziel-Rechtecke, um einen optionalen Parameter für die Filterqualität zu verwenden. Dies ist nützlich für Pixelkunst, die verpixelt werden soll, wenn sie für pixelbasierte Grafiken verkleinert wird. BitmapPainter und zusammensetzbare Funktion für Bilder wurden aktualisiert, um auch einen optionalen FilterQuality-Parameter zu nutzen (Ie4fb0, b/180311607).
  • BadgeBox wurde in BadgedBox umbenannt und die Parameter wurden geändert, sodass zusammensetzbare Badges akzeptiert werden. Die Badge-Komponente wurde hinzugefügt. Das ist der typische Badge-Inhalt für ein BadgedBox. (I639c6)
  • Die NavigationRail-Komponente wurde hinzugefügt. Weitere Informationen zur Verwendung finden Sie in der Dokumentation und in den Beispielen (I8de77).

Fehlerkorrekturen

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

Version 1.0

Version 1.0.5

3. November 2021

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

Fehlerkorrekturen

  • Ein Absturz-Tracking der abgeleiteten StatusOf-Instanzen wurde behoben. (aosp/1792247)

Version 1.0.4

13. Oktober 2021

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

Abhängigkeitsupdates

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

Version 1.0.3

29. September 2021

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

Aktualisierung der Abhängigkeiten

  • Aktualisiert und abhängig von Kotlin 1.5.30

Version 1.0.2

1. September 2021

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

Aktualisiert, 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 wurde veröffentlicht. Version 1.0.1 enthält diese Commits.

Aktualisierung der Abhängigkeiten

  • Aktualisiert und abhängig von Kotlin-1.5.21.

Version 1.0.0

28. Juli 2021

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

Wichtige Funktionen von 1.0.0

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

Bekannte Probleme

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

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

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

Version 1.0.0-rc02

14. Juli 2021

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

Fehlerkorrekturen

  • Dialoge folgen jetzt dem Größenverhalten der Plattform. Legen Sie usePlatformDefaultWidth auf „false“ fest, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)

Version 1.0.0-rc01

1. Juli 2021

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

API-Änderungen

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

Fehlerkorrekturen

  • Um den Material Design-Spezifikationen zu entsprechen, wird für OutlinedTextFields mit ungültiger Eingabe keine Fehlerfarbe mehr für das Label verwendet, wenn das Label als Platzhalter verwendet wird. Letzteres ist der Fall, wenn sich im Textfeld kein Eingabetext befindet und das Textfeld nicht im Fokus ist. Durch diese Änderung hat sich auch die Bedeutung des Parameters error:Boolean in der Funktion TextFieldColors.labelColor() geändert: Wenn das Label als Platzhalter verwendet wird, wird jetzt auch dann false zurückgegeben, wenn die Eingabe ungültig ist. (I45f78)

Version 1.0.0-beta09

16. Juni 2021

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

API-Änderungen

  • Der Parameter „Shape“ wurde zu OutlinedTextField hinzugefügt, damit die Rahmenform angepasst werden kann (I8f39e, b/181322957).
  • TextOverflow wird in eine Inline-Klasse geändert. (I433af)

Fehlerkorrekturen

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

Regeln für Profil hinzugefügt

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

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.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 im Verzeichnis src/main oder einem ähnlichen Verzeichnis angegeben. Die Datei enthält eine Regel pro Zeile. Eine Regel ist in diesem Fall ein Muster, das mit Methoden oder Klassen in der Bibliothek abgeglichen wird. Die Syntax dieser Regeln ist ein Superset des visuell lesbaren ART-Profilformats, das bei der Verwendung von adb shell profman --dump-classes-and-methods ... verwendet wird. Für die Ausrichtung auf Methoden oder Klassen gibt es zwei Arten dieser Regeln.

  • Eine Methodenregel hat das folgende Muster:

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

    <CLASS_DESCRIPTOR>
    
  • Hier steht <FLAGS> für mindestens eines der Zeichen H, S und P, um anzugeben, ob diese Methode als „Hot“, „Startup“ oder „Post Startup“ gekennzeichnet werden soll.

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

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

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

Welchen Zweck haben die Regeln?

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

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

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

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

So funktioniert's

  • Diese Regeln können in Bibliotheken definiert werden und werden in AAR-Artefakten verpackt. Wenn dann ein APK mit diesen Artefakten erstellt wird, werden diese Regeln zusammengeführt und die zusammengeführten Regeln werden verwendet, um ein kompaktes binäres ART-Profil zu erstellen, das für das APK spezifisch ist. ART kann dieses Profil dann nutzen, wenn das APK auf Geräten installiert wird, um einen bestimmten Teil der Anwendung vorab zu kompilieren und so die Leistung der Anwendung zu verbessern, insbesondere beim ersten Start. Hinweis: Dies hat keine Auswirkungen auf debuggbare Anwendungen.

Version 1.0.0-beta08

2. Juni 2021

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

Neue Funktionen

API-Änderung mit Auswirkungen auf das Verhalten

  • ÄNDERN DES VERHALTENS: Klicks auf Karten werden jetzt berücksichtigt, sodass Klicks, die über Card(Modifier.clickable) hinzugefügt werden, wirkungslos sind. Verwenden Sie die neue experimentelle Überladung einer Karte, die onClick akzeptiert. (Ia8744, b/183775620)
    • Es wurde eine neue Kartenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale Karte ohne Klickmöglichkeit mit der Modifier.clickable zu verwenden, da die Karte in diesen Fällen die Wellenanzeige nicht zuschneidet.
  • VERHALTENSÄNDERUNG: Klicks werden jetzt über Surface erfasst, sodass Klicks, die über Surface(Modifier.clickable) hinzugefügt werden, wirkungslos sind. Verwenden Sie die neue experimentelle Überladung von Surface, die onClick akzeptiert. (I73e6c, b/183775620)
    • Es wurde eine neue Oberflächenüberladung hinzugefügt, die Klicks sowie andere anklickbare Funktionen verarbeitet: „indication“, „interactionSource“ und „enabled/disabled“. Es war nicht möglich, eine normale, nicht anklickbare Oberfläche mit der Modifier.clickable zu verwenden, da die Oberfläche in diesen Fällen die Wellenanzeige nicht zuschneidet.

API-Änderungen

  • FabPosition wurde von einer Enumeration in eine Inline-Klasse umgewandelt, um eine mögliche Erweiterung in Zukunft zu ermöglichen (I030fb)
  • Die Verwendung von enum-Werten in Inline-Klassen wurde umgestaltet, um Probleme mit vollständigen Anweisungen zu vermeiden, wenn neue Enum-Werte hinzugefügt werden. (I2b5eb)
  • Für anklickbare/umschaltbare Elemente wird eine Zeitüberschreitung für das Tippen hinzugefügt, um zu verhindern, dass beim Scrollen oder Ziehen eine Wellenbewegung angezeigt wird (Ia2704, b/168524931)
  • Die Properties „ContentDescription“ und „Text-Semantik“ sind keine einzelnen Werte mehr, sondern Listen. So können sie zusammengeführt werden, anstatt zusammengefügt zu werden. Außerdem wurden bessere Test-APIs zur Nutzung dieser Änderungen bereitgestellt (Ica6bf, b/184825850).
  • Modifier.focusModifier() wurde verworfen und durch Modifier.focusTarget() (I6c860) ersetzt.
  • FocusState-Enum durch eine FocusState-Schnittstelle ersetzt (Iccc1a, b/187055290)
  • LocalRippleNativeRendering wurde entfernt, da die Implementierung der ansichtsgestützten Welle stabil ist (I7fab3, b/188569367).

Fehlerkorrekturen

  • Modifier.onGloballyPositioned() wurde geändert, sodass die Koordinaten dieses Modifiers in der Modifikatorkette erfasst werden, nicht die Layoutkoordinaten nach Anwendung aller Modifikatoren. Das bedeutet, dass sich jetzt die Reihenfolge der Modifikatoren darauf auswirkt, welche Koordinaten im Bericht angezeigt werden. (Ieb67d, b/177926591)
  • README für den vorhandenen Compose Material-Katalog hinzugefügt. (If9191)

Version 1.0.0-beta07

18. Mai 2021

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

API-Änderungen

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

Version 1.0.0-beta06

5. Mai 2021

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

API-Änderungen

  • Ripple wurde migriert, um RippleDrawable intern auf Android-Geräten zu verwenden. Das bedeutet, dass die Wellenanimationen im Render-Thread ausgeführt werden und daher auch dann flüssig sind, wenn der UI-Thread ausgelastet ist, z. B. beim Wechseln zwischen Bildschirmen. Die API-Oberfläche von Ripple ändert sich dadurch nicht, es kann aber zu Verhaltensänderungen kommen. Zur Unterstützung der Migration wurde LocalRippleNativeRendering hinzugefügt. Gib für „CompositionLocal“ den Wert false an, um auf die vorherige Ripple-Implementierung im CompositionLocalProvider zurückzugreifen. Diese API ist vorübergehend und wird in Zukunft entfernt. Wenn Sie Probleme haben, die Sie dazu veranlassen, diese API zu verwenden, melden Sie bitte einen Fehler. (I902f8, b/168777351, b/183019123)
  • Es wurden die Bedienungshilfen-APIs „CollectionInfo“ und „CollectionItemInfo“ hinzugefügt, mit denen Sammlungen und ihre Elemente für Bedienungshilfen gekennzeichnet 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

  • Aktualisierte Implementierung von Material Catalog-Inset-Elementen in Compose: https://github.com/google/accompanist/pull/365 (I25dc3)
  • Bei untergeordneten Zeilen und Spalten mit „weight(fill = false)“ füllen das übergeordnete Element nicht mehr den gesamten verfügbaren Bereich der Hauptachse aus. (Ied94d, b/186012444, b/184355105)

Version 1.0.0-beta05

21. April 2021

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

Fehlerkorrekturen

  • Dem vorhandenen Katalog „Compose Material“ wurden Bilder für Komponentenkacheln, 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 wird veröffentlicht. Version 1.0.0-beta04 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Dem vorhandenen Modul wurde die Implementierung des Compose Material-Katalogs hinzugefügt. Derzeit fehlen: Kachelbilder der Komponenten, Designauswahl (wird in nachfolgenden Änderungen hinzugefügt). (Ie7a94)

Version 1.0.0-beta03

24. März 2021

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

API-Änderungen

  • DefaultMonotonicFrameClock wurde eingestellt. Wenn withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock aufgerufen wird, wird jetzt IllegalStateException ausgegeben. (I4eb0d)
  • Neue API LeadingIconTab hinzugefügt, um ein Symbol und Inline-Text auf einem Tab anzuzeigen. (I23267)

Externer Beitrag

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

Version 1.0.0-beta02

10. März 2021

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

API-Änderungen

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

Fehlerkorrekturen

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

Version 1.0.0-beta01

24. Februar 2021

androidx.compose.material:material-*:1.0.0-beta01 wird 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 die Companion-Objekte „ImageBitmap“ und „ImageVector“. 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)
  • dp-Assertions entfernt (I798d2)
  • Der Rückruf von SoftwareKeyboardController wurde aus allen Textfeldern entfernt und wird bald durch eine neue API ersetzt. (Iae869, b/168778053)
  • Lambdas für Aktionen von Schaltern, Kästchen und Optionsfeldern können jetzt null sein. Die Beispiele für Kästchen-in-anklickbarer Zeilen wurden für die Verwendung dieser Funktion aktualisiert. (If601b, b/171819073)
  • InteractionState wurde durch [Mutable]InteractionSource ersetzt
    • Oberflächen sind für das Senden / Erfassen von Interaktionsereignissen verantwortlich.
    • Anstatt interactionState = remember { InteractionState() } an Komponenten wie Button und Modifier.clickable() zu übergeben, verwenden Sie interactionSource = remember { MutableInteractionSource() }.
    • Anstelle von Interaction.Pressed in interactionState sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState().
    • Bei komplexen Anwendungsfällen können Sie mit „InteractionSource.interactions“ den Stream der Interaktionen beobachten. Weitere Informationen finden Sie in der Dokumentation und in den Beispielen zu „InteractionSource“.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • AccessibilityMananger-Oberfläche und LocalAccessibilityMananger in CompositionLocals hinzufügen (I53520)
  • Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie anstelle der Eigenschaft für positionInParent und boundsInParent (I580ed, b/169874631, b/175142755) die Funktion
  • Der Schieberegler unterstützt jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
  • Neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
  • AnimationEndReason.Interrupted wurde entfernt. "CancelException" wird ausgelöst, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
  • @ExperimentalRippleApi wurde entfernt und RippleAlpha in eine Klasse mit Eigenschaften anstelle einer Schnittstelle geändert. (I6df7c)
  • TextFieldColors-Schnittstelle wurde hinzugefügt, um verschiedene Farben darzustellen, die in TextField und OutlinedTextField in verschiedenen Zuständen verwendet werden. Die Standardimplementierung finden Sie unter TextFieldDefaults.textFieldColors und TextFieldDefaults.outlinedTextFieldColors.
  • Mit dem Modifikator „selectionGroup“ können mehrere Tabs oder Radiobuttons aus Gründen der Barrierefreiheit gekennzeichnet werden (Ie5c29)
  • LazyListState.animateScrollToItem hinzufügen

    Mit dieser Methode wird flüssig zu einem bestimmten Element in der Liste gescrollt. (I4bfd7)

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

  • Alle mit @ReadOnlyComposable gekennzeichneten Composeables werden jetzt zur Kompilierzeit geprüft, um sicherzustellen, dass nur andere @ReadOnlyComposables aufgerufen werden (I58961)

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

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

  • Die Pakete der Methoden „smooScrollBy“ 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 Schwebeanimation anstelle von vordefinierten Abklingzeiten. (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. (I4aae)

  • Die Ausrichtung wurde in das Basispaket verschoben. VelocityTracker wurde von ui.gesture zu ui.input.pointer verschoben. (Iff4a8, b/175294473)

  • drawerState.open() und drawerState.close() sind jetzt suspendierende Funktionen. Mit rememberCoroutineScope() den Bereich der Zusammensetzung abrufen, um sie aufzurufen (I16f60, b/175294473)

  • „Providers“ wurde in CompositionLocalProvider umbenannt

    • Der Konstruktor für „Composition“ akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
    • „currentCompositeKeyHash“ wurde in eine zusammensetzbare Property auf oberster Ebene statt in eine zusammensetzbare Funktion auf oberster Ebene umgewandelt.
    • CompositionData und CompositionGroup wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben
    • ComposableLambda wurde zu einer Schnittstelle anstelle einer konkreten Klasse gemacht und verfügt nicht mehr über Typparameter.
    • ComposableLambdaN wurde zu einer 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 „clearRoots“-Funktion der obersten Ebene von @TestOnly wurde entfernt. Das ist nicht mehr erforderlich.
    • Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie werden nicht mehr benötigt.
    • „Composer.collectKeySourceInformation“ wurde entfernt. Das ist nicht mehr erforderlich.
    • Die Methoden „isJoinedKey“, „joinedKeyLeft“ und „joinedKeyRight“ wurden entfernt. Sie werden nicht mehr benötigt.
    • Verschiedene APIs der obersten Ebene wurden in verschiedene Dateien verschoben und neu angeordnet. Aufgrund der Dateiklassensemantik von Kotlin wird dadurch die Binärkompatibilität, aber nicht 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 eines einfachen Lambdas. Sie können den Status über rememberDraggableState { delta -> } erstellen, um dasselbe Verhalten wie zuvor zu erhalten (Ica70f, b/175294473)

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

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

  • Die folgenden Änderungen wurden an der Material API vorgenommen:

    • Der Top/BottomAppBar-Parameter „contentPadding“ wurde hinzugefügt, um das Standardabstand anzupassen.
    • Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien für erforderliche Parameter vor optionalen Parametern zu entsprechen.
    • Der Parameter icon in BottomNavigationItem wurde nach selected und onClick verschoben.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • bodyContent-Parameter in einigen Komponenten wurden in content umbenannt.
    • Die Parameter in ButtonDefaults.buttonColors() wurden neu angeordnet. Da sich der Typ der Parameter nicht geändert hat, verursacht dies keinen Fehler in Ihrem Code. Stellen Sie sicher, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert der Code nicht wie zuvor.
    • Der Parameter secondaryVariant wurde zu darkColors() hinzugefügt. Diese Farbe entspricht in der Regel der Farbe von secondary im dunklen Design, wird aber hinzugefügt, um für Einheitlichkeit und weitere Anpassungen zu sorgen.
    • ElevationDefaults und animateElevation() wurden aus der öffentlichen API entfernt, da sie nicht häufig verwendet wurden.
    • onValueChangeEnd in Slider wurde in onValueChangeFinished umbenannt und Nullwerte zulässig.
    • Der Parameter text in Snackbar wurde aus Gründen der Einheitlichkeit in content umbenannt.
    • Dem Parameter DropdownMenuItem wurde der Parameter contentPadding hinzugefügt, um das Standardabstand anzupassen. Außerdem wurde content zu einer Erweiterung von RowScope.
    • ModalDrawerLayout wurde in ModalDrawer umbenannt.
    • BottomDrawerLayout wurde in BottomDrawer umbenannt.
    • (I1cc66)
  • Für BasicTextField kann jetzt der Pinsel statt der Farbe verwendet werden, um die Textfelder besser anzupassen (I83a36)

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

  • Änderung von Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) und Entfernung des InteractionState-Parameters aus IndicationInstance#drawIndication(). IndicationInstance sollte nur für das Zeichnen visueller Effekte zuständig sein und nicht das Starten von Animationen oder den Schreibstatus als Reaktion auf InteractionState-Änderungen ausführen. Diese Animationen und Zustandsschreibvorgänge sollten stattdessen innerhalb von rememberUpdatedIndication() ausgeführt werden. Der Parameter indication in Modifier.indication wurde ebenfalls in einen erforderlichen Parameter geändert. (IC1764, b/152525426)

Fehlerkorrekturen

  • Neue lokale API für die Zusammensetzung von LocalSoftwareKeyboardController hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle in TextField zu ersetzen. (I658b6, b/168778053)

Version 1.0.0-alpha12

10. Februar 2021

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

API-Änderungen

  • Für Modifier.pointerInput sind jetzt Schlüssel zum Speichern erforderlich, um anzugeben, wann die Coroutine zur Erkennung der Eingabe per Mauszeiger für neue Abhängigkeiten neu gestartet werden soll. (I849cd)
  • BottomDrawerLayout und ListItem wurden als @ExperimentalMaterialApi (Id766e) gekennzeichnet.
  • PaddingValues.Absolute wurde hinzugefügt und kann in APIs verwendet werden, die PaddingValues akzeptieren. (Ia5f30)
  • onImeActionPerformed ist eingestellt. Verwenden Sie stattdessen KeyboardActions. (If0bbd, b/179071523)
  • Um die Namenskonventionen besser an ImageBitmap und ImageVector anzupassen, wurde ImagePainter in BitmapPainter umbenannt, um Parallelität zu VectorPainter herzustellen. (Iba381, b/174565889)
  • „Animatable.snapTo“ und „Animatable.stop“ sind jetzt Aussetzungsfunktionen (If4288)
  • „ComponentActivity.setContent“ wurde nach androidx.activity.compose.setContent im Modul androidx.activity:activity-compose verschoben. (Icf416)
  • Die Destrukturierungs- und copy()-Methoden wurden aus mehreren Klassen entfernt, in denen sie nur selten verwendet wurden. (I26702, b/178659281)
  • halfExpand() und expand() in ModalBottomSheetState intern machen (Ic914e)
  • Die Änderung von Indication#createInstance wurde zu @Composable geändert und LocalIndication so geändert, dass sie ein Indication-Element enthält, nicht () -> Indication. (I5eeea, b/157150564)
  • „AlertDialog“ und „Drop-down-Menü“ sind jetzt nur noch für Android verfügbar. Dem Drop-down-Menü 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“. Die Attribute „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ wurden eingestellt. Verwenden Sie stattdessen painterResource. (I6b809)
  • Die Parameter toggle und toggleModifier wurden aus „DropdownMenu“ entfernt und dropdownModifier, dropdownOffset und dropdownContent in modifier, offset und content umbenannt. DropdownMenu verhält sich jetzt konsistent mit Popup, wobei das übergeordnete Layout für die Position des Menüs verwendet wird. In den meisten Fällen können Sie toggle als Geschwisterelement von DropdownMenu verschieben und beide in Box einschließen. 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)
  • Semantikaktionen zum Maximieren und Minimieren wurden 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 entlang einer Achse verwenden (I0ba93, b/175294473)
  • Die Namen der Bildschirmschoner wurden umbenannt, damit sie mit der Umbenennung von „Ambient“ in „CompositionLocal“ übereinstimmen. Ambients hießen früher AmbientFoo, jetzt heißen sie CompositionLocals. (I2d55d)
  • Auswahl wurde auf Fundament verschoben. (I7892b)
  • Ähnlich wie wir zuvor state { 0 }-Kompositen entfernt und die Verwendung von remember { mutableStateOf(0) } empfohlen haben, werden wir savedInstanceState { 0 }-Kompositen entfernen. Verwenden Sie stattdessen rememberSaveable { mutableStateOf(0) }. Dieser wird automatisch gespeichert und wiederhergestellt, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie bisher ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überlastung von „memorySaveable“ mit dem Parameter stateSaver verwenden. Die Verwendung sieht dann so aus: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • ProgressBarRangeInfo.Indeterminate wurde hinzugefügt, um nicht befristete Fortschrittsanzeigen für die Barrierefreiheit zu kennzeichnen (I6fe05)
  • @ComposableContract wurde zugunsten von drei spezifischeren Anmerkungen eingestellt.

    • @ComposableContract(restartable = false) ist zu @NonRestartableComposable geworden
    • @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 mehr haben und keinen Mehrwert bieten (I0484d)

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

  • Saver, listSaver(), mapSaver(), autoSaver wurden von androidx.compose.runtime.savedinstancestate zu androidx.compose.runtime.saveable verschoben (I77fe6)

  • Die Parameter „left“ (links) und „right“ (rechts) von „RounderCornerShape“, „CutCornerShape“ und „CornerBasedShape“ wurden in „start“ (Anfang) und „end“ (Ende) umbenannt, um die automatische Spiegelung der Form in Richtung „rtl“ 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 des Tabs sowie der Parameter label von BottomNavigationItem wurden so geändert, dass Nullen zulässig sind. Dies soll das Verhalten der Komponente besser vermitteln, wenn diese Parameter nicht angegeben sind, da sich dies auf die Größe und das Layout der Komponente auswirkt. Wenn Sie derzeit emptyContent() für keinen Text, kein Symbol oder kein Label übergeben, sollten Sie stattdessen null verwenden. (I57ed4)

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

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

  • Einführung der ColorMatrix API, mit der die RGB-Werte des Quellinhalts geändert werden können. Die Refactored ColorFilter API ist eine Schnittstelle, die der Implementierung von PathEffect entspricht. (Ica1e8)

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

  • Fügen Sie die SemanticsProperties.PaneTitle API hinzu. (I20d5a)

  • Für „Tab“ und „BottomNavigationItem“ wurden aktivierte Parameter hinzugefügt, damit sie nicht angeklickt werden können. „BottomNavigationItem“ in „RowScope.BottomNavigationItem“ umbenannt, um die Layoutanforderungen in der API besser auszudrücken. (Id683d)

  • Die Funktionen „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 der createOutline-Funktion von Shape den Parameter „layoutDirection“ hinzu. So lassen sich layoutorientierte Formen erstellen. (I57c20, b/152756983)

  • Recomposer.current() wurde entfernt. [Zusammenfassung]ComposeView verwendet jetzt standardmäßig verzögert erstellte, fensterweite Recomposer, die vom ViewTreeLifecycleOwner für das Fenster gesteuert werden. Recomposition und mitFrameNanos-basierte Animations-Ticks werden pausiert, während der Lebenszyklus des Hosts angehalten ist. (I38e11)

Fehlerkorrekturen

  • Das Symbol wird jetzt unter Berücksichtigung der angewendeten Größenmodifikatoren an seine Größe angepasst. Icon(.., modifier = Modifier.size(50.dp) wird jetzt beispielsweise in einem Bereich von 50 × 50 dp gezeichnet. (Ib2ba9, b/178796190)

Version 1.0.0-alpha11

28. Januar 2021

androidx.compose.material:material-*:1.0.0-alpha11 wurde 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 zu beschreiben (I2ac4c).
  • Ändert zustandsorientierte Material-Parameteroberflächen in @Composable-Funktionen, die State<T> zurückgeben. Es wird Animatable.asState() hinzugefügt, um die Umwandlung eines animierbaren Elements in einen Status zu vereinfachen. Außerdem wird „animateElevation“ in eine Aussetzungserweiterung für „Animatable“ geändert. (If613c)
  • Snackbar, SnackbarHost, SnackbarHostState sind nicht mehr @ExperimentalMaterialAPI (Id1fb5)
  • „Typografie“, „Formen“ und „TabPosition“ sind keine Datenklassen mehr. Es wurde eine Kopierfunktion für Typografie und Formen hinzugefügt, um die generierten zu ersetzen. (I40037)
  • Einige zuvor eingestellte Material APIs (Ifaa25) wurden gelöscht.

Fehlerkorrekturen

  • onCommit, onDispose und onActive wurden zugunsten der SideEffect- und DisposableEffect-APIs eingestellt (If760e)
  • Die auf „TransitionDefinition“ basierende Umstellung wurde eingestellt (I0ac57)
  • Anfänglicher Status in updateTransition wird jetzt unterstützt (Ifd51d)
  • WithConstraints wurde als BoxWithConstraints überarbeitet und zu "foundation.layout" verschoben. (I9420b, b/173387208)
  • ScrollBy ohne Sperrung einstellen, scrollTo entfernen (nicht gesperrtes Element)

    Wir empfehlen jetzt, Sperren zu verwenden, um das Scrollen zu steuern und auf das Ende des Scrollens zu warten. Im Rahmen dieser Umstellung werden die nicht ausgesetzten Versionen dieser Funktionen eingestellt und/oder entfernt. (Ie9ced)

  • Einstellung der Funktion „smoothScrollBy“ ohne Pausierung Wir empfehlen jetzt, Pausierungsfunktionen zu verwenden, um das Scrollen zu steuern und zu warten, bis das Scrollen abgeschlossen ist. Im Rahmen dieser Umstellung werden die Versionen dieser Funktionen ohne Pausierung eingestellt. (I12880)

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

  • Die in Button und FloatingActionButton verwendete Welle kann nicht mehr durch die Bereitstellung einer neuen Angabe über AmbientIndication angepasst werden. Dies war nie als Möglichkeit gedacht, diese Komponenten anzupassen, und dies führt nun dazu, dass diese Komponenten mit anderen Material-Komponenten konsistent sind. Informationen zum Anpassen von Wellen 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)

  • Für „BasicTextField“ wurde der neue Parameter decorationBox hinzugefügt. Sie können dem Textfeld Dekorationen wie Symbole, Platzhalter, Labels usw. hinzufügen und den Trefferbereich vergrößern. (I16996)

  • Es wurde ein Fehler behoben, bei dem die Breite des Materialtextfelds 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 dies vermieden werden sollte. Normalerweise ist es besser, die Größe von onRoot() oder zumindest die Fenstergröße zu verwenden. (I62db4)

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

  • invalidate und compositionReference() werden jetzt zugunsten von currentRecomposeScope bzw. rememberCompositionReference eingestellt. (I583a8)

  • Der PopupPositionProvider verwendet jetzt fensterrelative Koordinaten anstelle von globalen Koordinaten. parentGlobalBounds in anchorBounds umbenannt und windowGlobalBounds in windowSize: IntSize geändert (I2994a)

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

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

  • Klickbare, ausblendbare 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 Oberfläche geändert (Ib14e5)

  • ScrollableColumn/Row wurden eingestellt. Die Verwendung von ScrollableColumn ist bei großen scrollbaren Inhalten weniger effizient als LazyColumn, da mit LazyColumn nur sichtbare Elemente erstellt, gemessen und gezeichnet werden können. Um zu verhindern, dass Nutzer ineffizient arbeiten, haben wir uns entschieden, ScrollableColumn und ScrollableRow einzustellen und stattdessen die Verwendung von LazyColumn und LazyRow zu empfehlen. Nutzer können trotzdem entscheiden, dass sie kein Lazy-Verhalten benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • Neue items(count: Int)-Factorymethode für LazyColumn/LazyRow/LazyVerticalGrid. items(items: List) und itemsIndexed(items: List) sind jetzt Erweiterungsfunktionen und müssen bei Verwendung manuell importiert werden. Neue Erweiterungsüberladungen für Arrays: items(items: Array) und itemsIndexed(Array) (I803fc, b/175562574)

  • Die experimentellen Methoden „monotonicFrameAnimationClockOf“ wurden entfernt (Ib753f, b/170708374)

  • Die Methoden für globale Koordinaten wurden eingestellt und neue fensterbasierte Koordinatenmethoden eingeführt. (Iee284)

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

  • FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich die Funktion noch ändern kann. (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden wurde in invisibleToUser umbenannt und als @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 bei Tests nutzen (I532b6)

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

Version 1.0.0-alpha10

13. Januar 2021

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

API-Änderungen

  • Die Geschwindigkeit wurde so geändert, dass sie Komponenten und mathematische Operationen enthält. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt, damit sie mit ähnlichen Annotationen der experimentellen API übereinstimmt (Ia4502, b/171464963).
  • „Position“ in „DpOffset“ umbenannt und „getDistance()“ entfernt (Ib2dfd)
  • Color.useOrElse() in Color.takeOrElse() umbenannt (Ifdcf5)
  • „Toggle“ 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 intern gemacht. Die Verwendung von nativeClass in Gleich-Implementierungen wurde so aktualisiert, dass stattdessen „is MyClass“ verwendet wird. (I4f734)

Fehlerkorrekturen

  • Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
  • animate() wird jetzt durch animateAsState() ersetzt. Dieser gibt State<T> anstelle von T zurück. Dies ermöglicht eine bessere Leistung, da der Entwertungsbereich darauf eingegrenzt werden kann, wo der Statuswert gelesen wird. (Ib179e)
  • Fügen Sie die Semantics Role API und die Rolle als Parameter zu anklickbarer, auswählbarer und ein-/ausschaltbarer SemanticsModifier hinzu. Wir haben Modifier.progressSemantics geändert, damit es auch für den Schieberegler verwendet werden kann. (I216cd)

Version 1.0.0-alpha09

16. Dezember 2020

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

API-Änderungen

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

    Dazu wurde die Property selbst mit einer Anmerkung versehen. Diese Syntax ist inzwischen nicht mehr zulässig:

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

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

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

    Beide Syntaxen funktionieren noch einige Zeit, aber die alte Syntax wird irgendwann zu einem Kompilierungsfehler führen. (Id9197)

  • Die androidx.compose.material:material-ripple-Bibliothek mit Ripple-APIs wurde hinzugefügt, um interaktive Komponenten zu erstellen, ohne den Rest der Material-Bibliothek zu benötigen. „rememberRippleIndication“ wurde eingestellt und durch „rememberRipple“ ersetzt. (Ibdf11)

Fehlerkorrekturen

  • Lambdas in Offset-Modifizierern geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
  • ShaderBrush wurde neu strukturiert, um eine Shaderinstanz zu erstellen, wenn Informationen zur Größe der Zeichenumgebung verfügbar sind. Dies ist nützlich, um Farbverläufe zu definieren, die bei der Zusammensetzung die gesamten Zeichengrenzen eines Composeables einnehmen, ohne dass benutzerdefinierte DrawModifier-Implementierungen implementiert werden müssen.

    APIs für Gradientenfunktionskonstruktoren wurden durch Factory-Methoden für ein Gradient-Objekt ersetzt. (I511fc, b/173066799)

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

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

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

  • Die Autofill API ist jetzt eine experimentelle API und muss aktiviert werden (I0a1ec)

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

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

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

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

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

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

  • ContentDrawScope wurde in das UI-Grafikmodul verschoben, um es mit DrawScope zusammenzuführen. (Iee043, b/173832789)

Version 1.0.0-alpha08

2. Dezember 2020

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

API-Änderungen

  • MaterialTheme setzt jetzt die richtigen Farben für Auswahl-Handle und Auswahlhintergrund. In nicht-Material-Apps können die Farben für die Auswahl manuell mithilfe von „AmbientTextSelectionColors“ angepasst werden. (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 Übereinstimmung mit den Compose-Richtlinien zu prüfen. Außerdem wurden einige APIs, die children als Namen für das abschließende Lambda verwendet haben, gemäß der Lint-Prüfung und den Anleitungen zu content migriert. (Iec48e)
  • VectorAsset in ImageVector umbenannt VectorAsset in Builder verschoben und umbenannt, um gemäß den Richtlinien des API-Rates eine innere Klasse von ImageVector zu sein Typealias von VectorAssetBuilder hinzugefügt, um eine Verknüpfung mit ImageVector.Builder herzustellen. (Icfdc8)
  • „ImageAsset“ und zugehörige Methoden wurden in „ImageBitmap“ umbenannt. (Ia2d99)
  • Fundamentsemantikeigenschaften wurden in die Benutzeroberfläche verschoben (I6f05c)
  • fun RippleIndication() wurde verworfen und durch rememberRippleIndication() ersetzt, um die Konsistenz mit anderen APIs zu wahren. (Id8e2c)
  • Ein singeLine-Parameter wurde zu BasicTextField, TextField und OutlinedTextField hinzugefügt. Setzen Sie diesen Parameter auf „true“, um das Textfeld zu einer einzelnen horizontal scrollbaren Zeile zu machen. (I57004, b/168187755)

Fehlerkorrekturen

  • Semantikaktion hinzufügen. Schließen (I2b706)
  • Die DrawModifier APIs wurden aus dem Paket androidx.compose.ui in das Paket androidx.compose.ui.draw verschoben. Die Datei „DrawModifierDeprecated.kt“ wurde erstellt, um Aliasse und Hilfsmethoden für die Migration von den eingestellten zu den aktuellen APIs zu enthalten. (Id6044, b/173834241)
  • Umbenennung von Modifier.drawLayer in Modifier.graphicsLayer Änderungen der zugehörigen Klassen in GraphicsLayer gemäß API-Feedback (I0bd29, b/173834241)
  • <T> wurde aus der Deklaration von „SubcomposeLayout“ entfernt. Sie können es jetzt ohne Angabe eines Typs verwenden. (Ib60c8)
  • Die APIs „Modifier.scale“ und „Modifier.rotate“ wurden für drawLayer hinzugefügt.
    • Modifier.drawOpacity wurde in Modifier.alpha umbenannt
    • Modifier.drawShadow in Modifier.shadow umbenannt (I264ca, b/173208140)
  • Der Ausrichtungsparameter von „Box“ wurde in „contentAlignment“ umbenannt. (I2c957)
  • Die Modifikatoren „offsetPx“ wurden in „offset“ umbenannt. Sie verwenden jetzt Lambda-Parameter anstelle von Status. (Ic3021, b/173594846)
  • Einführung der APIs „SweepGradientShader“ und „SweepGradientBrush“. (Ia22c1)
  • Es wurde eine Lint-Prüfung für Modifikatorparameter in zusammensetzbaren Funktionen hinzugefügt. Bei dieser Lint-Prüfung werden Name, Rückgabetyp, Standardwert und Reihenfolge des Parameters auf Konsistenz mit den Richtlinien zum Schreiben geprüft. (If493b)
  • Aktualisierte TextFieldValue API
    • TextFieldValue.composition ist schreibgeschützt.
    • Ausnahme für ungültigen Auswahlbereich entfernt (I4a675, b/172239032)
  • Neue Modifier.drawLayer()-Überladung hinzugefügt. Es wird ein Lambda-Block für einen neuen GraphicsLayerScope verwendet, in dem Sie die Ebenenparameter so definieren, dass die Neuzusammensetzung und das Neulayout bei einem Statuswechsel übersprungen werden. DrawLayerModifier ist jetzt intern für die Migration seiner Logik in die placeable.placeWithLayer()-Methode von LayoutModifier (I15e9f, b/173030831).
  • Wir haben Ambients mit dem Suffix Ambient eingestellt und durch neue Properties mit dem Präfix „Ambient“ ersetzt, gemäß den Richtlinien für Ambients und die Compose API. (I33440)
  • Lint-Prüfung wurde hinzugefügt, um zu prüfen, ob Modifier Factorys intern androidx.compose.ui.composed {} verwenden, statt als @Composable gekennzeichnet zu werden. (I3c4bc)
  • Das Semantik-Argument „mergeAllDescendants“ wurde in „mergeDescendants“ umbenannt. (Ib6250)
  • Die Zeitsteuerung in Tests (TestAnimationClock und ihre Verwendung) ist jetzt experimentell (I6ef86, b/171378521)
  • Altes UI-Testmodul und seine Stubs entfernen (I3a7cb)
  • TextUnit.Inherit wurde in TextUnit.Unspecified umbenannt, um für Einheitlichkeit mit anderen Einheiten zu sorgen. (Ifce19)
  • Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktioniert jetzt. (I46a07, b/172311734)
  • „id“ wurde in „layoutId“ für „LayoutIdParentData“ umbenannt. „Measurable.id“ wurde in „Measurable.layoutId“ umbenannt. (Iadbcb, b/172449643)

Version 1.0.0-alpha07

11. November 2020

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

API-Änderungen

  • „Emphasis“ (Betonung) wurde eingestellt und durch „AmbientContentAlpha“ ersetzt. „AmbientContentAlpha“ ist eine einfachere Abstraktion, die die bevorzugte Alpha-Wert für den Inhalt für einen Teil der Hierarchie darstellt, ähnlich wie „AmbientContentColor“ die bevorzugte Farbe für den Inhalt darstellt. Text und Symbol verwenden jetzt standardmäßig den aktuellen Wert von „AmbientContentAlpha“. Sie können auch manuell color.copy(alpha = AmbientContentAlpha.current) eingeben, um denselben Effekt in Ihren Komponenten zu erzielen. Anstatt „ProvideEmphasis“ zu verwenden, können Sie einfach direkt einen Wert über „AmbientContentAlpha“ angeben und die alten „EmphasisLevels“ durch die neuen Standardebenen in „ContentAlpha“ ersetzen. (Idf03e, b/159017896)
  • androidx.compose.material.AmbientContentColor wurde hinzugefügt, um androidx.compose.foundation.AmbientContentColor zu ersetzen (I84f7b, b/172067770)
  • Ersetzt androidx.compose.foundation.Text durch androidx.compose.material.Text als übergeordnete, thematisierbare Textkomponente. Verwenden Sie „BasicText“, wenn Sie eine einfache Textkomponente benötigen, die keine Farbe oder keinen Textstil aus dem Design verwendet. (Ie6ae0)
  • Textfeldern wurde „maxLines“ hinzugefügt (Ib2a5b)
  • TextFields so aktualisieren, dass sie Tastaturoptionen akzeptieren (Ida7f3)
  • Für die Berechnung von Höhenebenen wird jetzt die absolute (Gesamt-)Höhe der Oberfläche verwendet. Bei einer in einer anderen Oberfläche verschachtelten Oberfläche wird also die kombinierte Höhe verwendet, um die Ebene zu zeichnen. (I7bd2b, b/171031040)

Fehlerkorrekturen

  • captureToBitmap nach "captureToImage" verschoben (I86385)
  • Die Grundlagen AmbientTextStyle, ProvideTextStyle und AmbientContentColor wurden eingestellt. Verwenden Sie stattdessen die neuen Versionen, die in der Materialbibliothek verfügbar sind. Für nicht-Material-Anwendungen sollten Sie stattdessen eigene Designsystem-spezifische Themenumgebungen erstellen, die in Ihren eigenen Komponenten verwendet werden können. (I74acc, b/172067770)
  • foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine grundlegende, neutrale Text-API, die keine Werte aus einem Design verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
  • KeyboardOptions in ImeOptions umbenennen (I82f36)
  • KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce)
  • BaseTextField wurde eingestellt. Verwenden Sie stattdessen „BasicTextField“. (I896eb)
  • Die Anmerkung „ExperimentalSubcomposeLayoutApi“ wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn verwendet werden (I708ad)
  • „FirstBaseline“ und „LastBaseline“ wurden in das Paket „androidx.compose.ui.layout“ verschoben (Ied2e7).
  • Die Symbol-API wurde aktualisiert, sodass „Color.Unspecified“ als mögliche Färbung verwendet werden kann. Dadurch wird das bereitgestellte Asset oder der bereitgestellte Painter ohne Farbfilter gezeichnet. Zuvor wurde versucht, die Färbung mit Farbe zu ignorieren.Bei einer nicht angegebenen Färbung wurde am Ende eine transparente Färbung verwendet, am Ende wurde überhaupt nichts gerendert. (I049e2, b/171624632)
  • „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifikator „PaddingFromBaseline“ wurde hinzugefügt, um die Abstände zwischen Layoutgrenzen und Text-Baselines einfacher festlegen zu können. (I0440a, b/170633813)
  • „LaunchedTask“ wurde in „LaunchedEffect“ umbenannt, um für Einheitlichkeit mit den APIs „SideEffect“ und „DisposableEffect“ zu sorgen. „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 zu 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 werden losgelassen. Version 1.0.0-alpha06 enthält diese Commits.

API-Änderungen

  • „androidx.compose.foundation.Icon“ wurde nach „androidx.compose.material.Icon“ verschoben. Sie können auch die Bildkomponente / Modifier.paint() mit einem Painter verwenden, wenn Sie die Materialbibliothek nicht verwenden möchten. (I9f622)
  • Hiermit wird „FloatingActionButtonElevation“ hinzugefügt, um die Höhe von FloatingActionButtons in verschiedenen Status darzustellen. Die Standardimplementierung finden Sie unter FloatingActionButtonConstants.defaultElevation() (I2d4f5).
  • Neue SwitchColors-Oberfläche zur Darstellung von Farben, die von einem Switch in verschiedenen Status verwendet werden. Weitere Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
  • Fügt SchaltflächenElevation und ButtonColors Oberflächen hinzu, um Höhen und Farben darzustellen, die von Schaltflächen in verschiedenen Zuständen verwendet werden. Informationen zum Anpassen dieser Parameter finden Sie in den Standardfunktionen unter „ButtonConstants“. (Ic5b7b)
  • Fügen Sie die Benutzeroberfläche „RadioButtonColors“ hinzu, um Farben darzustellen, die von einem RadioButton in verschiedenen Status verwendet werden. Unter „RadioButtonConstants.defaultColors()“ finden Sie Informationen zum Anpassen der Farben, die in verschiedenen Zuständen verwendet werden. (I74130)
  • Fügt die CheckboxColors-Oberfläche hinzu, um Farben darzustellen, die von einem Kontrollkästchen in verschiedenen Zuständen verwendet werden. Unter CheckboxConstants.defaultColors() können Sie die Farben für die verschiedenen Status anpassen. (I7dbdb)

Fehlerkorrekturen

  • Bei Materialkomponenten wird die Höhe nicht mehr als Z-Index festgelegt. Das bedeutet, dass innerhalb desselben übergeordneten Elements das untergeordnete Element mit der größeren Schattengröße nicht automatisch über dem untergeordneten Element mit dem kleineren Schatten 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 composable API intern „remember“ nutzt, um Daten in Kompositionen zu speichern. (Ifda43)
  • Übergänge in ComposeTestRule aktivieren; Option zum Aktivieren des blinkenden Cursors aus ComposeTestRule entfernen. (If0de3)
  • Einzeilige Tastaturoption für CoreTextField (I72e6d) hinzugefügt
  • Die Radius API wurde in „CornerRadius“ umbenannt, um besser auszudrücken, wie sie in Compose verwendet wird. Die Dokumentation wurde aktualisiert, um anzugeben, dass negative Eckradien auf null begrenzt werden. (I130c7, b/168762961)
  • DrawScope und ContentDrawScope wurden in Schnittstellen anstelle von abstrakten Klassen umgestellt.
    • CanvasDrawScope-Implementierung von DrawScope erstellt
    • Implementierungen von DrawScope wurden überarbeitet, um stattdessen CanvasScope zu verwenden
    • Wir haben DrawContext erstellt, um Abhängigkeiten für DrawScope
    • Nicht mehr unterstützte Methoden in DrawScope entfernt (I56f5e)
  • „Box“ wurde zu einer Inline-Funktion. (Ibce0c, b/155056091)

Version 1.0.0-alpha05

14. Oktober 2020

androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 und androidx.compose.material:material-icons-extended:1.0.0-alpha05 werden losgelassen. 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 die Option hinzugefügt, dies explizit zu konfigurieren (I64966, b/143778148, b/143778149)
  • Modifier.swipeable hat jetzt standardmäßig Grenzwerte von 56 dp für Status (Iab825, b/168610267)
  • Alle Scaffold-Status sind als @Stable gekennzeichnet. „drawerGesturesEnabled“ in ScaffoldState wurde in Scaffold verschoben. (I36645, b/168297016)
  • Der Typ „Nullable“ wird aus den Lambda-Parametern von Scaffold entfernt. Sie können „emptyContent()“ verwenden, um für einen bestimmten Parameter keinen Inhalt anzugeben. (I2b318, b/157633857, b/158551084)
  • Die APIs „contentColor()“ und „currentTextStyle()“ werden eingestellt und durch die Umgebungen „AmbientContentColor“ und „AmbientTextStyle“ ersetzt. Du kannst auf den aktuellen Wert zugreifen, indem du .current wie bei jeder anderen Umgebungs-Property verwendest. Diese Änderung wurde aus Gründen der Einheitlichkeit vorgenommen, um zu vermeiden, dass es mehrere Möglichkeiten gibt, dasselbe zu tun. Außerdem wurden einige Umgebungseigenschaften umbenannt, um ihren Zweck besser zu beschreiben:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Es wurde das Attribut „AmbientElevationOverlay“ hinzugefügt, mit dem das Standard-Ebenen-Overlay für Oberflächen im dunklen Design angepasst oder deaktiviert werden kann. (I5b74d)

Fehlerkorrekturen

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

Version 1.0.0-alpha04

1. Oktober 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 und androidx.compose.material:material-icons-extended:1.0.0-alpha04 werden losgelassen. Version 1.0.0-alpha04 enthält diese Commits.

API-Änderungen

  • Stellt InteractionState-Parameter in zustandsabhängigen Materialkomponenten bereit, um den Status zu heben und zu lesen / steuern. (Iaca5f, b/168025711, b/167164434)
  • Ändert die *color-Parameter für RadioButton und TriStateCheckbox, um die Farben für jeden Status vollständig anzupassen und bei Bedarf die Farbanimation zwischen den Status zu ändern. Weitere Informationen finden Sie in den neuen Farbfunktionen animateDefault* in CheckboxConstants und RadioButtonConstants. (I1c532)
  • „rememberBackdropState“ in „rememberBackdropScaffoldState“ umbenannt und eine zusätzliche Parameter für die Animationsuhr hinzugefügt. Der Parameter „backdropScaffoldState“ von BackdropScaffold wurde in „scaffoldState“ umbenannt. BackdropConstants 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.defaultanimateElevation in defaultElevation um und gibt jetzt einen Dp-Wert anstelle eines animateValue zurück. (I5f3ed)

Fehlerkorrekturen

  • Viele Grafik-APIs wurden aktualisiert.
    • Die APIs für Skalierungs- und Drehtransformationen wurden aktualisiert, sodass jetzt ein einzelner Offset-Parameter für die Drehpunktkoordinate verwendet wird, anstatt separater Gleitkommaparameter für die X-/Y-Koordinaten in DrawScope und DrawTransform.
    • Die Methoden „Rect.expandToInclude“ und „Rect.join“ wurden entfernt.
    • Die Dokumentation zu Radius wurde aktualisiert: Neben dem elliptischen
    • Die Dokumentation wurde um einen Hinweis ergänzt, dass der öffentliche Konstruktor für die Inline-Klasse „Radius“ nicht direkt aufgerufen werden darf, sondern dass Radius-Objekte stattdessen über ihre Funktionskonstruktoren erstellt werden sollten.
    • RoundRect-APIs für die Abfrage von topRight,bottomRight, bottomCenter usw. wurden entfernt.
    • Rect.shift wurde 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 in RoundRect.maxDimension umbenannt
    • „RoundRect.shortestSide“ wurde in „RoundRect.minDimension“ umbenannt
    • RoundRect.center wurde zu einer Eigenschaft anstelle einer Funktion geändert
    • Der RoundRect-Konstruktor verwendet jetzt Radius-Attribute anstelle einzelner Parameter für x/y-Radiuswerte.
    • Entfernte APIs für die Größe, bei denen davon ausgegangen wurde, dass es sich um ein Rechteck mit dem Ursprung bei 0,0 handelt
    • Radius-API zum Löschen von Elementen hinzugefügt
    • Verschiedene Erweiterungsfunktionen für RoundRect 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. Das bisher vorhandene Box wird zugunsten des neuen Box in compose.foundation.layout eingestellt. Das neue Feld stapelt die untergeordneten Elemente übereinander, wenn es mehrere davon hat. Das unterscheidet es vom vorherigen Feld, das sich ähnlich wie eine Spalte verhielt. (I94893, b/167680279)
  • Die Parameter für die Box-Dekoration wurden eingestellt. Wenn Sie Verzierungen oder Ränder für das Feld haben möchten, verwenden Sie stattdessen Modifikatoren (Modifier.background, Modifier.border, Modifier.padding). (Ibae92, b/167680279)
  • Viele Grafik-APIs wurden aktualisiert.
    • Die DrawScope APIs wurden um Transformationsmethoden mit Bereichsangabe erweitert, um anzugeben, dass die Transformation nur innerhalb des Callbacks angewendet und nach dem Aufruf des Callbacks entfernt wird.
    • Die Dokumentation zu „clipPath“ wurde aktualisiert, um statt „rounded rectangle“ auf „Path“ zu verweisen.
    • In der Dokumentation wurde der Abstand für den rechten Parameter in „clipPath“ korrigiert.
    • DrawScope.drawCanvas in drawIntoCanvas umbenannt und Größeparameter entfernt
    • Umbenennung der dx/dy-Parameter in der Inset-Methode in horizontal und vertikal
    • Überladung für „inset“ hinzugefügt, die allen vier Rändern denselben Wert zuweist
    • Die Dokumentation zur Inset-Methode, in der angegeben wurde, dass der Inset auf alle vier Seiten angewendet wird, wurde entfernt.
    • Aktualisierte Dokumentation für die Klasse „Rect“
    • Kommentare zu Rect-Parametern wurden an den KDoc-Stil angepasst
    • Entfernt: Rect.join und Rect.expandToInclude
    • Überladung für Rect.translate(offset) erstellt und Rect.shift eingestellt
    • (If086a, b/167737376)
  • Statische Importe von Inhalten von Layoutbereichen (z.B. „alignWithSiblings“ in „RowScope“) sind nicht mehr möglich. Stattdessen sollte die Alternative mit explizitem Umfang verwendet werden: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Version 1.0.0-alpha03

16. September 2020

androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 und androidx.compose.material:material-icons-extended:1.0.0-alpha03 werden losgelassen. Version 1.0.0-alpha03 enthält diese Commits.

API-Änderungen

  • Der Parameter onSelect von BottomNavigationItem wird in onClick umbenannt (I91925, b/161809324)
  • Fügt einen InteractionState-Parameter zu BottomNavigationItem und Tab hinzu, sodass dieser Zustand angehoben und die Darstellung der Komponente in verschiedenen Zuständen 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“ bzw. „backgroundColor“ bereits explizit festlegen, sollten Sie stattdessen diese Standardfunktionen verwenden und einige/alle Parameter anpassen, um zu vermeiden, dass die Farbe für beide aktivierten/deaktivierten Status überschrieben wird. (If9b52)
  • Die Hintergrundfarbe des Textfelds wird nicht mehr implizit als Alphakanal angewendet. Stattdessen wird jede über den Parameter backgroundColor bereitgestellte Farbe direkt angewendet. (Iecee9, b/167951441)
  • „InnerPadding“ wurde in „PaddingValues“ umbenannt. (I195f1, b/167389171)
  • Die Parameter resistanceFactorAtMin und resistanceFactorAtMax in Modifier.swipeable wurden durch einen einzelnen Widerstandsparameter ersetzt. In SwipeableConstants wurde eine neue defaultResistanceConfig-Methode hinzugefügt. (I54238)
  • Unterstützung für animierte zustandsabhängige Erhöhung für Schaltflächen und FloatingActionButton hinzugefügt. Die Höhe wird jetzt zwischen dem Standard- und dem gedrückten Zustand animiert. Verwenden Sie zum Anpassen der Höhe zwischen Bundesstaaten ButtonConstants.defaultAnimatedElevation() und FloatingActionButtonConstants.defaultAnimatedElevation(), anstatt in allen Fällen einen flachen Dp-Wert festzulegen. (I37925)
  • „Label“ ist jetzt ein optionaler Parameter in „TextField“ und „OutlinedTextField“ (I267f6, b/162234081)

Fehlerkorrekturen

  • Globale Testfunktionen wie onNode oder waitForIdle werden nicht mehr unterstützt. Bitte migrieren Sie zu den neuen Funktionen, die in ComposeTestRule (I7f45a) definiert sind.
  • DpConstraints und APIs, die sie verwenden, wurden eingestellt. (I90cdb, b/167389835)
  • Die Parameter „minWidth“ und „maxWidth“ von „widthIn“ wurden in „min“ und „max“ umbenannt. Gleiches gilt für „preferredWidthIn“, „heightIn“ und „preferredHeightIn“. (I0e5e1, b/167389544)
  • Semantikaktionen zum Vor- und Zurückscrollen wurden entfernt. Es wurden Schritte zu „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 zu ComposeTestRule hinzugefügt, da die aktuellen globalen Methoden nicht mehr unterstützt 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 werden losgelassen. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

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

Fehlerkorrekturen

  • Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des Pakets „vectormath“ 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 werden losgelassen. Version 1.0.0-alpha01 enthält diese Commits.

Bekanntes Problem

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

Version 0.1.0-dev

Version 0.1.0-dev17

19. August 2020

androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 und androidx.compose.material:material-icons-extended:0.1.0-dev17 werden losgelassen. Version 0.1.0-dev17 enthält diese Commits.

API-Änderungen

  • Die zuvor verworfenen Elemente „RadioGroup“ und „RadioGroupItems“ wurden entfernt. Verwenden Sie stattdessen „Zeile“ und „Radioschaltfläche“ (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 Datenklasse „Border“ wurde durch „BorderStroke“ ersetzt (I4257d, b/158160576)
  • Einige Eigenschaften in „SwipeableState“ wurden umbenannt: „swipeTarget“ in „targetValue“, „swipeProgress“ in „progress“ und „swipeDirection“ in „direction“. Die Funktion „rememberSwipeableState“ zum Erstellen von SwipeableStates wurde hinzugefügt. (I2fc9c, b/163129614, b/163132293)
  • Die Unterstützung von Snackbars mit Positionierung und korrekter Warteschlangenverwaltung wurde hinzugefügt. Auf sie kann über die SnackbarHostState.showSnackbar-Aussetzungsfunktion zugegriffen werden. Außerdem gilt:
    • Die Komponenten „SnackbarHost“ wurden hinzugefügt. Er beherbergt Snackbars basierend auf dem Status und ist für den Übergang zwischen den Snackbars verantwortlich.
    • „SnackbarHostState“ wurde hinzugefügt, um die Steuerung von Snackbars und Snackbar-Hosts zu ermöglichen und sie vom „ScaffoldState“ zu entkoppeln. Sie können auch über scaffoldState.snackbarHostState auf diesen Status zugreifen.
    • Die Snackbar-Überlastung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen SnackbarHostState und Snackbars selbst zu unterstützen. (I79aaa)
  • Dem Symbolschalter wird der Parameter „enabled“ hinzugefügt und die Parameter in der Symbol-Ein/Aus-Schaltfläche werden neu angeordnet (I0a941, b/161809385, b/161807956)
  • Die ListItem-Version mit der stringbasierten API wurde entfernt. Verwenden Sie stattdessen die Slot-Version. (Ib8f57, b/161804681)
  • Die veraltete 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. Parameter „[min/max]Value“ entfernt. (I93d98)
  • Dem LinearProgressIndicator wurde der Parameter „backgroundColor“ hinzugefügt und das interne Padding von CircularProgressIndicator entfernt. Neue ProgressIndicatorConstants.DefaultProgressAnimationSpec hinzugefügt, die als Standard-AnimationSpec beim Animieren des Fortschritts zwischen Werten verwendet werden kann (If38b5, b/161809914, b/161804677)
  • Dem Modifier „swipeable“ wurde der optionale Parameter „velocityThreshold“ hinzugefügt. (I698ba)
  • bottomBarSize, fabSize und andere sind in ScaffoldState nicht mehr verfügbar. Verwenden Sie stattdessen Modifier.onPosition für die Komponente, deren Größe Sie wissen möchten. contentColor und Modifier-Pamatere wurden Scaffold hinzugefügt (Ic6f7b, b/161811485, b/157174382).
  • Einige Parameter auf dem Tab wurden umbenannt und neu angeordnet, um für Konsistenz mit anderen APIs zu sorgen (Ia2d12, b/161807532)
  • Teilt TabRow in TabRow und ScrollableTabRow auf und entfernt isScrollable aus TabRow. Außerdem wird „edgePadding“ in ScrollableTabRow freigegeben, mit dem sich der kostenlose Raum vor und nach den Tabs steuern lässt. (I583e8, b/161809544)
  • Das TabRow-Objekt wurde entfernt und durch „TabConstants“ ersetzt. „TabRow.TabPosition“ wurde auf die oberste Ebene (TabPosition) verschoben und „indicatorContainer“ in „indicator“ umbenannt. Ausführliche Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen finden Sie in den Beispielen und der Dokumentation. (I54d45, b/161809544)
  • Der Schwellenwertparameter in Modifier.swipeable wurde optimiert. Er nimmt jetzt ein Statuspaar (vom Typ T) an und gibt den Schwellenwert zwischen ihnen in Form einer ThresholdConfig zurück. SwipeToDismiss wurde die Parameter dismissThresholds hinzugefügt, ein Lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Der Schieberegler hat mehr Farben für eine detaillierte Anpassung (I73e64, b/161810475)
  • Der Parameter „color“ der Karte wurde in „backgroundColor“ umbenannt (I01fc1, b/161809546)
  • Die Hintergrund- und Inhaltsfarben der Snackbar können jetzt angepasst werden (I238f2, b/161804381)
  • Die Anpassungsparameter „modifier“, „backgroundColor“, „contentColor“ und „scrimColor“ wurden zu Ausblendungsleisten hinzugefügt (I23655, b/161804378)
  • Die state { ... }-Komponente wird jetzt zugunsten expliziter Aufrufe von remember { mutableStateOf(...) } eingestellt. Dadurch wird die API-Oberfläche insgesamt und die Anzahl der Konzepte für die Zustandsverwaltung reduziert. Außerdem entspricht dies dem by mutableStateOf()-Muster für die Delegation von Klasseneigenschaften. (Ia5727)
  • Der Parameter „padding“ der Schaltfläche wurde in „contentPadding“ umbenannt (Id252e, b/161809394)
  • Die experimentelle Materialkomponente „SwipeToDismiss“ hinzufügen (I129e5)

Fehlerkorrekturen

  • onChildPositioned und OnChildPositionedModifier wurden entfernt. Entwickler sollten stattdessen onPositioned und OnPositionedModifier im untergeordneten Layout verwenden. (I4522e, b/162109766)
  • Dem SemanticsPropertyKey wurde die Lambda-Funktion „mergePolicy“ hinzugefügt. So können Sie eine benutzerdefinierte Richtlinie für die Zusammenführung von mergeAllDescendants-Semantiken definieren. Standardmäßig wird der übergeordnete Wert verwendet, sofern vorhanden. Andernfalls wird der untergeordnete Wert verwendet. (Iaf6c4, b/161979921)
  • IntSize ist jetzt eine Inline-Klasse (I2bf42).
  • PlacementScope.placeAbsolute() wurde in PlacementScope.place() umbenannt und das vorherige PlacementScope.place() in PlacementScope.placeRelative(). Daher wird die Position in Kontexten, in denen von rechts nach links geschrieben wird, mit der PlacementScope.place()-Methode nicht mehr automatisch gespiegelt. Verwenden Sie stattdessen PlacementScope.placeRelative(). (I873ac, b/162916675)
  • „PxBounds“ wurde zugunsten von „Rect“ eingestellt. Alle Verwendungen von PxBounds wurden durch „rect“ ersetzt und entsprechende Anmerkungen zur Einstellung/Ersetzung wurden hinzugefügt, um die Migration zu erleichtern. (I37038, b/162627058)
  • RRect in RoundRect umbenannt, um besser zu den Benennungsmustern von Compose zu passen. Ähnliche Funktionskonstruktoren wie RRect erstellt und RRect-Funktionskonstruktoren eingestellt (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 werden losgelassen. 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, ähnlich wie MaterialTheme intern funktioniert. (Ibae84)
  • „ColorPalette“ wurde in „Colors“ umbenannt, um eine bessere Zuordnung zum Material-Farbsystem zu ermöglichen und Verwirrung darüber zu vermeiden, dass „ColorPalette“ ein generisches Designobjekt 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 gemäß den Richtlinien. (Icb605, b/161809324)
  • Modifier.stateDraggable wurde komplett überarbeitet und in „Modifier.swipeable“ umbenannt. Es wurde eine neue Klasse „SwipeableState“ eingeführt und „DrawerState“ und „BottomDrawerState“ wurden so umgestellt, dass sie von dieser Klasse erben. [Modal/Bottom]DrawerLayout akzeptiert keinen Parameter „onStateChange“ mehr. (I72332, b/148023068)
  • Das Paket „foundation.shape.corner“ wurde zu „foundation.share“ zusammengeführt (I46491, b/161887429)
  • Anmerkung „ExperimentalMaterialApi“ hinzugefügt. RippleTheme als experimentell gekennzeichnet (Ic5fa0, b/161784800)
  • „Material FilledTextField“ wurde in „TextField“ umbenannt und „foundational TextField“ in „BaseTextField“, damit die einfachste gewünschte API leicht zu finden und zu verwenden ist (Ia6242, b/155482676)

Fehlerkorrekturen

  • „OnChildPositioned“ wurde eingestellt. Verwenden Sie stattdessen „OnPositioned“ auf dem untergeordneten Element. (I87f95, b/162109766)
  • Allgemeine API-Fehler behoben (I077bc)
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Align Offset and IntOffset classes to have a consistent API surface
    3. Benennen Sie IntOffset.Origin in IntOffset.Zero um, um mit der Offset API konsistent zu sein.
    4. Die nativeCanvas-Methode wurde aus der Canvas-Benutzeroberfläche entfernt, damit Nutzer ihre eigenen Canvas-Instanzen erstellen können.
    5. Die Stub-Klasse „EmptyCanvas“ wurde erstellt, um „DrawScope“ zu einem nicht nullwertigen Parameter anstelle eines lateinit-Parameters umzuwandeln und dafür zu sorgen, dass das Feld nicht null sein darf.
    6. ClipOp-Enum-Typen in Pascal-Case umbenannt
    7. Die Filterqualitätsenumer wurden in Pascal-Schriftart umbenannt.
    8. Die StrokeJoin-Enume wurden in Pascal Case umbenannt.
    9. PointMode-Enums wurden in Pascal Case umbenannt
    10. Die Enum-Typen „PaintingStyle“ wurden in Pascal Case umbenannt.
    11. Die Aufzählungen vom Typ „PathFillType“ wurden in Pascal-Schreibweise umbenannt.
    12. StrokeCap-Enumerierungen in Pascal-Case umbenannt
    13. Die DrawCache-Implementierung wurde aktualisiert, sodass lateinit-Parameter nicht mehr verwendet werden.
    14. DrawScope wurde aktualisiert, sodass für die internen Parameter „fillPaint“ und „strokePaint“ nicht mehr die lazy Delegation verwendet wird.
    15. Die Bildkomposition wurde aktualisiert, um die Nutzung von Box zu vermeiden und den Overhead zu reduzieren.
    16. Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
    17. PathNode wurde aktualisiert, um @Immutable-Anmerkungen für jede Pfadanweisung zu haben.
    18. Die Vektor-Unterkomposition wurde aktualisiert, um redundante bedingte Gleichheitsprüfungen zu entfernen, da diese bereits von „compose“ verarbeitet werden.
    19. Die Konstruktormethoden für Rect-Begleiter wurden zugunsten von Funktionskonstruktoren eingestellt.
    20. Aktualisierte Pinselklassen und Funktionskonstruktoren mit @Immutable- und @Stable-APIs
    21. VertexMode-Enum auf PascalCase umgestellt
    22. Die DrawScope-Methode „selectPaint“ wurde aktualisiert, um Strichparameter für die Farbe bedingt zu überschreiben, wenn sie sich geändert haben.
    23. Wir haben die Größe aktualisiert, um eine destruktive API hinzuzufügen, „UnspecificSize“ in „Nicht angegeben“ umbenannt und nicht verwendete Methoden entfernt
  • Dialogfeld in die Benutzeroberfläche verschieben (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture wurde entfernt. Verwenden Sie stattdessen SemanticsNodeInteraction.performGesture. (Id9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() in SemanticsNodeInteraction.getUnclippedBoundsInRoot() umbenannt (Icafdf, b/161336532)
  • Die APIs für die Unterstützung von rechts nach links wurden aktualisiert. Die Variable „LayoutDirectionAmbient“ wurde hinzugefügt. Mit ihr kann die Layoutrichtung gelesen und geändert werden. Modifier.rtl und Modifier.ltr wurden entfernt. (I080b3)
  • „Modifier.determineProgress“ wurde in „Modifier.progressSemantics“ umbenannt (I9c0b4)
  • Aktualisierung von „material-icons-extended“ mit den neuesten Symbolen, die Material.io/icons hinzugefügt wurden (I4b1d3)
  • Der Typ „T“ muss für „transitionDefinition“ explizit angegeben werden. (I1aded)
  • Modifier.plus wurde eingestellt. Verwenden Sie stattdessen Modifier.then. „Dann“ ist ein stärkeres Signal für die Reihenfolge und verhindert gleichzeitig das Eintippen von Modifier.padding().background() + anotherModifier, was die Abfolge unterbricht und die Lesbarkeit erschwert (Iedd58, b/161529964)
  • AndroidComposeTestRule in createAndroidComposeRule umbenannt (I70aaf)
  • Fügen Sie SemanticsMatcher „isFocused()“ und „isNotFocused()“ hinzu. (I0b760)
  • BaseGestureScope.globalBounds wurde entfernt, das nicht für Tests verwendet werden sollte. Verwenden Sie stattdessen Koordinaten, die lokal zum Knoten gehören, mit dem Sie interagieren. (Ie9b08)
  • Feste Pop-up-Position auf Displays mit Aussparung (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 werden losgelassen. 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 verworfen. Verwenden Sie „state“ und „mutableStateOf“ als Alternativen. Diese Entscheidung wurde nach sorgfältiger Prüfung getroffen.

    Begründung

    Dazu gehören unter anderem:

    • Reduziert die API-Oberfläche und die Konzepte, die wir vermitteln müssen
    • Entspricht eher anderen vergleichbaren Toolkits (Swift UI, React, Flutter)
    • Reversible Entscheidung. @Model können wir später jederzeit wieder einführen.
    • Vermeidet Grenzfälle und schwierig zu beantwortende Fragen zur Konfiguration von @Model als Aufgaben, die wir übernehmen müssen.
    • @Model-Datenklassen, equals, Hash-Code usw.
    • Wie kann ich festlegen, dass einige Properties „beobachtet“ und andere nicht werden?
    • Wie lege ich fest, ob strukturelle und referenzielle Gleichheit in der Beobachtung verwendet werden soll?
    • Reduziert die „Magie“ im System. Dies verringert die Wahrscheinlichkeit, dass jemand annimmt, dass das System intelligenter ist als es ist (z. B. dass es weiß, wie eine Liste verglichen wird).
    • Ermöglicht eine intuitivere Detaillierung der Beobachtungen.
    • Verbesserte Umstellung von Variablen zu Eigenschaften in Klassen
    • Ermöglicht möglicherweise manuelle, bundeslandspezifische Optimierungen
    • Passt besser zum Rest des Ökosystems und reduziert die Ambiguität in Bezug auf unveränderliche oder uns „veränderliche Zustand“.

    Migrationshinweise

    Fast alle vorhandenen Verwendungen von @Model können auf eine von zwei Arten relativ einfach umgewandelt werden. Das folgende Beispiel hat eine @Model-Klasse mit zwei Attributen, die nur für dieses Beispiel genutzt werden, und 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,
        p.x = it }
        p.y = it }
     )
    }
    

    Alternative 1: State<OriginalClass> verwenden und Kopien erstellen

    Dieser Ansatz wird durch die Datenklassen von Kotlin vereinfacht. Erstellen Sie im Grunde alle zuvor var-Properties als val-Properties einer Datenklasse, verwenden Sie dann state anstelle von remember und weisen Sie den Statuswert mithilfe der copy(...)-Methode der Datenklasse den geklonten Kopien des Originals zu.

    Beachten Sie, dass dieser Ansatz nur funktioniert, wenn die einzigen Mutationen an dieser Klasse im selben Bereich wie die State-Instanz vorgenommen wurden. Wenn sich die Klasse intern außerhalb des Anwendungsbereichs ändert und Sie sich auf diese Beobachtung verlassen, ist der nächste Ansatz der richtige Ansatz, den Sie verwenden werden.

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

    Alternative 2: „MadableStateOf“ und Property-Bevollmächtigte verwenden

    Dieser Ansatz wird mit den Property Delegaten von Kotlin und der mutableStateOf API vereinfacht, mit der Sie MutableState-Instanzen außerhalb der Komposition erstellen können. Ersetzen Sie im Wesentlichen alle var-Attribute der ursprünglichen Klasse durch var-Attribute mit mutableStateOf als Property-Delegaten. Das hat den Vorteil, dass sich die Verwendung der Klasse nicht ändert, sondern nur die interne Implementierung. Das Verhalten ist jedoch nicht vollständig mit dem ursprünglichen Beispiel identisch, da jede Property jetzt einzeln beobachtet und abonniert wird. Die Neuzusammensetzungen, die Sie nach dieser Umstrukturierung sehen, können also eingeschränkter sein (was gut ist).

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

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)

  • Der Rückruf „onFocusChange“ in Textfeldern wurde in „onFocusChanged“ umbenannt (Ida4a1)

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

  • Die zuvor eingestellte Option „Modifier.ripple“ wurde entfernt. Bei „Clickable“ wird jetzt die Ripple-Funktion als Standardhinweis verwendet (sofern in Ihrer Anwendung ein MaterialTheme {} festgelegt ist). In den meisten Fällen können Sie also einfach „Clickable“ verwenden und erhalten die Ripple-Funktion kostenlos. Wenn Sie den Parameter color / size / bounded für die Verbreitung anpassen müssen, können Sie manuell eine RippleIndication erstellen und als Indication-Parameter an anklickbar übergeben. (I663b2, b/155375067)

  • Veraltete Override für das FilledTextField-Kompositelement entfernt (I7f8f8)

  • Button-Objekt (enthält die Standardwerte, die von der Button-Funktion verwendet werden) in „ButtonConstants“ umbenennen (I7c5f7, b/159687878)

  • Die Inhaltsfläche der Schaltfläche verhält sich jetzt wie eine Zeile. Das ist nützlich, wenn Sie ein Symbol mit einem Text benötigen, siehe Beispiele zum Schreiben der Schaltfläche. (I0ff10, b/158677863)

  • RadioGroup und RadioGroupItem wurden eingestellt. Verwenden Sie das Feld mit Modifier.selectable, Row und Column, um die richtigen Optionsfelder für Ihr Design auszuwählen (I7f5cf, b/149528535)

  • Textfeld mit Umriss (I1a518) hinzugefügt

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

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

  • IntPx wurde durch Int ersetzt. IntPxPosition wurde durch IntOffset ersetzt. IntPxSize durch IntSize ersetzt (Ib7b44)

  • Um die Anzahl der Klassen zur Darstellung von Größeninformationen zu konsolidieren, sollten Sie die Verwendung der Klasse "Size" anstelle von "PxSize" standardisieren. Dies bietet die Vorteile einer Inline-Klasse, bei der ein Long-Wert verwendet wird, um zwei Float-Werte für Breite und Höhe zu verpacken. (Ic0191)

  • Modifier.ripple wird eingestellt. Bei „Clickable“ wird jetzt die Ripple-Funktion als Standardhinweis verwendet (sofern in Ihrer Anwendung ein MaterialTheme {} festgelegt ist). In den meisten Fällen können Sie also einfach „Clickable“ verwenden und erhalten die Ripple-Funktion kostenlos. Wenn Sie den Parameter „Farbe“, „Größe“ oder „Begrenzt“ für die Ripple-Animation anpassen möchten, können Sie eine Ripple-Anzeige manuell erstellen und als Parameter „Anzeige“ an „klickbar“ übergeben. (I101cd, b/155375067)

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

  • Die Komponente "Dropdown-Menü" wurde zu UI-Material hinzugefügt, einer Implementierung des Menüs Material Design. (I9bb3d)

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

  • Modifier.indication wurde dem Foundation-Paket hinzugefügt. Mit diesem Attribut können Sie eine entsprechende Anzeige für Ihre benutzerdefinierten interaktiven Elemente einblenden (I8425f, b/155287131).

  • CanvasScope-Implementierungen wurden konsolidiert. Es gibt jetzt nur noch DrawScope und ContentDrawScope. DrawScope wurde aktualisiert, um die Density-Oberfläche zu implementieren und LayoutDirection bereitzustellen. Die DrawScope-Unterklasse in ContentDrawScope wurde entfernt. Painter und PainterModifier wurden aktualisiert, damit sie keine RTL-Eigenschaft mehr selbst verwalten, da DrawScope diese bereits ohne manuelle Angabe bereitstellt (I1798e)

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

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

  • Für „FilledTextField“ werden IME-Aktionen, visuelle Transformationen und Tastaturtypen unterstützt (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)

  • Fügt dem CircularProgressIndicator den Parameter „strokeWidth“ hinzu, um die Strichgröße 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 im FilledTextField und Fehlerstatus hinzugefügt (Ic12e0)

  • Die Standardfarbe des Floating Action Buttons und des erweiterten Floating Action Buttons wurde in „MaterialTheme.colors.secondary“ geändert. (I3b9b9, b/154118816)

  • Alle nullablen Farbverwendungen in der API wurden durch nicht nullable ersetzt und Color.Unset wird anstelle von null verwendet (Iabaa7)

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

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

  • StaticDrawer wurde entfernt. Verwenden Sie stattdessen bei Bedarf ein Rechteck mit einer vom Material vorgegebenen Breite (I244a7).

  • Material Design-Implementierung für ausgefülltes Textfeld hinzugefügt (Ic75cd)

  • Dem Listenelement wurde ein Modifikatorparameter hinzugefügt und die Parameter wurden neu angeordnet, um den nachfolgenden Lambda-Body zu priorisieren (I66e21)

  • Fügen Sie der Typografie den Konstruktorparameter „defaultFontFamily“ hinzu, um die Standardschriftfamilie anzugeben, die für alle bereitgestellten Textstile verwendet wird, für die keine Familie festgelegt ist. (I89d07)

  • Materialdatentabellen wurden vorübergehend aus der API-Oberfläche entfernt. (Iaea61)

  • Umbenannte Parameter in der zusammensetzbaren Trennlinie (Ic4373)

  • children (Ia6d19)

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

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

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

  • Die FloatingActionButton APIs wurden so umgestaltet, dass sie zusammensetzbare Lambdas anstelle von primitiven Funktionen akzeptieren. Informationen zur Nutzung finden Sie in den aktualisierten Beispielen. (I00622)

  • enabled-Parameter zu Kästchen, Schaltern und Ein-/Aus-Schaltflächen hinzufügen (I41c16)

  • „Ripple“ ist jetzt ein Modifikator. „Clickable“ wird noch nicht konvertiert. Die empfohlene Verwendung ist Clickable( ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763).

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

  • Für „Button“, „FloatingActionButton“ und „Clickable“ gibt es jetzt eine separate enabled-Paramter. Einige der Parameter für die Schaltfläche wurden umbenannt oder neu angeordnet. (I54b5a)

  • Umbenennung von Bild in ImageAsset, um den Unterschied zwischen den Bilddaten und der zukünftigen zusammensetzbaren Funktion für das Layout und die Zeichnungen besser zu unterscheiden _Body:Erweiterungsmethode für android.graphics.Bitmap, Bitmap.asImageAsset(), erstellt, um eine Instanz eines ImageAssets zu erstellen, die sich für die Kombination traditioneller Android-Anwendungsentwicklung mit dem Compose-Framework eignet (Id5bbd)

  • Die Snackbar API mit Stringparametern wurde entfernt. Stattdessen wird die Überladung verwendet, die zusammensetzbare Lambdas akzeptiert. Aktualisierte Samples mit Informationen zur Verwendung ansehen (I55f80)

  • Tab-APIs wurden so umgestellt, dass sie text- und icon-Lambdas akzeptieren (Ia057e)

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

  • Die Symbole „Icon“, „IconButton“ und „IconToggleButton“ wurden hinzugefügt und „AppBarIcon“ entfernt. Sie können bestehende Verwendungen von AppBarIcon direkt durch IconButton ersetzen, sodass sie jetzt das richtige Touch-Ziel haben. In den Beispielen finden Sie Informationen zur Verwendung. Unter „Symbole“ finden Sie die bereitgestellten Material Icons, die Sie direkt mit diesen Komponenten verwenden können. (I96849)

  • ButtonStyle wurde durch separate Funktionen ersetzt und die Textüberladung (String) wurde entfernt. Nutzungsinformationen finden Sie in den aktualisierten Beispielen. (If63ab, b/146478620, b/146482131)

  • Border-Modifikator in DrawBorder umbenennen (I8ffcc)

  • LayoutCoordinates hat keine Positionseigenschaft mehr. Die Positionseigenschaft ist in Bezug auf LayoutModifier, Rotation oder Skalierung nicht sinnvoll. Stattdessen sollten Entwickler die Umwandlung von LayoutCoordinates in ein anderes mit „parentCoordinates“ und „childToLocal()“ verwenden.

    Bei „LayoutCoordinates“ wird für die Größe die Property „IntPxSize“ anstelle von „PxSize“ verwendet. Layouts verwenden ganzzahlige Pixelgrößen für Layouts. Daher sollten alle Layoutgrößen Ganzzahlen und keine Gleitkommawerte verwenden. (I9367b)

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

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

  • „DrawBorder“ durch „Border Modifier“ ersetzt (Id335a)

Fehlerkorrekturen

  • FocusModifier wird zugunsten von Modifier.focus, Modifier.focusRequester und Modifier.focusObserver eingestellt. „FocusState“ und „FocusDetailedState“ werden zugunsten von „FocusState2“ eingestellt (I46919, b/160822875, b/160922136)
  • VerticalScroller und HoriziontalScroller 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 für das Scrollen erforderliche Status wurde vereinfacht. ScrollableState wurde in ScrollableController umbenannt (Iab63c, b/149460415)
  • runOnIdleCompose in runOnIdle umbenannt (I83607)
  • Für Properties mit Einzelwertsemantik wird jetzt ein Aufrufstil verwendet. Beispiel: Semantik {hidden = true } wird jetzt so geschrieben: Semantik {hidden()}. (Ic1afd, b/145951226, b/145955412).
  • Mehrere Test-APIs wurden umbenannt, um die Intuitivität zu verbessern. Alle findenXYZ APIs wurden in onNodeXYZ umbenannt. Alle APIs vom Typ „doXYZ“ wurden in „performXYZ“ umbenannt. (I7f164)
  • Die Transition API wurde geändert, sodass jetzt ein TransitionState zurückgegeben wird, anstatt den TransitionState an untergeordnete Elemente weiterzuleiten. Dadurch ist die API einheitlicher mit den animate()-APIs. (I24e38)
  • Die Einheitsklasse „IntBounds“ wurde hinzugefügt. Sie stellt Ganzzahlgrenzen in Pixeln aus dem Layout dar. Die API von PopupPositionProvider wurde für die Verwendung aktualisiert. (I0d8d0, b/159596546)
  • Für Test-Finder wurde ein neues optionales Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
  • Veraltete APIs für die Größenprüfung wurden entfernt. (Iba0a0)
  • Die Shader-Inline-Klasse, mit der die NativeShader-Erwartungsklasse umschlossen wurde, wurde in "Shader" umbenannt. Die eingebundene Shader-Inline-Klasse hat der API-Oberfläche keine wertvollen Informationen hinzugefügt und war eine Inline-Klasse. Verwenden Sie die NativeShader-Klasse daher direkt. (I25e4d)
  • Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485)
  • Material-Drop-down-Menüs sind jetzt scrollbar. (Ide699)
  • Der Layout-Richtungsparameter wurde aus dem Messblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch im Callback über das Objekt „Measure Scope“ (Ic7d9d) verfügbar.
  • In den APIs der obersten Ebene wird jetzt „AnimationSpec“ anstelle von „AnimationBuilder“ verwendet, um das Konzept der statischen Animationsspezifikation zu verdeutlichen. Stattdessen werden die Parameter des Konstruktors direkt übernommen. – Verbesserte Nutzerfreundlichkeit von AnimationSpec durch die Öffnung von Konstruktoren anstelle der Verwendung von Buildern (Ica0b4)
  • Der Schalter wird jetzt als deaktiviert angezeigt, wenn enabled auf „falsch“ gesetzt ist (If4624, b/155941869, b/159331694)
  • „Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um Verwechslungen mit „Modifier.testTag“ zu vermeiden. (I995f0)
  • Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungszeile sind jetzt nicht null. Wenn die abgefragte Ausrichtungslinie fehlt, wird „AlignmentLine.Unspecified“ zurückgegeben. (I896c5, b/158134875)
  • Die Radius-Klasse wurde in eine Inline-Klasse umgestellt. Die Methoden zum Erstellen von Zusatzfunktionen wurden entfernt und durch einen Funktionskonstruktor mit Standardparameter ersetzt, damit der Radius entlang der Y-Achse mit dem obligatorischen Radiusparameter der X-Achse übereinstimmt.

    DrawScope.drawRoundRect wurde aktualisiert, sodass jetzt ein einzelner Radiusparameter anstelle von zwei separaten Floatwerten für den Radius entlang der X- und Y-Achse verwendet wird (I46d1b)

  • Um die Anzahl der Klassen zu reduzieren, die zur Darstellung von Positionierungsinformationen verwendet werden, sollten Sie stattdessen die Klasse „Offset“ verwenden. Dies bietet die Vorteile einer Inline-Klasse, um mit einem Long-Wert zwei Gleitkommawerte zu verpacken, die X- und Y-Achsenabweichungen als Gleitkommawerte darstellen. (I3ad98)

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

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

  • Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorisierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (I086f4)

  • Die Verwendung der Px-Klasse in verschiedenen Compose-Klassen wurde im Rahmen der umfangreichen Refactoring-Bemühungen durch Dp- und primitive Typen für Pixelparameter ersetzt (Id3434)

  • Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorisierung ersetzt, sodass nur noch Dp- und primitive Typen für Pixelparameter verwendet werden (I97a5a)

  • Behoben: onClick wurde für Drop-down-Menüpunkte nicht aufgerufen. (I3998b, b/157673259)

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

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

  • Der Cursor von TextField blinkt (Id10a7).

  • Die Verwendung der Px-Klasse in verschiedenen Zusammensetzungsklassen wurde im Rahmen der umfangreichen Refaktorierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (I19d02)

  • VerticalScroller stellt jetzt „Column“ (Spalte) jetzt standardmäßig zur Verfügung. HorizontalScroller bietet jetzt standardmäßig die Option „Zeile“. (Ieca5d, b/157020670)

  • Die Verwendung der Px-Klasse in verschiedenen zusammengesetzten Klassen wurde im Rahmen der umfangreichen Refaktorierung ersetzt, um nur noch Dp- und primitive Typen für Pixelparameter zu verwenden (Iede0b)

  • Modifier.semantics wurde nicht mehr als veraltet eingestuft, um die Verwendung für allgemeine Komponenten zu ermöglichen. (I4cfdc)

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

  • Zusammenstellende APIs der höheren Ebene, die einen Canvas bereitstellen, wurden aktualisiert, um stattdessen CanvasScope bereitzustellen. So müssen Nutzer keine eigenen Paint-Objekte mehr verwalten. Nutzer, die weiterhin Zugriff auf ein Canvas benötigen, können die Erweiterungsmethode „drawCanvas“ verwenden. Diese bietet einen Rückruf, um Zeichenbefehle für das zugrunde liegende Canvas auszugeben. (I80afd)

  • Das composable-Element „AlignmentLineOffset“ wurde eingestellt. Verwenden Sie stattdessen den Modifikator „relativePaddingFrom()“. Das composable-Element „CenterAlignmentLine“ wurde entfernt. (I60107)

  • Die API für die abschließende Lambda-Funktion „WithConstraints“ wurde geändert. Anstelle von zwei Parametern hat es jetzt einen Empfängerbereich, der zusätzlich zu „constraints“ und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in Dp bietet (I91b9a, b/149979702)

  • Der Layout-Modifikator „defaultMinSizeConstraints“ wurde hinzugefügt. Damit werden Größenbeschränkungen für das umgebrochene Layout nur dann festgelegt, wenn die entsprechenden eingehenden Einschränkungen nicht angegeben sind (0 für Mindesteinschränkungen und unendlich für Höchsteinschränkungen). (I311ea, b/150460257)

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

  • CanvasScope API erstellt, die ein Canvas-Objekt umschließt, um eine zustandslose, deklarative API-Oberfläche für die Zeichnung bereitzustellen Transformationen sind auf ihren eigenen Empfängerbereich beschränkt und die Informationen zur Größe beziehen sich ebenfalls auf die entsprechenden Einblendungsgrenzen. Der Nutzer muss kein eigenes Paint-Statusobjekt zum Konfigurieren von Zeichenvorgängen verwalten.

    CanvasScopeSample hinzugefügt und die Demo-App um eine deklarative Grafikdemo (Ifd86d) erweitert

  • Anpassung der Cursorfarbe für das Textfeld (I6e33f)

  • TextFieldValue, der mit TextField verwendet wird, kann jetzt in folgenden Fällen nach Aktivitäten verwendet werden: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • LayoutModifier2 in LayoutModifier umbenannt (Id29f3)

  • Die verworfene 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 Empfänger für „IntrinsicMeasureScope“, der die intrinsische Abfrage-API mit implizit weitergegebener Layoutrichtung bereitstellt. (ID9945)

  • Die neue Funktion „Modifier.zIndex()“ steuert die Zeichnungsreihenfolge der untergeordneten Elemente im selben übergeordneten Layout. Die Property „elevation“ von „DrawLayerModifier“ wurde in „shadowElevation“ umbenannt und steuert nicht mehr die Zeichnungsreihenfolge. Die Reihenfolge der Parameter in DrawShadow wurde geändert: Die Höhe ist jetzt die erste und die Form ist die zweite. Die Standardform lautet RectangleShape. (I20150, b/152417501)

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

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

  • Den Parametern „verticalGravity“ und „horizontalGravity“ wurden die Optionen „Zeile“ und „Spalte“ hinzugefügt. (I7dc5a)

  • „wrapContentWidth“ und „wrapContentHeight“ wurden aktualisiert, damit eine vertikale oder horizontale Ausrichtung erwartet wird. Der Gravitationsmodifikator wurde aktualisiert, um eine vertikale oder horizontale Ausrichtung zuzulassen. Zeilen, Spalten und Stapel wurden aktualisiert, um benutzerdefinierte fortlaufende Ausrichtungen zu unterstützen. (Ib0728)

  • Die PixelMap API wurde erstellt, um Pixelinformationen aus einem ImageAsset abzufragen. (I69ad6)

  • Entfernt ProvideContentColor, verwende stattdessen ContentColorAmbient direkt mit Providers (Iee942)

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

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

  • Die ui-framework/CoreText- und CoreTextField-Kompositen wurden in ui-text-compose verschoben. Sie können ui-text-compose in Ihr Projekt aufnehmen. (I32042)

  • Verbesserungen an der DrawModifier API:

    • Der Empfängerbereich für draw() wurde zu ContentDrawScope geändert.
    • Alle Parameter fürdraw() wurden entfernt.
    • DrawScope hat dieselbe Oberfläche wie das bisherige CanvasScope
    • ContentDrawScope verfügt über die Methode „drawContent()“ (Ibaced, b/152919067).
  • runOnIdleCompose und runOnUiThread sind jetzt globale Funktionen anstelle von Methoden in ComposeTestRule. (Icbe8f)

  • [Veränderlich]Operatoren für die Deklaration von Statuseigenschaften wurden in Erweiterungen verschoben, um die Optimierung von Property Delegate-Funktionen in Kotlin 1.4 zu unterstützen. Aufrufer müssen Importe hinzufügen, um by state { ... } oder by mutableStateOf(...) weiterhin verwenden zu können. (I5312c)

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

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

  • „LayoutResult“ in „MeasureResult“ umbenannt. (Id8c68)

  • LayoutModifier2 wurde hinzugefügt, eine neue API zum Definieren von Layoutmodifikatoren. LayoutModifier wurde eingestellt (If32ac)

  • Der Modifikator-Plus-Operator wurde durch Funktionen der werkseitigen Erweiterung ersetzt (I225e4)

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

  • Das composable-Element „ParentData“ wird nicht mehr unterstützt. Sie sollten entweder einen Modifikator erstellen, der die ParentDataModifier-Schnittstelle implementiert, oder den LayoutTag-Modifikator verwenden, wenn Sie einfach Layout-Kinder taggen müssen, damit sie im Messblock erkannt werden. (I51368, b/150953183)

  • Veraltete zusammensetzbare Funktion aus dem Center. Er sollte entweder durch den Modifizierer „LayoutSize.Fill“ + „LayoutAlign.Center“ oder durch eines der Box- oder Stack-Kompositionen mit geeigneten Modifizierern ersetzt werden (Idf5e0).

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

    Umbenennung der Image(Painter) API in PaintBox(Painter) Erstellung einer zusammensetzbaren Vektor-Datei mit Vektoren, die sich wie die zusammensetzbare Funktion von Bild verhält, außer mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271)

  • „LayoutFlexible“ in „LayoutWeight“ umbenannt. Zum Ausfüllen muss enger Parameter umbenannt werden. (If4738)

  • "RepaintBoundary" wurde zugunsten von DrawLayerModifier (I00aa4) entfernt.

  • DrawVector wurde von einer regulären kombinierbaren Funktion in einen Modifikator umgewandelt, der drawVector() zurückgibt, um den Vektor als Hintergrund für ein Layout zu zeichnen. (I7b8e0)

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

  • Ersetzen Sie die zusammensetzbare Funktion „Clip“ durch den Modifikator „drawClip()“. „DrawClipToBounds“ ist ein praktischer Modifikator, wenn Sie nur die Ebenengrenzen mit einem Rechteck zuschneiden müssen. (If28eb)

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

  • Wir haben LayerModifier hinzugefügt, einen Modifikator, mit dem ein RenderNode für ein Layout hinzugefügt werden kann. Sie können damit Zuschneiden, Deckkraft, Drehung, Skalierung und Schatten festlegen. Damit wird „RepaintBoundary“ ersetzt. (I7100d, b/150774014)

  • androidx.compose.ViewComposer wurde in androidx.ui.node.UiComposer verschoben und androidx.compose.Emittable wurde entfernt. Es war mit ComponentNode redundant. androidx.compose.ViewAdapters wurde entfernt. Dieser Anwendungsfall wird nicht mehr unterstützt. Compose.composeInto wurde eingestellt. Verwende stattdessen setContent oder setViewContent. Compose.disposeComposition wurde eingestellt. Verwenden Sie stattdessen die Methode dispose auf dem von setContent zurückgegebenen Composition. androidx.compose.Compose.subcomposeInto wurde in 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)

  • Es wurde ein Bild erstellt, das zusammensetzbar ist, um neben der Darstellung eines bestimmten Bild-Assets auf dem Bildschirm auch Größe und Layout zu verarbeiten. Diese Komponente unterstützt auch das Zeichnen beliebiger Painter-Instanzen unter Berücksichtigung ihrer ursprünglichen Größe sowie einer bestimmten festen Größe oder Mindestgröße (Ibcc8f).

  • Die Funktion „Wrap“ (Umbruch) wurde eingestellt. Er kann entweder durch den LayoutAlign-Modifikator oder durch das Stack-Kompositelement (Ib237f) ersetzt werden.

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

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

  • Stapelkomponente unterstützt die Richtungsvorgabe von rechts nach links (Ic9e00)

  • Das composable „DrawShape“ wurde entfernt. Verwenden Sie stattdessen den Modifikator „DrawBackground“. (I7ceb2)

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

  • AdapterList wurde hinzugefügt, eine scrollbare Listenkomponente, die nur die sichtbaren Elemente zusammenstellt und anordnet. Zu den derzeit bekannten Problemen gehört, dass die Funktion nur für vertikale Channels verfügbar ist und nicht alle Änderungen an untergeordneten Channels berücksichtigt. (Ib351b)

  • Das Flag ComposeFlags.COMPOSER_PARAM wurde in true geändert. Dadurch ändert sich die Codegenerierungsstrategie für das Compose-Plug-in. Im Allgemeinen 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 Änderung, die die Binärkompatibilität jedoch bei allen zulässigen Verwendungen von compose beibehalten sollte. (I7971c)

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

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

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

  • Scroller zeigen jetzt das native Android-Fling-Bewegungsverhalten. (I922af, b/147493715)

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