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
13. November 2024 1.7.5 - - 1.8.0-alpha06

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.animationSie können Animationen in ihren Jetpack Compose-Anwendungen erstellen, um die Nutzerfreundlichkeit zu verbessern.
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 Compose-Benutzeroberfläche, die für die Interaktion mit dem Gerät erforderlich sind, einschließlich Layout, Zeichnen und Eingabe.

Abhängigkeiten deklarieren

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

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

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 geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.8

Version 1.8.0-alpha06

13. November 2024

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

Version 1.8.0-alpha05

30. Oktober 2024

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

Fehlerkorrekturen

  • Optimieren Sie das Verhalten von 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

  • Unterstützung für Welleneffekte bei maximierten Komponenten auf Android S und höher hinzugefügt, z. B. bei einer Karte, die sich per Klick 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 wird veröffentlicht. Version 1.8.0-alpha02 enthält diese Commits.

Version 1.8.0-alpha01

4. September 2024

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

API-Änderungen

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

Version 1.7.2

18. September 2024

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

Version 1.7.1

10. September 2024

  • An Android-Artefakten gibt es keine Änderungen. -desktop Artefakte wurden entfernt und -jvmStubs und -linuxx64Stubs Artefakte hinzugefügt. Keines dieser Ziele ist zur Verwendung vorgesehen. Sie dienen als Platzhalter für die Arbeit mit Jetbrains Compose.

Version 1.7.0

4. September 2024

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

Wichtige Änderungen seit Version 1.6.0

  • 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 die standardmäßige Bottomsheet wurden zur stabilen API.

Version 1.7.0-rc01

21. August 2024

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

Version 1.7.0-beta07

7. August 2024

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

Version 1.7.0-beta06

24. Juli 2024

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

Version 1.7.0-beta05

10. Juli 2024

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

Version 1.7.0-beta04

26. Juni 2024

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

Version 1.7.0-beta03

12. Juni 2024

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

Version 1.7.0-beta02

29. Mai 2024

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

API-Änderungen

  • API 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 Material-Links 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 Wellenbewegung deaktivieren möchten, geben Sie anstelle von RippleConfiguration mit isEnabled = false null bis LocalRippleConfiguration an. (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

  • Textlinks haben jetzt neben dem normalen Stil auch einen Stil für den gedrückten Zustand, den Hover-Zustand und den Fokus. (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 wird veröffentlicht. Version 1.7.0-alpha06 enthält diese Commits.

Mitteilung

  • androidx.compose.material erfordert nicht mehr, dass für jedes Artefakt in dieser Maven-Gruppe dieselbe Version verwendet wird. Nutzer können Versionen der Compose-Grundlagenbibliotheken (Ie5fba) kombinieren.

API-Änderungen

  • Weitere Standardwerte für ModalDrawer und BottomDrawer in das DrawerDefaults-Objekt verschoben (Ib5b2e)

Version 1.7.0-alpha05

20. März 2024

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

API-Änderungen

  • Das Flag ScaffoldSubcomposeInMeasureFix wurde entfernt. (I67363)

Version 1.7.0-alpha04

6. März 2024

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

Neue Funktionen

Version 1.7.0-alpha03

21. Februar 2024

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

API-Änderungen

  • BottomDrawer wurde von der experimentellen Version in die stabile Version übernommen. BottomDrawerState stellt den Fortschritt jetzt als Funktion bereit, sodass der Fortschritt zwischen bestimmten Zielen abgefragt werden kann. 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 Parameter snackbarHost von BackdropScaffold ist nicht mehr der letzte Parameter, um Verwechslungen mit abschließenden 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 Tween-Spezifikation gemäß den Richtlinien. (I3c1a8, b/278692145, b/261409034)
  • Modale Blätter am unteren Rand wurden aus dem experimentellen Status in den stabilen Status überführt. 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 wird veröffentlicht. Version 1.7.0-alpha01 enthält diese Commits.

Verhaltensänderungen

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

API-Änderungen

  • rememberRipple und RippleTheme wurden in material-ripple eingestellt. Den Material- und anderen Designsystembibliotheken wurden neue Ripple- und RippleConfiguration APIs hinzugefügt.

  • Materialkomponenten, die zuvor eine MutableInteractionSource akzeptierten und standardmäßig { MutableInteractionSource() } speicherten, akzeptieren jetzt eine nullable MutableInteractionSource und standardmäßig „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.

Version 1.6

Version 1.6.8

12. Juni 2024

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

Version 1.6.7

1. Mai 2024

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

Version 1.6.6

17. April 2024

androidx.compose.material:material-*:1.6.6 wird veröffentlicht. Keine Änderungen seit 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 wird veröffentlicht. Version 1.6.4 enthält diese Commits.

Version 1.6.3

6. März 2024

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

Fehlerkorrekturen

  • 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 wird veröffentlicht. Version 1.6.0-rc01 enthält diese Commits.

Version 1.6.0-beta03

13. Dezember 2023

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

Version 1.6.0-beta02

29. November 2023

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

Version 1.6.0-beta01

15. November 2023

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

Version 1.6.0-alpha08

18. Oktober 2023

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

API-Änderungen

  • Eine materialIcon-Funktion zugunsten ihrer Überladung mit einem autoMirror-Parameter 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. Um die vorherige Funktionalität zu erhalten, müssen Sie BottomSheetScaffold in einen Drawer-Composeable-Block einschließen. Ein Beispiel findest du in BottomSheetScaffoldWithDrawerSample. (I1dcc8)

API-Änderungen

  • Einführung eines temporären Flags, mit dem festgelegt werden kann, ob die untergeordneten Elemente von Scaffold während der Messung oder während des Platzierens gemessen 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. Wenn Sie keine spezielle Behandlung für das Spiegeln 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 Berechnung von DropdownMenu wurde korrigiert, sodass die X-Achsenverschiebungen nur noch von der lokalen Layoutrichtung abhängen. Die Y-Achsenverschiebungen werden nicht mehr umgekehrt, wenn sich das Menü unten auf dem Bildschirm befindet.offset (Iccc74, b/294103942)
  • Das Layout von BottomSheetScaffold wurde optimiert und ein potenzielles Problem mit BottomSheetScaffold in einer LookaheadLayout wurde behoben. (Ic0afa)

Version 1.6.0-alpha03

9. August 2023

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

API-Änderungen

  • Material2-Komponenten haben jetzt eine separate API, um windowInsets zu übergeben und 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 Überladung, 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. Diese Version enthält keine Änderungen.

Version 1.5.2

27. September 2023

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

Version 1.5.1

6. September 2023

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

Version 1.5.0

9. August 2023

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

Wichtige Änderungen seit Version 1.4.0

API-Änderungen

  • Änderungen an den Swipeable1 APIs in BottomSheetScaffold übernommen. Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert übergeben. 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)
  • confirmStateChange von ModalBottomSheetState, ModalBottomSheetState.Saver und rememberModalBottomSheetState 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, 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.5.0-rc01

26. Juli 2023

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

Version 1.5.0-beta03

28. Juni 2023

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

Fehlerkorrekturen

  • BottomSheetState, ModalBottomSheetState und BottomDrawerState haben jetzt eine Fortschrittseigenschaft, die den Fortschritt zwischen dem aktuellen (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 anzugeben, dass kein Versatz 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. Durch diese Korrektur wird die Implementierung an die Material Design-Spezifikation angepasst. (I029de, b/235454277)

Version 1.5.0-alpha04

10. Mai 2023

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

API-Änderungen

  • 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. Daher werden für BottomDrawerState jetzt nur APIs auf Klassenebene definiert. Methoden und Eigenschaften werden nicht 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)
  • Animierte Tabelleninhalte (z.B. Modifier.animateContentSize in Tabelleninhalten) in BottomSheetScaffold wurden optimiert und funktionieren jetzt reibungslos. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold nimmt nicht mehr am verschachtelten Scrollen teil, wenn gesturesEnabled auf false festgelegt ist. (I634f3, b/215403277)

Version 1.5.0-alpha02

5. April 2023

androidx.compose.material:material-*:1.5.0-alpha02 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 wird 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 den untergeordneten Chips im Beispiel für die Chipgruppe mit einer Zeile gemäß den Spezifikationen. (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 APIs für wischbare Inhalte in ModalDrawer ü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)
  • 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-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 APIs für wischbare Inhalte in BottomSheetScaffold übernommen. Der Parameter confirmStateChange von BottomSheetState wurde in confirmValueChange umbenannt. progress wird jetzt als Gleitkommawert übergeben. animateTo und snapTo sind intern. Verwenden Sie stattdessen expand() und collapse(). direction und overflow wurden entfernt. offset wurde durch requireOffset() ersetzt. (I323b4)

Fehlerkorrekturen

  • Semantische Rollen wurden von anklickbaren und auswählbaren Oberflächen entfernt. Komponenten, in denen sie verwendet wurden, um Rollen mit „modifier.semantics“ festzulegen, wurden aktualisiert (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 wird 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 onRelease-Lambda in Modifier.pullRefresh geändert, um für die verbrauchte Geschwindigkeit ein Float 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 wird veröffentlicht. Version 1.4.0-alpha05 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem der Status von ModalBottomSheetLayout's HalfExpanded falsch berechnet wurde und das Tabellenblatt so erschien, als würde es schweben. (I8c615, b/265610459)
  • Ein Fehler in ModalBottomSheetLayout wurde behoben, bei dem das Tabellenblatt unter bestimmten Umständen abstürzte, wenn es von ausgeblendet zu sichtbar wechselte. (Ia9265, b/265444789)

Version 1.4.0-alpha04

11. Januar 2023

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

API-Änderungen

  • Die 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)
  • 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)
  • 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 von Fortschrittsanzeigen ist jetzt korrekt auf den erwarteten Bereich begrenzt. (I8a7eb, b/262262727)
  • Wenn ModalBottomSheetState noch keine Anker erhalten hat, wird currentValue ohne Animation aktualisiert, wenn snapTo oder animateTo aufgerufen wird, anstatt eine Ausnahme zu werfen. (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. Wenn der Tabelleninhalt leer ist, hat er nur den Status „Ausgeblendet“. (Ic2288, b/200980998, b/216693030)

Bekanntes Problem

  • Beim Aktualisieren von androidx.compose.foundation:1.4.0-alpha03 auf androidx.compose.foundation:1.4.0-alpha04 kann der Fehler java.lang.NoSuchFieldError auftreten. Hier wurde das Problem ursprünglich gemeldet. 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 wird veröffentlicht. Version 1.3.0-rc01 enthält diese Commits.

Version 1.3.0-beta03

21. September 2022

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

API-Änderungen

  • 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 dann von dieser Änderung betroffen, wenn Sie ein benutzerdefiniertes Dialogfeld oder Pop-up erstellen, dessen Höhe über 8 dp liegt. 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 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 teilweise Verbrauch (nach unten ODER Position) wurde in PointerInputChange eingestellt. Mit consume() können Sie die Änderung vollständig übernehmen. Mit isConsumed kannst du feststellen, ob jemand anderes die Änderung bereits verwendet hat.
  • PointerInputChange::copy() erstellt jetzt immer eine flache Kopie. Das bedeutet, dass Kopien von PointerInputChange verbraucht werden, sobald eine der Kopien verbraucht 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 Unterpaket „.grid“ 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 Größen für Achsenkreuze 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 gibt jetzt eine Möglichkeit, horizontale und vertikale Ränder in Textfeldern anzupassen. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
  • Die Funktionen ComposableTarget, ComposableTargetMarker und ComposableOpenTarget wurden hinzugefügt. 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 Anmerkungen vom Compose-Compiler-Plug-in abgeleitet werden. Die direkte Verwendung dieser Anmerkungen sollte daher selten vorkommen. 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 Anwendern müssen die zusammensetzbaren Funktionen, die ComposeNode oder ReusableComposeNode aufrufen, eine CompoableTarget-Anmerkung für die Funktion und alle zusammensetzbaren Lambda-Parametertypen hinzufügen. Es wird jedoch empfohlen, eine Anmerkung zu erstellen, die mit ComposableTargetMarker gekennzeichnet ist, und dann die gekennzeichnete Anmerkung anstelle von ComposableTarget direkt 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 wird veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

Fehlerkorrekturen

Version 1.2.0-alpha02

26. Januar 2022

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

API-Änderungen

  • NonRestartableComposable wurde Methoden hinzugefügt, die Überladungen vorhandener Methoden ohne komplexe Logik sind. Dadurch werden vom Compiler generierte Memoisierungsüberprüfungen (Gleichungen) 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 isSkipHalfExpanded-Eigenschaft 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 Touch-Zielen
  • Im Vergleich zu Compose 1.0 wird der Layoutbereich von Materialkomponenten erweitert, um die Richtlinien für Bedienungshilfen von Material Design für die Größe von Touch-Zielelementen einzuhalten. 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.
  • 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

Im Vergleich zu Compose 1.0 wird der Layoutbereich von Materialkomponenten erweitert, um die Größe des Berührungszielbereichs gemäß den Richtlinien für Bedienungshilfen in Material Design einzuhalten. 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 wird 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

  • Für Ripples werden jetzt Hover- und Fokusstatus unterstützt. Wenn Sie den Mauszeiger auf eine Komponente wie eine Schaltfläche bewegen oder sie fokussieren, wird jetzt das richtige Status-Overlay angezeigt.

Version 1.1.0-alpha06

13. Oktober 2021

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

API-Änderungen

  • Es wurde eine überlastungsfreie Variante für das Layout hinzugefügt, die effizienter ist (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 Property empfängt die Klickposition und die Ankergrenzen, sodass Sie genauer festlegen können, ob onDismissRequest aufgerufen werden soll oder nicht. Das kann beispielsweise nützlich sein, um das Schließen des Ankers bei Berührungen des Ankers zu verhindern.
    • 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

  • performGesture und GestureScope wurden eingestellt und durch performTouchInput und TouchInjectionScope ersetzt. (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. Das ist nützlich für Pixel-Art, die beim Skalieren für pixelbasierte Kunst gepixelt werden soll. BitmapPainter und Bild-Composable wurden aktualisiert, sodass auch ein optionaler FilterQuality-Parameter verwendet wird (Ie4fb0, b/180311607)
  • „BadgeBox“ in „BadgedBox“ umbenannt und Parameter geändert, um Badge-Kompositionen zuzulassen. 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 wird veröffentlicht. Version 1.0.5 enthält diese Commits.

Fehlerkorrekturen

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

Version 1.0.4

13. Oktober 2021

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

Abhängigkeitsupdates

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

Version 1.0.3

29. September 2021

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

Abhängigkeitsupdates

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

Version 1.0.2

1. September 2021

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

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

Version 1.0.1

4. August 2021

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

Abhängigkeitsupdates

  • Aktualisiert auf 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 Sie Android Studio Bumblebee Canary 4 oder AGP 7.1.0-alpha04/7.1.0-alpha05 verwenden, kann der folgende Absturz auftreten:

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

    Erhöhen Sie in der build.gradle-Datei vorübergehend die minSdkVersion auf mindestens 24, 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 wird veröffentlicht. Version 1.0.0-beta09 enthält diese Commits.

API-Änderungen

  • Dem OutlinedTextField wurde der Parameter „Shape“ hinzugefügt, um die Form des Rahmens anzupassen (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)

Profilregeln hinzugefügt

In dieser Version werden den folgenden Compose-Modulen (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. Diese Regeln können auf eine von zwei Arten auf Methoden oder Klassen ausgerichtet werden.

  • Eine Methodenregel hat das folgende Muster:

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

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

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

  • <METHOD_SIGNATURE> ist die Signatur der Methode und enthält den Namen, die Parametertypen und die Rückgabetypen der Methode. 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 Klasse, die in dieser Datei vorhanden ist, wird beim Start verwendet und sollte im Heap vorab zugewiesen werden, um die Kosten für das Laden der Klasse zu vermeiden.

So funktioniert's

  • 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 Enums wurde in Inline-Klassen umgestellt, um Probleme mit umfassenden Wenn-Beschreibungen 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 datenbankgestützte Ripple-Implementierung 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 jetzt die Reihenfolge der Modifikatoren darüber entscheidet, welche Koordinaten erfasst 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üllt das übergeordnete Element nicht mehr den gesamten verfügbaren Hauptachsenbereich 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 DrawerState wird nicht mehr durch den experimentellen Status „SwipeableState“ erweitert.
    • 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: Bilder für Komponentenkacheln, Themenauswahl (wird in den nächsten Ä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 Sie withFrameNanos oder Recomposer.runRecomposeAndApplyChanges ohne MonotonicFrameClock aufrufen, 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 LocalSoftwareKeyboardController-Komposition API hinzugefügt, um die vorherige SoftwareKeyboardController-Schnittstelle für TextField zu ersetzen. (I5951e, b/168778053)

Fehlerkorrekturen

  • Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
  • Die 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 hängt nicht mehr von AppCompat oder Fragment ab. 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)
  • Entfernte dp-Behauptungen (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 anklickbaren Zeilen wurden aktualisiert, um diese Funktion zu verwenden. (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() }.
    • Anstatt Interaction.Pressed in interactionState sollten Sie stattdessen die Erweiterungsfunktionen von 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)
  • AccessibilityManager-Schnittstelle und LocalAccessibilityManager in CompositionLocals hinzufügen (I53520)
  • Die veralteten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie für „positionInParent“ und „boundsInParent“ eine Funktion anstelle der Eigenschaft. (I580ed, b/169874631, b/175142755)
  • Der Schieberegler unterstützt jetzt den Status „Aktiviert“/„Deaktiviert“ (I6d56b, b/179793072)
  • Neue TextInputSession für Eingabesitzungen von Textkomponenten auf niedriger Ebene wie CoreTextField erstellt. (I8817f, b/177662148)
  • AnimationEndReason.Interrupted wurde entfernt. CancellationException wird geworfen, wenn die Animation unterbrochen wird. (I2cbbc, b/179695417)
  • @ExperimentalRippleApi wurde entfernt und RippleAlpha in eine Klasse mit Eigenschaften anstelle einer Schnittstelle geändert. (I6df7c)
  • Die Schnittstelle „TextFieldColors“ wurde hinzugefügt, um verschiedene Farben darzustellen, die in TextField und OutlinedTextField in verschiedenen Status verwendet werden. 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 „smoothScrollBy“ und „scrollBy“ wurden in androidx.compose.foundation.gestures.* geändert (I3f7c1, b/175294473)

  • FlingConfig wurde in FlingBehavior umbenannt und ermöglicht jetzt die Anpassung der 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. (I4eaae)

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

  • „Anbieter“ 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 und hat keine Typparameter mehr.
    • 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 Funktion „clearRoots“ der @TestOnly auf oberster Ebene 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 zu folgen, dass erforderliche Parameter vor optionalen Parametern stehen müssen.
    • Der Parameter icon in BottomNavigationItem wurde nach selected und onClick verschoben.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • bodyContent-Parameter in einigen Komponenten wurden in content umbenannt.
    • Die Parameter in ButtonDefaults.buttonColors() wurden neu angeordnet. Da sich der Parametertyp nicht geändert hat, führt dies nicht zu einem Fehler im Code. Achten Sie darauf, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert Ihr 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 als „nullable“ gekennzeichnet.
    • 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)

  • „Indication#createIndication()“ in „Indication#rememberUpdatedIndication(InteractionState)“ geändert und der Parameter „InteractionState“ aus „IndicationInstance#drawIndication()“ entfernt. „IndicationInstance“ sollte nur für das Zeichnen visueller Effekte verantwortlich sein und keine Animationen starten oder den Status als Reaktion auf Änderungen des Interaktionsstatus schreiben. Diese Animationen und Statusänderungen sollten stattdessen in rememberUpdatedIndication() erfolgen. Der Parameter indication in Modifier.indication wurde ebenfalls in einen erforderlichen Parameter geändert. (Ic1764, b/152525426)

Fehlerkorrekturen

  • 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 in das Modul androidx.activity:activity-compose zu androidx.activity.compose.setContent 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)
  • „Indication#createInstance“ wurde in „@Composable“ geändert und „LocalIndication“ enthält jetzt eine „Indication“, keine „() -> Indication“. (I5eeea, b/157150564)
  • AlertDialog und DropdownMenu 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“. „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)
  • Es wurden Aktionen zum Maximieren und Minimieren hinzugefügt. „expand“ und „halfExpand“ in „ModalBottomSheetState“ hinzugefügt (Ib5064)
  • Modifier.dragGestureFilter wurde eingestellt. Verwenden Sie stattdessen Modifier.pointerInput { detectDragGestures (...)}. Alternativ können Sie Modifier.draggable für das Ziehen 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)
  • Die Auswahl wurde in die Foundation 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 zuvor ein benutzerdefiniertes Speicherobjekt übergeben haben, müssen Sie jetzt eine neue Überladung von „rememberSaveable“ 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 zu @DisallowComposableCalls geworden
    • @ComposableContract(tracked = true) wurde entfernt.
    • (I60a9d)
  • Die Dienstprogramme emptyContent() und (@Composable () -> Unit).orEmpty() wurden eingestellt, da sie keine positiven Auswirkungen auf die Leistung 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 von „Tab“ und der Parameter label von „BottomNavigationItem“ wurden in „nullable“ geändert, um das Verhalten der Komponente besser zu veranschaulichen, wenn diese Parameter angegeben sind oder nicht, 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 zum Ändern der RGB-Werte von Quellinhalten. Die ColorFilter API wurde zu einer Schnittstelle umgestaltet und der Implementierung von PathEffect angepasst. (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 entsprechend seiner Größe skaliert, wobei die angewendeten Größenmodifikatoren berücksichtigt werden. Icon(.., modifier = Modifier.size(50.dp) wird jetzt beispielsweise in einem Bereich von 50 × 50 dp gezeichnet. (Ib2ba9, b/178796190)

Version 1.0.0-alpha11

28. Januar 2021

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

API-Änderungen

  • Einige Material APIs werden nicht mehr als @Experimental eingestuft (I5d20e)
  • Dem Bild und dem Symbol wurde der Parameter „Inhaltsbeschreibung“ hinzugefügt. Sie wird verwendet, um Bedienungshilfen zu beschreiben (I2ac4c).
  • Die Material-Benutzeroberflächen für zustandsorientierte Parameter werden so geändert, dass sie @Composable-Funktionen enthalten, 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“ und „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 Transition wurde eingestellt (I0ac57)
  • Der Anfangsstatus in „updateTransition“ wird jetzt unterstützt (Ifd51d)
  • „WithConstraints“ wurde als „BoxWithConstraints“ überarbeitet und in „foundation.layout“ verschoben. (I9420b, b/173387208)
  • scrollBy ohne Pausieren wird eingestellt, scrollTo ohne Pausieren wird entfernt

    Wir empfehlen jetzt, das Scrollen mithilfe von Pausierungsfunktionen zu steuern und zu warten, bis das Scrollen beendet ist. 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)

  • Einführung von ComposeContentTestRule, das ComposeTestRule erweitert und setContent definiert, das aus ComposeTestRule entfernt wurde. Es wurde eine Fabrikmethode createEmptyComposeRule() hinzugefügt, die eine ComposeTestRule zurückgibt und keine Aktivität für Sie 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 Angabe einer neuen Anzeige über AmbientIndication angepasst werden. Dies war nie als Möglichkeit zur Anpassung dieser Komponenten gedacht. Dadurch sind diese Komponenten jetzt mit anderen Materialkomponenten einheitlich. 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)

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

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

  • Entfernen Sie „displaySize“, da diese Option 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 weiterhin entscheiden, dass sie das Lazy-Verhalten nicht benötigen, und die Modifikatoren direkt verwenden, z. B. so: 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 Methoden für fensterbasierte Koordinaten 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 mit @ExperimentalComposeUiApi gekennzeichnet. „AccessibilityRangeInfo“ wurde in „ProgressBarRangeInfo“ umbenannt. „stateDescriptionRange“ wurde in „progressBarRangeInfo“ umbenannt. „AccessibilityScrollState“ wurde in „ScrollAxisRange“ umbenannt. „horizontalAccessibilityScrollState“ wurde in „horizontalScrollAxisRange“ umbenannt. „verticalAccessibilityScrollState“ wurde in „verticalScrollAxisRange“ umbenannt. (Id3148)

  • TestCoroutineDispatcher 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

  • Velocity wurde um Komponententeile und mathematische Operationen erweitert. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt, um mit ähnlichen experimentellen API-Hinweisen übereinzustimmen (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 „equals“-Implementierungen wurde aktualisiert. Stattdessen wird jetzt „is MyClass“ verwendet. (I4f734)

Fehlerkorrekturen

  • Unterstützung für deaktivierte und schreibgeschützte Textfelder hinzugefügt (I35279, b/171040474, b/166478534)
  • animate() wurde durch animateAsState() ersetzt, das State<T> statt T zurückgibt. Dies ermöglicht eine bessere Leistung, da der Gültigkeitsbereich der Daten auf den Bereich eingegrenzt werden kann, in dem der Statuswert gelesen wird. (Ib179e)
  • Fügen Sie die Semantics-Rollen-API und die Rolle als Parameter zum anklickbaren, auswählbaren und umschaltbaren 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“. Außerdem werden unnötige default-Präfixe aus den Eigenschaften dieser neuen Objekte entfernt. (Ibb915, b/159982740)
  • Compose unterstützt Property-Getter, die kombinierbare Aufrufe ermöglichen. Die Unterstützung dafür wird nicht eingestellt, aber die Syntax für die Deklaration eines Property-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.

    Die APIs für Gradientenfunktionskonstruktoren wurden zugunsten von Fabrikmethoden für ein Gradientenobjekt verworfen. (I511fc, b/173066799)

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

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

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

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

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

  • Unterstützung für den InteractionState 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 werden losgelassen. 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)
  • Eigenschaften für die grundlegende Semantik in die Benutzeroberfläche verschoben (I6f05c)
  • fun RippleIndication() wurde eingestellt und durch rememberRippleIndication() ersetzt, um für Konsistenz mit anderen APIs zu sorgen. (Id8e2c)
  • Den Parameter „singleLine“ wurde den Elementen „BasicTextField“, „TextField“ und „OutlinedTextField“ hinzugefügt. Legen Sie diesen Parameter auf „true“ fest, um das Textfeld in eine einzige horizontal scrollbare Zeile zu verwandeln. (I57004, b/168187755)

Fehlerkorrekturen

  • Semantische Aktion „Schließen“ hinzufügen (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)
  • Modifier.drawLayer in Modifier.graphicsLayer umbenannt. Die zugehörigen Klassen wurden gemäß API-Feedback ebenfalls in GraphicsLayer umbenannt. (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. Stattdessen werden jetzt Lambda-Parameter anstelle von „State“ verwendet. (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 wird die Benennung, der Rückgabetyp, der Standardwert und die Reihenfolge des Parameters auf Übereinstimmung mit den Compose-Richtlinien geprüft. (If493b)
  • Aktualisierte TextFieldValue API
    • TextFieldValue.composition wurde 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, um die Logik in die placeable.placeWithLayer()-Methode von LayoutModifier zu migrieren (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)
  • Es wurde eine Lint-Prüfung hinzugefügt, um zu prüfen, ob Modifier-Fabriken intern androidx.compose.ui.composed {} verwenden, anstatt als @Composable gekennzeichnet zu sein. (I3c4bc)
  • Das semantische 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 werden losgelassen. 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 Foundation-Elemente „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. Bisher wurde bei Versuchen, die Färbung mit „Color.Unspecified“ zu ignorieren, eine transparente Farbe verwendet, wodurch gar nichts gerendert wurde. (I049e2, b/171624632)
  • „relativePaddingFrom“ wurde in „paddingFrom“ umbenannt. Der Modifikator „paddingFromBaseline“ wurde hinzugefügt, um die Abstände von den Layoutgrenzen zu den Textgrundlinien einfacher angeben 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 in 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).
  • Fügen Sie die SwitchColors-Benutzeroberfläche hinzu, um Farben darzustellen, die von einem Schalter in verschiedenen Status verwendet werden. Weitere Informationen zum Anpassen dieser Farben finden Sie unter SwitchConstants.defaultColors. (I93805)
  • Fügen Sie die Oberflächen „ButtonElevation“ und „ButtonColors“ hinzu, um die Höhen und Farben darzustellen, die von Schaltflächen in verschiedenen Status 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 für die verschiedenen Status. (I74130)
  • Die Benutzeroberfläche „CheckboxColors“ wurde hinzugefügt, um die Farben darzustellen, die von einem Kästchen in verschiedenen Status 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)
  • CoreTextField (I72e6d) hat jetzt eine Option für eine Tastatur mit einer Zeile.
  • 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
    • DrawContext zum Umschließen von Abhängigkeiten für DrawScope erstellt
    • 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. Wie bei allen anderen Umgebungseigenschaften können Sie mit .current auf den aktuellen Wert zugreifen. 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 Grenzwertwerten für Inline-Klassen wurde „Color.Unset“ in „Color.Unspecified“ umbenannt, um für Einheitlichkeit mit anderen Inline-Klassen zu sorgen (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“ 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. Die 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)
  • ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation umbenannt. Es wird jetzt ein Dp-Wert anstelle eines AnimatedValue zurückgegeben. (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 „elliptisch“ wird jetzt auch „oval“ verwendet.
    • 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 zum Abfragen von „topRight“, „bottomRight“ und „bottomCenter“ 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 Konstruktor für RoundRect wurde aktualisiert, sodass Radiuseigenschaften anstelle einzelner Parameter für X‑/Y‑Radiuswerte verwendet werden.
    • 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
    • Die Parameter „dx“ und „dy“ in der Einblendmethode wurden in „horizontal“ und „vertical“ umbenannt.
    • Ü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)
  • Dem BottomNavigationItem und Tab wird der Parameter „InteractionState“ hinzugefügt, mit dem dieser Status angehoben und die Darstellung der Komponente in verschiedenen Status angepasst werden kann. (Ia3e9e, b/168025711)
  • Entfernt die Parameter disabledBackgroundColor und disabledContentColor aus Schaltflächen. Verwenden Sie stattdessen die neuen Standardfarbfunktionen in ButtonConstants. Wenn Sie „contentColor“ 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 Farbe, die über den Parameter „backgroundColor“ angegeben wird, direkt angewendet. (Iecee9, b/167951441)
  • „InnerPadding“ wurde in „PaddingValues“ umbenannt. (I195f1, b/167389171)
  • Die Parameter resistanceFactorAtMin und resistanceFactorAtMax in Modifier.swipeable wurden durch einen einzelnen Widerstandsparameter ersetzt. In SwipeableConstants wurde eine neue defaultResistanceConfig-Methode hinzugefügt. (I54238)
  • Unterstützung für animierte 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 ButtonConstants.defaultAnimatedElevation() und FloatingActionButtonConstants.defaultAnimatedElevation(), um die Höhe zwischen den Status anzupassen, anstatt in allen Fällen einen einheitlichen 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)
  • Entfernen Sie die semantischen Aktionen „Vor-“ und „Zurückscrollen“. 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 eingestellt werden. (Ieae36)
  • createAndroidComposeRule und AndroidInputDispatcher wurden von androidx.ui.test.android nach androidx.ui.test verschoben (Idef08, b/164060572)

Version 1.0.0-alpha02

2. September 2020

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

API-Änderungen

  • Die experimentelle Komponente „BackdropScaffold“ 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 mit der Rücktaste entfernt werden (b/165956313)

Version 0.1.0-dev

Version 0.1.0-dev17

19. August 2020

androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 und androidx.compose.material:material-icons-extended:0.1.0-dev17 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. Sie können über die Funktion SnackbarHostState.showSnackbar darauf zugreifen. 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-Überladung wurde hinzugefügt, um eine gemeinsame Schnittstelle zwischen snackbarHostState und Snackbars 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 stringbasierter 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)
  • In AlertDialog wird jetzt FlowRow für Schaltflächen verwendet (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 ermitteln möchten. Scaffold wurde die Parameter „contentColor“ und „Modifier“ 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)
  • Trennt TabRow in TabRow und ScrollableTabRow 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. In den Beispielen und der Dokumentation finden Sie ausführliche Informationen zur Verwendung der aktualisierten API und zu den Standardeinstellungen. (I54d45, b/161809544)
  • Der Parameter „thresholds“ in „Modifier.swipeable“ wurde angepasst. Er nimmt jetzt ein Paar von Zuständen (vom Typ „T“) an und gibt den Grenzwert 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“ und „darkColors“ umbenannt. (I9e976, b/161812111)
  • Der Parameter text von „BottomNavigationItem“ wird in label umbenannt, onSelected in onSelect, activeColor in selectedContentColor und inactiveColor in unselectedContentColor. Außerdem wird die Parameterreihenfolge an die Richtlinien angepasst. (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. IntOffset.Origin in IntOffset.Zero umbennen, um mit der Offset API übereinzustimmen
    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. Die PointMode-Enum-Typen 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 Implementierung von DrawCache wurde aktualisiert, sodass keine lateinit-Parameter 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. Die Klasse „Outline“ wurde um Anmerkungen vom Typ „@Immutable“ ergänzt.
    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. Die Funktion „Size“ wurde aktualisiert, um die Destrukturierungs-API hinzuzufügen. Außerdem wurde „UnspecifiedSize“ in „Unspecified“ 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, da es 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“ ist jetzt eingestellt. Verwenden Sie stattdessen „state“ und „mutableStateOf“. 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)
    • Umkehrbare Entscheidung. @Model können wir später jederzeit wieder einführen.
    • Beseitigt Sonderfälle und schwer zu beantwortende Fragen zur Konfiguration von @Model, die wir bearbeiten müssen
    • @Model-Datenklassen, equals, Hash-Code usw.
    • Wie kann ich festlegen, dass einige Properties „beobachtet“ und andere nicht werden?
    • Wie kann ich festlegen, ob bei der Beobachtung strukturelle oder referenzielle Gleichheit 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 Systems und reduziert Unklarheiten in Bezug auf unveränderliche Zustände oder unsere „Akzeptanz von veränderlichen Zuständen“

    Migrationshinweise

    Fast alle vorhandenen Verwendungen von @Model können auf eine von zwei Arten relativ einfach umgewandelt werden. Im folgenden Beispiel wird beispielhaft eine @Model-Klasse mit zwei Properties verwendet, die in einem Composeable eingebunden ist.

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

    Alternative 1: State<OriginalClass> verwenden und Kopien erstellen

    Dieser Ansatz wird durch die Datenklassen von Kotlin 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.

    Hinweis: Dieser Ansatz funktioniert nur, wenn die einzigen Mutationen an dieser Klasse im selben Gültigkeitsbereich vorgenommen wurden, in dem die State-Instanz erstellt wird. Wenn sich die Klasse intern außerhalb des Verwendungsbereichs mutiert und Sie sich auf die Beobachtung dieser Mutation verlassen, sollten Sie den nächsten Ansatz verwenden.

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

    Alternative 2: mutableStateOf und Property Delegate 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 Grunde alle var-Properties der ursprünglichen Klasse durch var-Properties mit mutableStateOf als Property-Delegierter. 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,
       onXChange={ p.x = it }
       onYChange={ 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 „thresholds“ wurde im Status „draggable“ hinzugefügt, um Grenzwerte 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 „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. (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)

  • Der Inhalts-Slot der Schaltfläche verhält sich jetzt wie eine Zeile. Das ist nützlich, wenn Sie ein Symbol mit Text benötigen. Weitere Informationen finden Sie in den Beispielen für Schaltflächen. (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 zu reduzieren, die zur Darstellung von Größeninformationen verwendet werden, 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 wurden umbenannt und es wurden neue Parameter für eine bessere Anpassung hinzugefügt. Es wurde ein Getter hinzugefügt, um die Größe von FAB, TopBar und BottomBar abzufragen (I0e7ce).

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

  • Softwaretastatur manuell über SoftwareKeyboardController ein-/ausblenden lassen (Ifb9d6, b/155427736)

  • „Modifier.indication“ wurde dem Basispaket 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)

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

  • Slot API für nachgestellte und vorangestellte Symbole 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)

  • Parameter im Divider-Element umbenannt (Ic4373)

  • children (Ia6d19)

  • „MaterialTheme.emphasisLevels“ wurde entfernt. 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. In den aktualisierten Beispielen finden Sie Informationen zur Verwendung. (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(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763).

  • Surface und Card wurden von androidx.ui.material.surface zu 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)

  • „Image“ in „ImageAsset“ umbenannt, um den Unterschied zwischen den Bilddaten und dem anstehenden Bild-Komposit besser zu unterscheiden, das zum Erstellen von Layouts und zum Zeichnen von Inhalten verwendet wird. _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 vorhandene Verwendungen von AppBarIcon direkt durch IconButton ersetzen. Diese haben dann das richtige Touch-Ziel. 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 umbenannt (I8ffcc)

  • LayoutCoordinates hat keine Positionseigenschaft mehr. Die Eigenschaft „position“ ist bei Layout-Modifizierern, Drehungen oder Skalierungen nicht sinnvoll. Stattdessen sollten Entwickler „parentCoordinates“ und „childToLocal()“ verwenden, um die Transformation von einer Layoutkoordinate in eine andere zu berechnen.

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

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

  • Komponente für Gerüstmaterial wurde hinzugefügt. Gerüstimplementierungen (I7731b)

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

Fehlerkorrekturen

  • FocusModifier wurde 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 scrollbare Elemente 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: „semantics { hidden = true }“ wird jetzt so geschrieben: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
  • Mehrere Test-APIs wurden umbenannt, um sie intuitiver zu gestalten. Alle APIs vom Typ „findXYZ“ 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 entsprechend aktualisiert. (I0d8d0, b/159596546)
  • Für die Testung von Suchern wurde das neue optionale Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
  • Veraltete APIs für die Größenprüfung wurden entfernt. (Iba0a0)
  • Die Inline-Shader-Klasse, die die NativeShader-Erwartungklasse umhüllte, wurde entfernt. NativeShader wurde in Shader umbenannt. Die gewrappte Shader-Inline-Klasse fügte der API-Oberfläche nichts Wertvolles hinzu und war eine Inline-Klasse. Verwenden Sie daher die NativeShader-Klasse 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 Parameter „Layoutrichtung“ wurde aus dem Messblock der Funktion „Layout()“ 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 Ganzzahlpositionen der Ausrichtungslinie, die von Placeable#get(AlignmentLine) zurückgegeben werden, sind jetzt nicht mehr null. Wenn die abgefragte Ausrichtungslinie fehlt, wird „AlignmentLine.Unspecified“ zurückgegeben. (I896c5, b/158134875)
  • Die Radius-Klasse wurde in eine Inline-Klasse 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 des Textfelds hat eine blinkende Animation (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 bietet jetzt standardmäßig die Spalte. 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

  • Dem Textfeld eine Anpassung der Cursorfarbe hinzufügen (I6e33f)

  • TextFieldValue, das mit TextField verwendet wird, kann jetzt bei der Aktivitätswiederherstellung erhalten bleiben, wenn es so verwendet wird: 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 für „DrawShadow“ wurde geändert: „elevation“ ist jetzt der erste und „shape“ der zweite Parameter mit der Standardeinstellung „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. „Zeile“, „Spalte“ und „Stapel“ wurden aktualisiert, um benutzerdefinierte kontinuierliche Ausrichtungen zu unterstützen. (Ib0728)

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

  • „ProvideContentColor“ wird entfernt. Verwenden Sie stattdessen einfach „ContentColorAmbient“ direkt mit Providers (Iee942).

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

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

  • Die 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ür „draw()“ entfernt
    • DrawScope hat dieselbe Oberfläche wie das bisherige CanvasScope
    • ContentDrawScope hat 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. Anrufer müssen Importe hinzufügen, um by state { ... } oder by mutableStateOf(...) weiterhin verwenden zu können. (I5312c)

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

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

  • „LayoutResult“ 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)

  • Eingestellte Center-Kompositionen 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.

    Die Image(Painter) API wurde in PaintBox(Painter) umbenannt. Es wurde ein Vektor-Komposit erstellt, das sich wie das Bild-Komposit verhält, jedoch mit einem VectorAsset anstelle eines ImageAsset (I9af9a, b/149030271).

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

  • RepaintBoundary wurde zugunsten von DrawLayerModifier entfernt (I00aa4)

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

  • Der LayerModifier wurde hinzugefügt. Mit diesem Modifikator kann ein RenderNode für ein Layout hinzugefügt werden. 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. Verwenden Sie 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 eine Bildkomposition erstellt, die nicht nur die Größe und das Layout verwaltet, sondern auch ein bestimmtes Bild-Asset auf dem Bildschirm anzeigt. 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. Modus für die Layoutrichtung 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)