Benutzeroberfläche zum Schreiben

Grundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpha-Release
4. September 2024 1.7.0 - - 1.8.0-alpha01

Struktur

Compose besteht aus sieben Maven-Gruppen-IDs innerhalb von androidx. Jede Gruppe enthält eine ausgewählte Teilmenge von Funktionen, jede mit ihren eigenen Release-Sätzen Notizen.

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

GruppeBeschreibung
compose.animation:Animationen in den Jetpack Compose-Anwendungen erstellen, um die User Experience zu bereichern
compose.compiler@Composable-Funktionen transformieren und Optimierungen mit einem Kotlin-Compiler-Plug-in aktivieren.
compose.foundationSchreiben Sie Jetpack Compose-Anwendungen mit gebrauchsfertigen Bausteinen und erweitern Sie die Grundlage für den Aufbau Ihrer eigenen Designsysteme.
compose.materialJetpack Compose-UIs mit einsatzbereiten Material Design-Komponenten erstellen Dies ist der übergeordnete Einstiegspunkt von Compose. Hier werden Komponenten bereitgestellt, die den unter www.material.io beschriebenen Komponenten entsprechen.
compose.material3 einfügenJetpack Compose-UIs mit Material Design 3 Components erstellen, der nächsten Entwicklung des Material Design Material 3 enthält aktualisierte Designs und Komponenten sowie Funktionen zur Personalisierung von Material You wie dynamische Farben. Das Produkt wurde so entwickelt, dass es zum visuellen Stil und zur System-UI von Android 12 passt.
compose.runtimeGrundlegende Bausteine des Programmiermodells und der Statusverwaltung von Compose sowie die zentrale Laufzeit für das Compose-Compiler-Plug-in.
compose.uiGrundlegende Komponenten der Benutzeroberfläche zum Schreiben von E-Mails, die für die Interaktion mit dem Gerät erforderlich sind, darunter Layout, Zeichnen und Eingabe

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von Compose hinzufügen möchten, müssen Sie das Maven-Repository von Google zu Ihrem Projekt arbeiten. Maven-Repository von Google lesen .

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

Cool

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.ui:ui:1.7.1")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Feedback

Dein Feedback hilft uns, Jetpack zu verbessern. Teilen Sie uns mit, wenn Sie neue Ausgaben entdecken oder zur Verbesserung dieser Bibliothek. In der bestehende Probleme in dieser Bibliothek, bevor Sie eine neue erstellen. So können Sie für ein vorhandenes Problem abstimmen: indem Sie auf die Sternschaltfläche klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung. .

Version 1.8

Version 1.8.0-alpha01

4. September 2024

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

Version 1.7

Version 1.7.0

4. September 2024

androidx.compose.ui:ui-*:1.7.0 wurde veröffentlicht.

Wichtige Änderungen seit Version 1.6.0

Wichtige Änderungen in Version 1.7.0 werden in diesem Blogpost behandelt.

Version 1.7.0-rc01

21. August 2024

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

Wichtige Änderungen

  • Das ui:ui-Modul erzwingt nun die Anforderung einer Mindestversion von „foundation:foundation“ auf mindestens 1.7.0-rc01. Dies wird erzwungen, um eine Verhaltensinkompatibilität zwischen UI und Foundation bei NestedScrollSource-Änderungen zu beheben, die zu Beginn von 1.7.0-alpha01 vorgenommen wurden.

Version 1.7.0-beta07

7. August 2024

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

Fehlerkorrekturen

  • Die SemanticsNodeInteraction-Funktionen performTextReplacement, performTextInput und performTextClearance im Zusammenhang mit Texteingabe geben jetzt Assertion-Fehler aus, wenn sie im schreibgeschützten TextFields aufgerufen werden. (I4ae8f)

Version 1.7.0-beta06

24. Juli 2024

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

Version 1.7.0-beta05

10. Juli 2024

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

Fehlerkorrekturen

  • Ein Fehler wurde behoben, bei dem TextField bei einem Wechsel der Softwaretastatur erst dann Eingaben über die neue Tastatur annahm, wenn der Fokus verloren ging und wieder wiederhergestellt wurde.
  • Es wurde ein Problem behoben, bei dem Versuche, Ebeneninhalte zu speichern, beim Rendern mit SurfaceView-Inhalten unbeabsichtigte Nebeneffekte verursachten.

Version 1.7.0-beta04

26. Juni 2024

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

Fehlerkorrekturen

  • Abstürze bei sehr großen Textzeilen vermeiden (z. B. 10.000 Zeichen) (8157ab)
  • Software-Rendering-Unterstützung für die GraphicsLayer API deaktivieren (35ddd8)
  • Behebung eines Absturzes in der Ebenenpersistenzlogik. (70b13e)
  • Die Wiederverwendung der Optimierung von Ebenenobjekten wurde rückgängig gemacht, da sie Renderingprobleme verursacht hat. (70b13e)

Version 1.7.0-beta03

12. Juni 2024

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

Version 1.7.0-beta02

29. Mai 2024

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

API-Änderungen

  • SemanticsProperties.Editable wurde in IsEditable umbenannt und SemanticsPropertyReceiver.editable wird in einen Wert isEditable geändert. Die Eigenschaft ist jetzt ein boolescher Wert und wird immer durch Textfelder angegeben. (I8acd8)
  • Benchmark-Parameter für Bedienungshilfen umbenennen. (I3d440)
  • Die API zum Gestalten von Links wurde aktualisiert: TextLinkStyles ist jetzt Teil des LinkAnnotation-Konstruktors und der AnnotatedString.fromHtml-Methode (I90b2b). Außerdem wurde TextDefaults aus Material entfernt (I5477b).

Fehlerkorrekturen

  • LayoutCoordinates.introducesFrameOfReference wurde in LayoutCoordinates.introducesMotionFrameOfReference umbenannt, um den Zweck besser widerzuspiegeln. Die zugehörige Funktion wurde umbenannt, um Koordinaten basierend auf dieser Markierung zu berechnen. (I3a330)

Version 1.7.0-beta01

14. Mai 2024

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

API-Änderungen

  • performCustomAccessibilityActionLabelled wurde in performCustomAccessibilityActionWithLabel und performCustomAccessibilityActionWhere in performCustomAccessibilityActionWithLabelMatching umbenannt. (I5387f)
  • AnnotatedString.hasEqualsAnnotations ist jetzt hasEqualAnnotations (I685c0)
  • Die API zum Erhalten von Material-Links im Text wurde aktualisiert. Insbesondere wurden die Methoden aus dem TextDefaults zum Erstellen von themenbezogenen LinkAnnotations und zum Parsen von HTML mit themenbezogenen Links entfernt. Stattdessen wurde eine TextLinkStyles-Klasse hinzugefügt, die es ermöglicht, die Links als Parameter für die zusammensetzbare Text-Funktion zu gestalten. (I31b93)

Fehlerkorrekturen

  • Fehlerkorrekturen für zusätzliche Anwendungsfälle beim dynamischen Hinzufügen von Zeigereingabemodifikatoren während der Ereignisse 63e1504

Version 1.7.0-alpha08

1. Mai 2024

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

API-Änderungen

  • Unterstützt Implementierungen änderbarer Formen. Shape#createOutline wird jetzt innerhalb von Grafikebenen beobachtet. Das Lesen von Statuswerten im Inneren führt daher zu Entwertungen, wenn sich der Zustand ändert. Dies ermöglicht leistungsstärkere Formanimationen. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation wurde in introducesFrameOfReference umbenannt. Beachten Sie, dass dies jetzt den umgekehrten Effekt hat. Das bedeutet, dass die meisten LayoutCoordinates standardmäßig einen Referenzrahmen einführen und das Attribut nur bei direkter Bearbeitung den Wert „false“ hat. Um die Position nur mit solchen abzufragen, die einen Bezugsrahmen beinhalten, verwenden Sie positionInLocalFrameOfReference(...). Oder positionInLocalLookaheadFrameOfReference von einem LookaheadScope. (Ifc5f7)
  • LookaheadScope APIs sind jetzt stabil (I21507)
  • Aktionslambda für getScrollViewportLength gemäß Feedback des API-Council ändern. (Ibc74a)
  • GraphicsLayer Outline-APIs wurden aktualisiert, sodass statt der int-Parameter float-Parameter verwendet werden. UnsetOffset/UnsetSize IntSize Sentinel-Werte wurden zugunsten bereits vorhandener nicht spezifizierter Konstanten für Inline-Klassen mit Gleitkommazahl und Größe entfernt (I2fb03, b/333863462)
  • Beim Einfügen von Mauseingaben während Tests akzeptieren MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick() und MouseInjectionScope.longClick() jetzt einen button: MouseButton-Parameter, um sie allgemein anwendbar zu machen. Der Standardwert für alle Methoden ist MouseButton.Primary. (I31a23, b/190493367, b/261439695)
  • onClicked wurde in LinkInteractionListener in onClick umbenannt. (AA35c)
  • Benennen Sie TextInclusionStrategy.isInside in isIncluded um. Legen Sie fest, dass der Rückgabetyp Paragraph/MultiParagraph#getRangeForRect() nicht Nullwerte zulässig ist. (I51f26)

Fehlerkorrekturen

  • Das Erfassen langer Screenshots für scrollbare Container mit reverseScrolling=true wurde korrigiert. (I7c59c)

Externer Beitrag

  • Unterstützung für den Vorabruf von Elementen in verschachtelten LazyLists wurde hinzugefügt (z.B. ein LazyColumn, das verschachtelte LazyRows rendert). Durch diese Änderung werden Frame-Einbrüche bei diesen LazyLists voraussichtlich beim Scrollen reduziert. Standardmäßig werden die ersten beiden verschachtelten Elemente vorab abgerufen. Dieses Verhalten kann jedoch über die neuen APIs LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) und LazyListPrefetchStrategy#onNestedPrefetch gesteuert werden. (I51952)

Version 1.7.0-alpha07

17. April 2024

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

API-Änderungen

  • ClickableText ist als veraltet markiert. Um dem Text Links hinzuzufügen, erstellen Sie ein AnnotatedString mit einem LinkAnnotation, das Ihrem Link entspricht, und übergeben Sie dieses AnnotatedString an die zusammensetzbare Textfunktion. (I34d4b, b/323346994)
  • Stelle ViewConfiguration.HandwritingGestureLineMargin für handschriftliche Gesten vor. Unterstützung von JoinOrSplit-Geste für BasicTextField (Ie6e13, b/325660505)
  • FocusProperties.enter und FocusProperties.exit befinden sich nicht mehr in der Testphase. FocusDirection.Enter und FocusDirection.Exit befinden sich nicht mehr in der Testphase. FocusRequester.Cancel ist nicht mehr experimentell (I461a1, b/261564106).
  • Bei der Abfrage von Layoutkoordinaten können Sie jetzt das Argument excludeDirectManipulationOffset verwenden, um den Versatz von übergeordneten Layouts auszuschließen, bei denen die untergeordneten Layouts mithilfe von Placeable.PlacementScope.withDirectManipulationPlacement platziert wurden. Ebenso kann ein Layout, bei dem sich die Position seiner untergeordneten Elemente häufig ändert, diese nun mithilfe von withDirectManipulationPlacement platzieren, wie z. B. „Scrollen“, das standardmäßig implementiert ist. Auf diese Weise sind die auf approachLayout basierenden Animationen intuitiver. Sie haben jetzt die Möglichkeit zu unterscheiden, welcher Offset animiert werden soll und was direkt angewendet werden soll, wenn es um die Animation des Ansatzes geht. (I60ec7)
  • Die Funktions-Flag für lange Screenshots wurde entfernt. (I28648, b/329128246)
  • LazyColumn rendert fixierte Überschriften in langen Screenshots jetzt korrekt. (I8d239, b/329296635)
  • NestedScroll-Quellen „Ziehen und Ziehen“ werden durch UserInput und SideEffect ersetzt, um die erweiterte Definition dieser Quellen zu ermöglichen, die jetzt Animationen (Seiteneffekt) sowie Mausrad und Tastatur (UserInput) umfasst. (I40579)
  • ApproachLayoutModifierNode und Modifier.approachLayout sind jetzt stabil. Das alte isMeasurementApproachComplete() bzw. isPlacementApproachComplete() wird durch die neuen isMeasurementApproachInProgress() und isPlacementApproachInProgress() ersetzt.
  • Eingestellter intermediateLayout-Modifikator wurde entfernt. (I3e91c)
  • Benennen Sie GraphicsLayer#buildLayer um, damit die Aufzeichnung die „begin“- und „endRecording“-Methoden der in Displaylist unterstützten APIs wie RenderNode und Picture widerspiegelt.
  • rememberGraphicsLayer wurde zur Nutzung von rememberObserver aktualisiert. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation wurde verworfen. Verwenden Sie stattdessen LinkAnnotation.Url. Wenn Sie Material-Designs verwenden, erstellen Sie mit einem TextDefaults-Objekt die Anmerkung mit angewendeten Material-Designs (I8d180, b/323346545).
  • Textlinks wurden neben dem normalen Stil auch mit der Gestaltungsoption „gedrückt“ angezeigt (I5f864, b/139312671)
  • String.parseAsHtml wurde in AnnotatedString.Companion.fromHtml umbenannt. (I43dcd)
  • Stilargumente (linkStyle, focusedLinkStyle, hoveredLinkStyle) und ein Linkinteraktions-Listener für die parseAsHtml-Methode hinzugefügt. Wenn der HTML-getaggte String mit <a>-Tags geparst wird, erstellt die Methode für jedes dieser Tags ein LinkAnnotation.Url und übergibt die Stilobjekte und den Link-Interaktions-Listener an jede Annotation. (I7c977)
  • LinkAnnotation verwendet jetzt die zustandsbasierten Stilargumente und einen LinkInteractionListener. Fügen Sie diese Annotation zum AnnotatedString hinzu, um einen Hyperlink zu erhalten. Durch die Übergabe von focusedState und/oder hoveredState können Sie die visuelle configuration für Links definieren, wenn diese hervorgehoben sind und/oder der Mauszeiger darauf bewegt wird. (I81ce4, b/139312671)
  • Für ImeOptions.hintLocales können keine Nullwerte mehr eingegeben werden. Wenn Sie eine leere Gebietsschemaliste übergeben möchten, verwenden Sie LocaleList.Empty. (Ic5bc4)

Fehlerkorrekturen

  • Fehlerhafte/beschädigte historische Eingabeereignisdaten werden ordnungsgemäß verarbeitet (fehlerhafte Offsetdaten werden ignoriert).
  • Behebt unerwartete Zeigerereignisse, wenn ein Zeigereingabemodifikator dynamisch vor einem anderen Zeigereingabeereignis-Stream während eines aktiven Zeigereingabeereignisstreams hinzugefügt wird (z. B. zwischen einem Mouseover-Eingabe-Ereignis-Stream und einem Mouseover-Exit [Maus/Eingabestift]).

Version 1.7.0-alpha06

3. April 2024

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

Neue Funktionen

  • Es wurde die parseAsHtml-Methode für Strings mit benutzerdefinierten Stilen hinzugefügt: Sie ermöglicht das Konvertieren eines mit HTML-Tags markierten Strings in AnnotatedString. Beachten Sie, dass nicht alle Tags unterstützt werden. Zum Beispiel können Sie noch keine Aufzählungslisten anzeigen. (I84d3d, I30626, b/139326648)
  • Mithilfe der offiziellen Android API (ScrollCaptureCallback) wurde eine experimentelle Unterstützung für lange Screenshots in Scroll-Containern vom Typ „Compose“ implementiert. Dies ist eine experimentelle Funktion, die möglicherweise nicht alle Fälle korrekt verarbeitet. Aus diesem Grund ist sie derzeit standardmäßig deaktiviert. Legen Sie zum Aktivieren das Flag ComposeFeatureFlag_LongScreenshotsEnabled auf „true“ fest. (I2b055, b/329296471)

API-Änderungen

  • fun ClipEntry.getMetadata()“ wird in „val ClipEntry.clipMetadata“ geändert. (I50155)
  • Die Funktionen ClipboardManager.getClipMetadata und ClipboardManager.hasClip wurden entfernt. Verwende clipEntry.getMetadata(), um die Metadaten des aktuellen Clipeintrags zu lesen. Prüfen Sie auch das Ergebnis von ClipboardManager.getClip, wenn es null ist oder nicht, um festzustellen, ob die Zwischenablage einen aktuellen Clip enthält. (I50498)
  • Jetzt können Sie GraphicsLayer-Objekte an placeable.placeWithLayer()-Funktionen übergeben (I1b22f).
  • ClipboardManager.setClip akzeptiert jetzt null, um die Zwischenablage zu leeren. (I7d2e9)
  • Es wurden Ressourcen-IDs zum Ausblenden von Ansichten hinzugefügt, die als Implementierungsdetails in Build-Tools verwendet werden (I99531).
  • Die Anhalten-Methode GraphicsLayer#toImageBitmap wurde hinzugefügt, um das Rendern von Bitmap-Inhalten in einem GraphicsLayer zu unterstützen. Dies ist ein hardwarebeschleunigter Renderingvorgang auf API-Level 22 und höher (einschließlich), der über 99% aller Android-Geräte unterstützt. Bei Android API-Level 21 wird dabei Software-Rendering verwendet. (I9e114)
  • Hilfsmethode zum Konvertieren eines Android-RectF in ComposeRect (I39925, b/325660505)
  • Alle KeyboardOptions-Parameter haben jetzt standardmäßig einen nicht angegebenen Wert. Methode KeyboardOptions.merge wurde hinzugefügt.
  • KeyboardOptions.autoCorrect wurde in autoCorrectEnabled umbenannt und dafür gesorgt, dass Nullwerte zulässig sind, wobei null bedeutet, dass kein Wert angegeben wurde. (Ia8ba0, b/295951492)
  • Die Variante „BasicTextField(state)“ und „BasicSecureTextField“ verwenden jetzt KeyboardActionHandler anstelle von KeyboardActions, um Aktionen über die Softwaretastatur zu verarbeiten. (I58dda)

Version 1.7.0-alpha05

20. März 2024

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

Neue Funktionen

  • Einführung der neuen GraphicsLayer API zur Aufzeichnung von Zeichenbefehlen in einer Anzeigeliste sowie zusätzlicher Attribute, die sich auf das Rendern der Anzeigeliste auswirken. Dies bietet eine isolierte Grenze, um eine komplexe Szene in kleinere Teile zu unterteilen, die einzeln nacheinander aktualisiert werden können, ohne die gesamte Szene nachzubilden. Transformationen an einem GraphicsLayer können durchgeführt werden, ohne die Anzeigeliste neu aufzuzeichnen. Im Gegensatz zu Modifier.graphicsLayer ermöglicht GraphicsLayer das Rendern von zusammensetzbaren Inhalten an anderer Stelle und ist nützlich in animierten Anwendungsfällen, bei denen davon ausgegangen wird, dass Inhalte in verschiedenen Szenen gerendert werden.

API-Änderungen

  • GraphicsLayer.draw(Canvas) ist keine öffentliche API mehr. Verwenden Sie stattdessen die Erweiterungsfunktion DrawScope.drawLayer(GraphicsLayer), um die Ebene zu zeichnen. (I7a7c0)
  • restrictedConstraints() in zwei Methoden aufteilen: fitPrioritizingWidth() und fitPrioritizingHeight() (I6d7fd)
  • Einführung des HardwareCanvas-Stubs zur Nutzung von Android L (I1c3b5, b/288494724)
  • Aktualisieren Sie das Editor-Framework, um eine lokale GraphicsContext-Komposition zusammen mit aktualisierten Inhaber-, DelegateableNode- und drawWithCache-Modifikatorimplementierungen bereitzustellen, um Zugriff auf das GraphicsContext für eingeschränkten Zugriff bereitzustellen. GraphicsLayer-Instanzen werden automatisch bereinigt, wenn Modifikatoren entfernt werden. (I64a2f, b/288494724)
  • Einführung von InterceptPlatformTextInput für das Schreiben von Low-Level-IME-Tests und anderen Low-Level-IME-Anwendungsfällen. PlatformTextInputTestOverride wurde verworfen. (I862ed, b/322680547)
  • Die Erweiterungsfunktion „GraphicsLayer.setOutline(Outline)“ wurde hinzugefügt. (Ib81f4)
  • Funktionskonstruktor GraphicsContext einführen, um eine Factory zum Erstellen von GraphicsLayer-Instanzen zu erstellen (Ib98d6, b/288494724)
  • Offengelegte GraphicsLayer API, um Entwicklern definierte Flexibilität bei der Erfassung von Zeichenbefehlen zu bieten, die zum Zeichnen an anderer Stelle und zum Anwenden verschiedener visueller Effekte auf das Endergebnis verwendet werden können. (I80245, b/288494724)
  • Führen Sie Paragraph#getRangeForRect ein, das einen Textbereich zurückgibt, der von einem bestimmten Rechteckbereich abgedeckt wird. (Iee516, b/325660505)
  • Die experimentelle Überschreibung von BasicText mit dem Argument onLinkClicked wurde entfernt. In Zukunft wird eine Ersatz-API für die Unterstützung von Hyperlinks folgen. (I107d5)

Fehlerkorrekturen

  • Es wurde die erwartete/tatsächliche API-Definition GraphicsLayer hinzugefügt, um die Erfassung und Wiedergabe von Zeichenbefehlen mit optionalen visuellen Effekten und Transformationen zu unterstützen. Einführung der GraphicsContext-Schnittstelle mit Grafikabhängigkeiten, einschließlich der Erstellung und Verwaltung von GraphicsLayer-Instanzen. (I4a8d6, b/288494724)
  • Ein Interoperabilitätsproblem bei der 1D-Fokussuche wurde behoben, bei dem der Fokus in einem ComposeView-Element steckenblieb, das zwischen anderen Ansichten eingebettet war. (I08fd4)

Externer Beitrag

  • LocalLifecycleOwner wurde von der Compose-UI zu lifecycle-runtime-compose verschoben, damit die auf dem Compose-Tool basierenden Hilfs-APIs außerhalb der Compose-UI verwendet werden können. Vielen Dank an Jake Wharton für den Beitrag. (I6c41b, b/328263448)
  • Gleitkommazahlen-Eigenschaften für Verzerrungen werden bei allen Untertypen, die auf Verzerrungen basieren, einheitlich dargestellt. (I69f0f, b/328088992)

Version 1.7.0-alpha04

6. März 2024

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

API-Änderungen

  • Unterstützung der Handschriftfunktion mit Eingabestift für BasicTextField2 auf Geräten nach Android U. (I002e4)
  • In dieser CL wird die semantische Aktion GetScrollViewportLength hinzugefügt, damit Informationen zu den Komponenten, nach denen in der Zusammensetzung gescrollt wird, an das A11y-System weitergeleitet werden können. Diese CL wendet auch die Verwendung dieser Property in scrollbaren Foundation-Listen an. (Ic5fa2)
  • FocusRequester.createRefs ist jetzt stabil (I4d92c, b/261436820).
  • DelegatableNode.requireView() wurde eingeführt, damit Modifikatorknoten das aktuelle Android-View abrufen können, ohne eine lokale Zusammensetzung zu lesen. (I40768)
  • Neue API Path.reverse() zum Umkehren der Pfadrichtung (I36348)
  • hintLocales wurde zu KeyboardOptions hinzugefügt, damit TextFields IMEs mit bestimmten Sprachen als Hinweis auf eine bevorzugte Sprache angeben kann.
  • Stellen Sie die platformLocale-Property von Locale bereit, die das zugrunde liegende Plattformobjekt zurückgibt, z.B. java.util.Locale (I921c6)

Version 1.7.0-alpha03

21. Februar 2024

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

API-Änderungen

  • Neu: ContextualFlowRow und erweiterte FlowRow/Column mit MaxLines und Overflow. Neben der Einführung von ContextualFlowRow und ContextualFlowColumn gibt es jetzt Verbesserungen an den experimentellen FlowRow und FlowColumn, die jetzt maxLines und die Überlauf-Unterstützung umfassen. Dieses Update wurde entwickelt, um Komponenten für eine optimale Leistung bereitzustellen, wobei ContextualFlow* perfekt für eine große Anzahl von Artikeln mit einer kleinen maxLines-Konfiguration und dynamischer +N-Schaltflächen für die Anzeige weiterer Schaltflächen und FlowRow und FlowColumn ideal für eine kleine Anzahl von Artikeln, also weniger als 100 Elemente, geeignet ist. Wichtig: Wenn Sie das bestehende Verhalten in FlowRow oder FlowColumn beibehalten möchten, bei dem alle Elemente unabhängig davon, ob sie zum Maximum der Querachse passen, zusammengehören, setzen Sie overflow während der Initialisierung auf FlowRowOverflow.Visible oder FlowColumnOverflow.Visible. Sehen Sie sich die Beispiele für diese neuen Funktionen in ContextualFlowRowSample und FlowRowSample an. (Ib9135, b/293577082)
  • Fügen Sie das Semantikattribut maxTextLength hinzu, das für Textfelder festgelegt werden soll, mit denen die maximal zulässige Anzahl von Zeichen gefiltert wird. (I24d9f, b/170648072)
  • Der Modifier.inspectable-Wrapper wurde eingestellt. Diese API führt zu mehr Entwertungen als notwendig, weshalb von ihrer Verwendung abgeraten wird. Entwicklern wird empfohlen, die inspectableProperties()-Methode auf ModifierNodeElement zu implementieren, wenn sie Tools Modifikatoreigenschaften zur Verfügung stellen möchten. (Ib3236)
  • Neuer Konstruktor für PopupProperties, der vollständige Kontrolle über WindowManager.LayoutParams-Flags ermöglicht. (Ibb33e, b/312485503)
  • DelegatableNode.requireLayoutCoordinates() wurde eingeführt, um den aktuellen LayoutCoordinates einer Modifier.Node abzurufen, ohne onPlaced überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates wurde eingeführt, um den aktuellen LayoutCoordinates einer Modifier.Node abzurufen, ohne onPlaced überschreiben und die Koordinaten selbst in einer Property speichern zu müssen. (Iaebaa)
  • BasicTextField2 und zugehörige APIs unter dem Paket androidx.compose.foundation.text2 werden nach androidx.compose.foundation.text verschoben. (I9f635)
  • Eine neue ApproachLayoutModifierNode API wurde hinzugefügt, um die Erstellung benutzerdefinierter Ansatzlogik in einem expliziten Modifikatorknoten zu unterstützen. Es wurde außerdem eine neue experimentelle DeferredTargetAnimation API für Animationen hinzugefügt, deren Ziel bei der Instanziierung unbekannt ist. (I60745)
  • Neue Path APIs zum Abfragen der Richtung eines Pfads und zum Extrahieren von Konturen aus einem Path. (I63d04)
  • PathHitTest und Path.contains(Offset) wurden hinzugefügt, um zu prüfen, ob eine Path einen bestimmten Punkt enthält. (I3b218)
  • TextLayoutResult macht jetzt die getLineBaseline(lineIndex)-Methode verfügbar. Dadurch kann zusätzlich zu den vorhandenen Convenience-Properties firstBaseline und lastBaseline die Baseline einer beliebigen Textzeile gelesen werden. (Ide4e8, b/237428541)
  • Es wurde eine Methode hinzugefügt, mit der nur die Anmerkungen von zwei AnnotatedStrings verglichen werden können. (I32659)

Fehlerkorrekturen

  • Ein Problem mit der Abwärtskompatibilität mit SemanticsPropertyReceiver.performImeAction und SemanticsActions.PerformImeAction wurde behoben. (Id0528, b/322269946)

Version 1.7.0-alpha02

7. Februar 2024

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

API-Änderungen

  • Ein Problem mit der Binärkompatibilität von SemanticsPropertyReceiver.performImeAction wurde behoben. (I65865, b/322269946)
  • Der PopupProperties-Konstruktor, der einen usePlatformDefaultWidth-Parameter verwendet, ist nicht mehr experimentell. (I8f8d2)
  • Es wurde eine Überlastung von ComposeTestRule.waitUntil hinzugefügt, die eine Stringbeschreibung der Bedingung in die Zeitüberschreitungsnachricht einschließt. (I9413e)
  • Neue Semantik-API unset() zum Entfernen von Semantikeigenschaften, die in derselben Modifikatorkette hinzugefügt werden. Neue Semantikeigenschaft isOpaque. (I8c583, b/317966058, b/246056649)
  • originalEventPosition wurde aus der Kopiermethode in der öffentlichen API von PointerInputChange entfernt. (I7bead)

Fehlerkorrekturen

  • Es wurde ein a11y-Fehler behoben, bei dem Nicht-Tabs und Nicht-Optionsschaltflächen anklickbar waren, wenn sie ausgewählt wurden. (I2181c)
  • In VelocityTracker wird das Problem behoben, dass Punkte jetzt standardmäßig hinzugefügt werden. Die Fehlerbehebung kann immer noch deaktiviert werden, indem du VelocityTrackerAddPointsFix auf „false“ setzt, wenn Probleme auftreten. (Ib3877, b/269487059)
  • Das Problem mit der abwärtskompatiblen Binärinkompatibilität in TextStyle und ParagraphStyle wurde behoben. (I179f0, b/320819734)

Externer Beitrag

  • Ein neuer DialogProperties-Konstruktor ohne plattformspezifische Parameter wurde hinzugefügt. (I45829)
  • Ein neuer PopupProperties-Konstruktor ohne plattformspezifische Parameter wurde hinzugefügt. (I9a038)

Version 1.7.0-alpha01

24. Januar 2024

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

API-Änderungen

  • ClipboardManager wurde um ClipEntry und ClipMetadata erweitert, um beliebige Inhalte wie Bilder zu unterstützen.
  • Fügt die DeviceConfigurationOverride API zu ui-test hinzu, um lokal zuzulassen die das Verhalten des zu testenden Inhalts überschreiben, z. B. um eine verfügbare Größe, Gebietsschema, Layout-Richtung, Schriftgröße oder Design.

Version 1.6

Version 1.6.8

12. Juni 2024

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

Fehlerkorrekturen

  • Inkonsistenzen in der Schriftskalierung, wenn die Schriftgröße unter der untersten definierten Tabelle lag, wurden behoben. In diesem Fall interpolieren wir nun zwischen der linearen 1x-Skala und der untersten definierten Tabelle, sodass die Schriftgröße mit zunehmenden Skalierungen kontinuierlich zunimmt. (Icbae3)

Version 1.6.7

1. Mai 2024

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

Version 1.6.6

17. April 2024

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

Fehlerkorrekturen

  • Ein seltener BasicTextField-Absturz wurde behoben.

Version 1.6.5

3. April 2024

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

Version 1.6.4

20. März 2024

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

Version 1.6.3

6. März 2024

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

Version 1.6.2

21. Februar 2024

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

Version 1.6.1

7. Februar 2024 androidx.compose.ui:ui-*:1.6.1 wurde veröffentlicht. Version 1.6.1 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem mit der Abwärtskompatibilität mit SemanticsPropertyReceiver.performImeAction und SemanticsActions.PerformImeAction wurde behoben. (Ie0bb2, b/322269946)
  • Bei Layouts tritt jetzt beim Messen ein Fehler auf, wenn eine ungewöhnlich große Größe zurückgegeben wird. Diese Art von Fehler tritt normalerweise auf, wenn für die Messung direkt maximale Grenzwerte angewendet werden, ohne nach Constraints.Infinity zu suchen. Die Prüfung hilft Entwicklern, Probleme zu finden, bei denen das Layout die falsche Größe hat und nicht das Layout, in dem es enthalten ist. (I339a9)

Version 1.6.0

24. Januar 2024

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

Version 1.6.0-rc01

10. Januar 2024

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

Fehlerkorrekturen

  • Optimierte Implementierung von Vektorgrafiken zur Verbesserung der Leistung durch Minimierung zusätzlicher Neuzusammensetzungen

Version 1.6.0-beta03

13. Dezember 2023

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

Neue Funktionen

  • Ein LayoutCoordinates kann jetzt getrennt werden, ohne dass der Knoten getrennt wird. Schützen Sie diese im Compose Layout Inspector (If693)

Fehlerkorrekturen

  • PlatformImeOptions ist jetzt eine konkrete Klasse anstelle einer Schnittstelle. (If40a4)
  • Zusätzliche nachgelagerte Neuzusammensetzungen behoben, die verursacht wurden, weil für LocalSoftwareKeyboardController und LocalTextInputService bei jeder Neuzusammensetzung eines Stamms neue Werte bereitgestellt wurden. (I42190, b/310510985)

Version 1.6.0-beta02

29. November 2023

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

Version 1.6.0-beta01

15. November 2023

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

API-Änderungen

  • Der DragAndDropTarget-Modifikator übernimmt jetzt explizit die empfangende DragAndDropTarget und hat eine Lambda-Funktion, um eine Drag-and-drop-Sitzung zu aktivieren. Es gibt jetzt zwei Factory-Funktionen für eine DragAndDropModifierNode. einen für den Empfang von Übertragungen und einen für die Datenübertragung (I69481)
  • maximumFlingVelocity wurde so aktualisiert, dass es als Gleitkommazahl dargestellt wird. Die Dokumentation wurde aktualisiert, um klarere Angaben zur Einheit maximumFlingVelocity zu machen. (I8adc7)
  • onDragAndDropStart“ in der DragAndDropModifierNode-Factory wurde in „acceptDragAndDropTransfer“ umbenannt.acceptsDragAndDropTransfer wurde dem dragAndDropTarget-Modifikator hinzugefügt, damit er per Drag-and-drop akzeptiert. Diese Lambda-Funktion gibt einen gültigen DragAndDropTarget zurück, wenn sie an einer Drag-and-drop-Sitzung interessiert ist. Andere Lambdas für die Verarbeitung von Drag-Events wurden dadurch ersetzt. Eine DragAndDropTarget-Factory-Funktion wurde hinzugefügt, um Daten aus Drag-and-drop-Sitzungen zu empfangen (Iebf3a).
  • Der Typ "DragAndDropModifierNode.drag" für DragAndDropInfo wurde entfernt und akzeptiert jetzt Parameter für die Lambda-Funktion "transferData", die Verzierungsgröße und die Lambda-Funktion "Ziehen" DrawScope

    DragAndDropTarget bietet Methoden für bestimmte Drag-and-drop-Ereignisse und keine einzelne abstrakte Methode.

    onDragAndDropEvent in der Factory-Funktion für eine DragAndDropModifierNode wurde in onDragAndDropStart umbenannt, um besser zu kommunizieren, dass die angegebene DragAndDropTarget nur für eine bestimmte Drag-and-drop-Sitzung gültig ist

    DragAndDropEventType wurde entfernt (I645b1).

  • PlatformTextInputModifierNode.runTextInputSession wurde in establishTextInputSession umbenannt. (I03cd0)

  • Verbessert durchsuchbare Knoten-API-Namen, um sie verständlicher zu machen. (Ia4474)

  • OriginalText durch TextSubstitution ersetzen. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession wurde in runTextInputSession umbenannt. (Ie9c6b)

  • Die untergeordneten Elemente von SubcomposeLayout (sowie darauf basierende Layouts wie LazyColumn), die zur späteren Wiederverwendung beibehalten werden, gelten als deaktiviert. Zum Testen solcher Knoten wurde eine neue assertIsDeactivated()-Test-API eingeführt. Die restlichen Test-APIs filtern deaktivierte Knoten standardmäßig heraus. (I2ef84, b/187188981)

  • FocusDirection.In und FocusDirection.Out wurden entfernt, verwenden stattdessen FocusDirection.Enter und FocusDirection.Exit (I2f660)

  • Material SwipeToReveal APIs (für Karten und Chips) basieren jetzt auf einer Slot-basierten API (wie von Compose empfohlen) anstelle von datenklassenbasierten Instanzen, um diese Slots zu erstellen. Dies ist eine funktionsgefährdende Änderung. In der Demo und im Beispielcode finden Sie Beispiele zur Verwendung der neuen API. (Ia8943)

  • Der FontStyle(int)-Konstruktor wurde verworfen. Verwenden Sie stattdessen FontStyle.Normal oder FontStyle.Italic. (I66610)

  • FontScalable-Schnittstelle wurde in FontScaling umbenannt (Ie804a)

Fehlerkorrekturen

  • SoftwareKeyboardController.show() zeigt die Softwaretastatur nicht mehr an, wenn kein Texteditor mehr im Fokus ist. (I2165a, b/301477279)
  • Ereignisse mit Aufwärtstaste auf der Hardware für Tasten, die in derselben Schreibansicht kein Down-Ereignis erhalten haben, werden jetzt ignoriert. (Ib37b4, b/305518328)
  • Renderer-Unterstützung für „Erledigen“-Gradient in ArcLine wurde hinzugefügt. (I4d5bb)
  • Implementiere Gleichheits- und Hashcode für PageSize.Fixed. (Ie3ede, b/300134276)
  • Binär-Kompatibilitätsproblem bei der Änderung von Window Inset beheben (Iee695)
  • Entferne die Materialkernschicht für den Material3-Chip/die Schaltfläche, da die Mikro-Benchmarks auch ohne sie eine bessere Leistung zeigen. (I55555)
  • TestDispatcher-Werte, die als effectContext-zu-Compose-Tests übergeben wurden, werden jetzt zum Erstellen der Test- und Frame-Uhren verwendet. (Ia7178)

Version 1.6.0-alpha08

18. Oktober 2023

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

API-Änderungen

  • Bei Modifier.dragAndDrawSource wurde die Lambda-Funktion onDrawDragShadow in drawDragDecoration umbenannt und bei DragAndDropInfo wurde der Größenparameter in dragDecorationSize umbenannt. (Id0e30, b/303904810)
  • Führen Sie SemanticsNodeInteraction.isDisplayed() und SemanticsNodeInteraction.isNotDisplayed() ein, um zu prüfen, ob ein übereinstimmender Knoten sichtbar ist oder nicht, ohne auch auf ihn zu beanspruchen. (I2c196, b/302100809)
  • Es wurde ein spezieller Unspecified-Wert für die Felder TextAlign, TextDirection, Hyphens und LineBreak von ParagraphTextStyle eingeführt, um null zu ersetzen. Da es sich bei diesen Klassen um Inline-Klassen handelt, vermeiden wir das Boxen primitiver Typen, indem wir die Option "Nullwerte zulässig" durch "Unangegeben" ersetzen. Konstruktoren, Getter und andere Methoden in TextStyle und Absatzformat wurden aktualisiert, sodass die erwähnten Parameter als Nicht-Null-Typen akzeptiert werden. (I4197e, b/299490814)
  • Fügen Sie eine GoogleFont-Überlastung zum Lesen einer GoogleFont aus XML hinzu. (If8f59)
  • LoremIpsum PreviewParameterProvider wurde als offener Kurs hinzugefügt. (I41bf5, b/266918816, b/300116360)

Fehlerkorrekturen

  • FontFamilyResolver verwendet jetzt Dispatchers.Main für Cache-Verwaltungskoroutinen. (Ie8dd9)
  • AndroidViewBinding entfernt jetzt synchron Fragment-Instanzen, die durch Einbeziehung eines FragmentContainerView in dein Layout in das Layout von onRelease mithilfe von commitNow (anstelle des zuvor verwendeten commit) aufgebläht wurden. Dadurch werden Probleme mit der Methode der Live-Bearbeitung behoben, bei der die Komposition bei Änderungen ersetzt wird. (I58fbf)

Version 1.6.0-alpha07

4. Oktober 2023

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

API-Änderungen

  • Einführung von PlatformTextInputMethodTestOverride zum Schreiben von Tests für benutzerdefinierte Texteditoren. (ID159b)
  • Fügt den dragAndDropSource-Modifikator zum Starten von Drag-and-drop-Sitzungen und dragAndDropTarget für den Empfang von Drag-and-drop-Sitzungen hinzu. (Ib7828, b/286038936)
  • Die Sammlungen ColorList und ColorSet wurden hinzugefügt, bei denen Zuweisungen vermieden werden. (I744bd)
  • Temporäres Flag DisableNonLinearFontScalingInCompose zum Deaktivieren der nicht linearen Schriftskalierung hinzugefügt. Legen Sie DisableNonLinearFontScalingInCompose = true in Ihren Tests fest, wenn Sie Zeit zum Bereinigen benötigen. Dieses Flag wird in Compose 1.6.0-beta01 entfernt. (IC9486)

Fehlerkorrekturen

  • Optimiertes Parsen von XML-Vektor-Drawables. (Ibb015)

Version 1.6.0-alpha06

20. September 2023

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

API-Änderungen

  • Zusätzliche Optimierungen für Material-Symbole. (I3e08d)
  • Bietet die Möglichkeit, einen Modifikatorbaum nach oben/unten zu durchlaufen, um ähnliche Knoten zu finden. (I2d234)
  • onRestoreFailed()-Callback zum focusRestorer()-Modifikator hinzugefügt (Ie1d43)
  • Verschiedene Grafik-APIs wurden androidx-Anmerkungen hinzugefügt, um ColorInt, FloatRange, IntRange, Size und mehr anzugeben. (Id65c8, b/290950582)
  • showSystemUi=true zur PreviewScreenSizes-Definition hinzufügen (Ib61d3)

Änderungen im Verhalten

  • In „Compose“ wird jetzt eine nicht lineare Schriftskalierung verwendet, um die Lesbarkeit und Barrierefreiheit zu verbessern. Wenn Schriftgröße > auf 100% eingestellt, kleiner Text wird normalerweise vergrößert, aber schon großer Text vergrößert sich nur geringfügig. Außerdem werden die im SP definierten Zeilenhöhen automatisch so angepasst, dass sie proportional zur geplanten Höhe von 100% bleiben. Weitere Informationen finden Sie unter Best Practices für die Schriftskalierung. (I11518)

Version 1.6.0-alpha05

6. September 2023

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

API-Änderungen

  • Inhaltsaufnahme in AndroidComposeViewAccessibilityDelegateCompat aktivieren. (Ib2969)
  • Die Bewegungsgeschwindigkeiten in Komponenten der Datenansicht wie ScrollView und RecyclerView sind auf ViewConfiguration.ScaledMaximumFlingVelocity begrenzt. „Compose“ enthält jetzt eine eigene Version von maximumFlingVelocity, die jetzt für Draggable gilt. (Ibf974)
  • Fügt ein anfängliches Gerüst hinzu, um Drag-and-drop-APIs auf der Plattform zu unterstützen. (If84ce)
  • deviceId zu RotaryScrollEvent hinzufügen (Iba3bf)
  • Die ui-tooling Devices API wurde aktualisiert, sodass neuere Geräte (Ib25b4) einbezogen werden

Version 1.6.0-alpha04

23. August 2023

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

API-Änderungen

  • Es wurde eine Methode zum Deaktivieren von ReusableComposition hinzugefügt. Dabei werden Beobachtungen entfernt, aber Knoten beibehalten. Die deaktivierte Zusammensetzung kann durch Aufrufen von setContent wieder aktiviert werden. (Ib7f31)
  • ReusableComposition-Schnittstelle zur Verwaltung des Lebenszyklus und der Wiederverwendung von Unterzusammensetzungen hinzugefügt. (I812d1, b/252846775)
  • Modifier.focusGroup wurde zu stabilen APIs hochgestuft. (I7ffa3)
  • Verschiedene Grafik-APIs wurden androidx-Anmerkungen hinzugefügt, um ColorInt, FloatRange, IntRange, Size und mehr anzugeben. (I70487, b/290950582)
  • Die ColorFilter API wurde aktualisiert und enthält jetzt konkrete abgeleitete Klassentypen, um die Überprüfbarkeit von Parametern zu verbessern. (I5fe29)
  • Einführung der Wear-Tooling-Vorschaubibliothek zur Auflistung gültiger Wear-Geräte, die für UI-Vorschauen verwendet werden können (Ib036e)
  • Die FontScalable-Schnittstelle wurde erstellt, um die Schriftskalierung der Benutzeroberfläche für die Kompaktheitsgrad zu verarbeiten. (I2cf3f)

Version 1.6.0-alpha03

9. August 2023

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

API-Änderungen

  • Neuer Typ von Übergang zwischen Ein- und Ausblenden, bei dem der Inhalt an die Größe des Animationscontainers beim Betreten und Beenden angepasst wird Beenden Sie die Animation. LookaheadScope Der zusammensetzbare Spaß und die Benutzeroberfläche sind jetzt stabil. (Ifb2ce)
  • Unterstützung für die Konfiguration von privateImeOptions hinzugefügt (Idb772)

Fehlerkorrekturen

  • PopupPositionProvider.calculatePosition aktualisiert jetzt automatisch die Position des Pop-ups, wenn sich der in der Berechnung gelesene Zustand ändert. (I676a1, b/292257547)
  • Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn readOnly auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wenn readOnly im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589)
  • Erweiterte Anwendung globaler Assertions bei UI-Tests. (I1f90d)

Version 1.6.0-alpha02

26. Juli 2023

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

API-Änderungen

  • Es wurde eine Schnittstelle für die Dienstsuche hinzugefügt, die von Implementierern von Kompositionen implementiert werden kann. Diese ermöglicht eine Implementierung von Kompositionen, die die Suche an einen anderen Kompositionsdelegatdienst auf die ursprüngliche Komposition delegiert. Dies sollte nicht als „directy“ bezeichnet werden und wird verwendet, um in der Laufzeit experimentelle APIs zu erstellen, die in verpackten Versionen des Composers zu finden sind, z. B. im UI-Modul. (I296b9)
  • Komplett überarbeitete PlatformTextInput* API. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController und LocalSoftwareKeyboardController befinden sich nicht mehr in der Testphase. LocalSoftwareKeyboardController ist jetzt auch ein richtiger CompositionLocal. (I4c364)
  • LookaheadLayout und LookaheadLayoutScope wurden für einige Releases eingestellt und sind jetzt entfernt. Die Ersatz-APIs sind LookaheadScope und funktionieren mit jedem Layout. (I12ac3)
  • SemanticsNodeInteraction.requestFocus wurde hinzugefügt, um den Fokus bei Tests bequemer und auffindbarer zu machen. (Ie8722)
  • Fügen Sie experimentelle APIs zum Registrieren globaler Assertions hinzu, um sie in Zukunft für Framework-Tests zu verwenden. (I12d77)

Fehlerkorrekturen

  • Der erste Aufruf des update-Callbacks von AndroidView wird jetzt zurückgestellt, bis die Ansicht angehängt wird. Er wird nicht ausgeführt, wenn die Zusammensetzung, mit der AndroidView angewendet wird, angewendet wird. Dadurch wird ein Fehler behoben, bei dem der update-Callback nicht ungültig wurde, wenn ein gelesener Status sofort durch einen Effekt geändert wurde. (Ie9438, b/291094055)

Version 1.6.0-alpha01

21. Juni 2023

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

Neue Funktionen

  • Lookahead in LazyList wird unterstützt. Dadurch kann LazyList im Lookahead-Pass alle Animationen (z. B. Animation der Elementplatzierung, AnimatedVisibility usw.) umgehen und die Lookahead-Größe und -Position für alle untergeordneten Elemente berechnen. Nach dem Lookahead-Pass können untergeordnete Elemente von LazyList unabhängig voneinander animiert werden, wie im Lookahead-Pass dargestellt.

Verhaltensänderung: „includeFontPadding“ ist in „Compose“ jetzt standardmäßig auf „false“ gesetzt

includeFontPadding ist in „Schreiben“ jetzt standardmäßig auf „false“ gesetzt (21d806).

includeFontPadding ist ein altes Attribut, das steuert, ob oberhalb der ersten und letzten Zeile des Textes ein zusätzlicher Abstand hinzugefügt werden soll, um Zeichen aufzunehmen, die über oder unter den Grundlinien des Textes stehen.

Wenn Sie diese Version von „Compose“ aktualisieren, wird die Darstellung aller Texte in Ihrer Benutzeroberfläche geändert, indem der zusätzliche Abstand oben in der ersten und letzten Zeile jedes angezeigten Texts entfernt wird.

Je nach Ihren UI-Anforderungen und den verwendeten Schriftmesswerten sollten die Änderungen minimal sein. Es können jedoch Probleme wie die folgenden auftreten: - Fehlerhafte Screenshot-Tests. Korrigieren Sie die Benutzeroberfläche, falls erforderlich, und generieren Sie die goldenen Bilder neu. - Der Text ist nicht korrekt ausgerichtet. Entfernen Sie gegebenenfalls benutzerdefinierte Abstände für ausgeschlossene Elemente oder fügen Sie einen zusätzlichen Abstand hinzu.

Sie können includeFontPadding aktivieren, indem Sie für jeden Text PlatformTextStyle verwenden:

Text(
 text = myText,
 style = TextStyle(
   lineHeight = 2.5.em,
   platformStyle = PlatformTextStyle(
     includeFontPadding = true/false
   )
   /* … */
  )
)

Du kannst includeFontPadding für alle deine Texte aktivieren, indem du deine Material-Stile konfigurierst. Beachten Sie, dass die Parameternamen zwischen M2 und M3 variieren.

val Typography = Typography(
   body1 = TextStyle(
       fontFamily =    /* … */,
       fontSize =    /* … */,
       platformStyle = PlatformTextStyle(
           includeFontPadding = false
       )
   /* … */
   )
)

MaterialTheme(
   typography = Typography,
   /* … */
)

Weitere Informationen zu „Compose“ includeFontPadding finden Sie in der Entwicklerdokumentation und in diesem Blogpost.

Sollten im Zusammenhang mit dieser Änderung Probleme auftreten, melden Sie diese bitte über die Problemverfolgung.

API-Änderungen

  • InputConnection#requestCursorUpdates unterstützen (I0c69b)
  • FocusRequester.saveFocusedChild und FocusRequester.restoreFocusedChild hinzugefügt (Ic557e, b/272302679, b/275157318)
  • Füge den Wurfables, die beim Laden von Bitmap-Assets mit einer Beschreibung des Asset-Pfads, der nicht geladen werden konnte, den Typ ResourceResolutionException hinzu. (I19f44, b/230166331, b/278424788)
  • Optimierte Zugänglichkeit für Leistung und Arbeitsspeicherzuweisung (Iede48)
  • Semantikeigenschaften und Aktionen zur Unterstützung der Textübersetzung wurden hinzugefügt. (I4a6bc)
  • Neue Property in IntrinsincMeasureScope und ihren Implementierungen (z.B. MeasureScope), die angibt, ob die aktuelle Messungskarte eine Lookahead-Karte ist. (I7a812)
  • Die DrawScope API wurde aktualisiert, um die Möglichkeit zu bieten, das Rendering auf einen anderen Canvas mit alternativer Dichte/Layoutrichtung und Größe zu übertragen.
  • DrawContext wurde aktualisiert, um die Konfiguration von Dichte und Layoutrichtung zu unterstützen und den Canvas konfigurierbar zu machen. (Ie1f9b, b/225408150)
  • Paragraph#fillBoundingBoxes wurde hinzugefügt, um Zeichenbegrenzungsrahmen zu berechnen. (If30ee)
  • Ein Satz gemeinsamer MultiPreviews (Ia5a27) wurde hinzugefügt.

Fehlerkorrekturen

  • Es wurde eine FocusTargetModifierNode-Oberfläche hinzugefügt, die zum Erstellen einer benutzerdefinierten FocusTarget verwendet werden kann. (I9790e)
  • Die fallback*-Parameter im TextMeasurer-Konstruktor wurden in default* umbenannt. (I940a5)
  • SemanticsPropertyReceiver.performImeAction wurde in onImeAction und SemanticsActions.PerformImeAction in OnImeAction umbenannt. (I8e841)
  • Fügt ein Rad hinzu, um das Scrollen mit der Maus von einem Ziehen bei verschachteltem Scrollen (insbesondere in NestedScrollConnection) zu unterscheiden. (Ie57e4)
  • Es wurde die asComposePaint API hinzugefügt, um toComposePaint zu ersetzen, da das zurückgegebene Objekt die ursprüngliche android.graphics.Paint umschließt (I22b4c).
  • SemanticsProperties.imeAction verwerfen und durch einen neuen Parameter für SemanticsActions.performImeAction ersetzen. (I4a587)
  • Die Auswahl per Maus wird jetzt unterstützt. Die berührungsbasierte Auswahl wird um Wort für Wort erweitert und um Zeichen verkleinert. (IC0c6c, b/180639271)
  • Paragraph-Methoden, die bisher AssertionError für Offsets außerhalb des gültigen Bereichs ausgelöst haben, geben jetzt IllegalArgumentException wie MultiParagraph aus. (I549d3, b/243338896)

Version 1.5

Version 1.5.4

18. Oktober 2023

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

Version 1.5.3

4. Oktober 2023

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

Fehlerkorrekturen

  • (b/301209788) TextField hat beim Fokussieren und Eingeben von koreanischer Eingabe gelegentlich falsche Befehle angewendet, wodurch Zeichen verloren gingen.

Version 1.5.2

27. September 2023

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

Fehlerkorrekturen

  • Es wurde eine Problemumgehung für Abstürze hinzugefügt, bei denen über einen Hintergrundthread auf die Accessibility Scroll API zugegriffen wurde.
  • Das Hinzufügen nicht angehängter Knoten zur Semantikstruktur wurde behoben.

Version 1.5.1

6. September 2023

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

Fehlerkorrekturen

  • Textfelder, die die Tastatur anzeigen und bearbeitbar sind, wenn readOnly auf „true“ gesetzt ist, wurden korrigiert. Außerdem wurde behoben, dass die Tastatur nicht angezeigt wurde, wenn readOnly im Fokus von "true" zu "false" geändert wurde. (I34a19, b/246909589)

Version 1.5.0

9. August 2023

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

Version 1.5.0-rc01

26. Juli 2023

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

Fehlerkorrekturen

  • Ein Absturz behoben, der bei der Verwendung von SubcomposeLayout in movableContentOf() auftrat, wurde behoben.

Version 1.5.0-beta03

28. Juni 2023

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

Fehlerkorrekturen

  • Es wurde eine FocusTargetModifierNode-Oberfläche hinzugefügt, mit der ein benutzerdefiniertes FocusTarget erstellt werden kann. (Ifb1d6)
  • Es wurde ein Problem mit zusammensetzbaren Funktionen für Dialogfelder und Pop-ups behoben, die dazu führten, dass die Größe des untergeordneten Fensters bei usePlatformDefaultWidth=true nicht wie erwartet geändert wurde. (I112ee)

Version 1.5.0-beta02

7. Juni 2023

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

API-Änderungen

  • Die asComposePaint API wurde hinzugefügt, um die Nutzung einer android.graphics.Paint-Instanz zur Verwendung in Compose zu ermöglichen.

Fehlerkorrekturen

  • Es wurde die asComposePaint API hinzugefügt, um toComposePaint zu ersetzen, da das zurückgegebene Objekt die ursprüngliche android.graphics.Paint umschließt (I22b4c).

Version 1.5.0-beta01

24. Mai 2023

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

API-Änderungen

  • Zuweisungen bei Neuzusammensetzung, Farbanimationen und AndroidComposeView (Ib2bfa) wurden entfernt.
  • Fügt Hilfsfunktionen wie CacheDrawModifierNode() hinzu, um das Delegieren zu ermöglichen (Icf8f9)
  • Einführung der isLookingAhead-Property, die über MeasureScope zugänglich ist, um Lookahead-Ergebnisse zu beobachten und gegebenenfalls den Hauptpass zu beeinflussen. (Ibf4c3)
  • Neue Semantikeigenschaft traversalIndex, eine Gleitkommazahl zur Neuanordnung von Knoten beim TalkBack-Durchlauf (niedrigere Werte stehen davor). (I9a81b, b/186443263)
  • Semantikeigenschaft „isContainer“ wird in „isTraversalGroup“ umbenannt (I121f6)
  • ColorProducer hat jetzt einen operator fun invoke anstelle von produce (I4a9a2)
  • Fügen Sie die Transformation API Path hinzu, um Umwandlungs-, Skalierungs- und Rotationstransformationen auf Pfadobjekte anzuwenden. (I23434, b/233772232)
  • Die Methode von ColorProducer heißt produce. (I78bde)
  • toFrameworkColorSpace in toAndroidColorSpace umbenennen (I4f547)
  • Benennen Sie ColorLambda in ColorProducer um. (I73b1a)
  • Einführung von APIs zur Konvertierung zwischen den Farbraumtypen „Android“ und „Compose“ (Ie7db4, b/279979665)
  • BasicText wurde ein Farbparameter hinzugefügt, um eine effiziente Animierung oder Festlegung der Textfarbe zu ermöglichen. (Iffd88, b/246961787)
  • TextRange.constrain wurde in TextRange.coerceIn umbenannt. (I31be2)
  • Der optimierte TextStyle.merge(...) mit vollständiger Parameterliste wurde hinzugefügt. (Iad234, b/246961787)
  • Viele Text-APIs wie Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) und MultiParagraph.paint(Brush) wurden stabilisiert. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding wurde nicht mehr eingestellt. Ursprünglich wollten wir das Feld entfernen. Das Feedback zeigt jedoch, dass Entwickler diese Konfigurationsoption benötigen. Entfernen Sie daher die Einstellung aus dem Feld (I98e96, b/277703184).
  • Öffentliche Methode TextRange.constrain wurde hinzugefügt. (I97912)
  • UrlAnnotation-Werte in AnnotatedString Sek. können jetzt über Bedienungshilfen wie TalkBack geöffnet werden. (If4d82, b/253292081)
  • Die Semantikaktion InsertTextAtCursor für Textfelder wurde hinzugefügt. (I11ed5)
  • Der LineHeightStyle.Alignment(topRatio)-Konstruktor wird zur Stable API hochgestuft. (I79c32, b/261565383)
  • TextMeasurer und zugehörige APIs sind nicht mehr experimentell. (I74647, b/261581753)
  • Die Semantikaktion PerformImeAction zum Aufrufen der IME-Aktion auf Texteditorknoten wurde hinzugefügt. (Ic606f, b/269633506)
  • PlatformTextInput APIs sind nicht mehr experimentell für Android. (I668eb)
  • Name des Wertparameters für Enum.valueOf geändert (Ia9b89)
  • mehr ausgelöste Ausnahmen von enum valueOf (I818fe)
  • Einführung einer neuen Low-Level-PlatformTextInputAdapter-API zum Erstellen benutzerdefinierter Texteingabeimplementierungen, die direkt mit Plattform-APIs kommunizieren. (I58df4)
  • Der BlendMode-Parameter wurde den Methoden DrawScope.drawText, Paragraph.paint und MultiParagraph.paint hinzugefügt, um beim Zeichnen von Text auf Canvas verschiedene Mischalgorithmen zu unterstützen. (I57508)
  • Benennen Sie Font.MaximumAsyncTimeout in Font.MaximumAsyncTimeoutMillis um. Nur umbenennen. (I07af5)
  • Aktualisierte DPI-Werte von @Preview Referenzgeräten (Id6151, b/254528382)
  • Füge BasicText die Parameter brush und alpha hinzu, um den Textpinsel effizient zu animieren oder festzulegen.
  • Definieren Sie kastenfreie Lambda-Typen für Float, Double, Long, Int und Short in :ui:ui-unit (I6f18d, b/246961787).

Fehlerkorrekturen

  • Mehrere Zuweisungen bei der Zeiger-Geschwindigkeitsverfolgung wurden entfernt (I26bae).
  • Weniger Zuweisungen bei der Verwaltung von Layout- und Zeigereingabe (I5333a)
  • Vektorspeichernutzung und Rendering der ersten Frames optimieren (I2f3c6)
  • Zuweisungen beim Zeichnen von Linien und Punkten mit Canvas wurden entfernt (I9f535).
  • Dokumente für AndroidFont.fontVariationSettings (I7d9e2) hinzufügen

Externer Beitrag

  • Verbesserte Leistung und geringere Zuweisungen in Vector APIs (I906cb)

Version 1.5.0-alpha04

10. Mai 2023

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

Neue Funktionen

  • Verbesserte Modifier.Node-Delegierung Es wurde eine verbesserte Möglichkeit zum Delegieren an andere Modifier.Node-Instanzen über eine DelegatingNode hinzugefügt. Dazu können die APIs delegate und undelegate verwendet werden. Vor dieser Änderung musste jede API des delegierenden Knotens explizit an den delegierten Knoten delegiert werden. Nach dieser Änderung werden Knotenschnittstellen implizit delegiert, es sei denn, DelegatingNode überschreibt sie explizit. (67352bc)

API-Änderungen

  • Stell NestedScrollModifierNode vor, ein NestedScroll Modifier.Node, das delegiert werden kann. (I69513)
  • Der zusammensetzbaren Funktion AndroidViewBinding wurden die Parameter onReset und onRelease hinzugefügt, was die zusammensetzbare Funktion AndroidView widerspiegelt und die Unterstützung für die Wiederverwendung von Ansichten mit ViewBinding aktiviert wurde. (I00b1e, b/276802519)
  • Die Compose Path API wurde aktualisiert, um Zurückspulen zu unterstützen, um Anwendungsfälle mit häufiger Pfadbearbeitung mit schnellerer Wiederverwendung zu unterstützen. (I7b797)
  • Der optimierte TextStyle.merge(...) mit vollständiger Parameterliste wurde hinzugefügt. (Iad234, b/246961787)
  • Viele Text-APIs wie Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) und MultiParagraph.paint(Brush) wurden stabilisiert. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding wurde nicht mehr eingestellt. Ursprünglich wollten wir das Feld entfernen. Das Feedback zeigt jedoch, dass Entwickler diese Konfigurationsoption benötigen. Entfernen Sie daher die Einstellung aus dem Feld (I98e96, b/277703184).

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem die Tastatur für Textfelder in Dialogfeldern, die nicht mit der zusammensetzbaren Funktion Dialog erstellt wurden, nicht angezeigt wurde. (I82551, b/262140644)

Version 1.5.0-alpha03

19. April 2023

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

Neue Funktionen

  • Das neue Standardverhalten für SubcomposeLayout in LookaheadScope: SubcomposeLayouts ohne bedingte Slots (z. B. TabRow, Scaffold, BoxWithConstraints usw.) funktioniert jetzt gut mit Lookahead-Animationen.

API-Änderungen

  • Mit der neuen Standard-intermediateMeasurePolicy, die die Messungsrichtlinie aus dem Lookahead-Pass wiederverwendet, können SubcomposeLayout-Untertypen ohne bedingte Slots wie Scaffold, TabRow und BoxWithConstraints standardmäßig mit Lookaheads verwendet werden. (Id84c8)
  • Der für ein Android-Fenster erstellte Recomposer blockiert jetzt nur dann withFrameNanos-Aufrufe anstelle aller Kompositionen, wenn eine ON_STOP-Benachrichtigung eingeht. Das bedeutet, dass Fenster, die mit beendeten Aktivitäten verknüpft sind, bei Datenänderungen weiterhin neu zusammengesetzt werden, aber die Animationen oder andere Aufrufer von withFrameNanos werden blockiert. (Id9e7f, b/240975572)
  • Ändert „motionEventSpy“ in „Stabil“. (Ic5ec4, b/261560988)
  • Öffentliche Methode TextRange.constrain wurde hinzugefügt. (I97912)
  • PlatformTextStyle.includeFontPadding wurde nicht mehr verworfen, um Entwickler zu ermutigen, diese Kompatibilitäts-API zu verwenden, um die Einstellung includeFontPadding auf „false“ zu ändern und zu testen. (I98e96, b/277703184)

Version 1.5.0-alpha02

5. April 2023

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

API-Änderungen

  • Neue SubcomposeLayout API, die eine zusätzliche Richtlinie für Zwischenwerte zum Verarbeiten von Mess-/Layoutlogik während Lookahead-Animationen verwendet. (I017d3)
  • PointerInput ist jetzt faul und verwendet Modifier.Node, um die Leistung zu verbessern. Weitere Informationen zur geringfügigen Verhaltensänderung (15 Tage)
  • Ändert experimentelle APIs mit Schlüsselereignissen in stabil. (I9c7d8, b/261566839, b/261567368)
  • Ändert experimentelle APIs in PointerInputChange in stabil. (I1b543, b/261560988, b/261565762, b/261565749)
  • Fügt eine Möglichkeit zum Instanziieren einer SuspendingPointerInputModifierNode für komplexere Modifier.Node-Implementierungen hinzu. (IC4933)
  • UrlAnnotation-Werte in AnnotatedString Sek. können jetzt über Bedienungshilfen wie TalkBack geöffnet werden. (If4d82, b/253292081)
  • Es wurde eine API hinzugefügt, um Hardwareschlüssel abzufangen, bevor sie an die Bildschirmtastatur gesendet werden (I4f4c6, b/186800395).
  • Die Semantikaktion InsertTextAtCursor für Textfelder wurde hinzugefügt. (I11ed5)
  • Bei textbezogenen Testaktionen (z.B. performTextInput) wird der Fokus jetzt direkt über die semantische Aktion angefordert, anstatt auf das Feld zu klicken. (I6ed05)

Fehlerkorrekturen

  • Für Texttestaktionen müssen jetzt Textfelder aktiviert werden. (Iab328)

Version 1.5.0-alpha01

22. März 2023

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

API-Änderungen

  • Modifier.intermediateLayout erfordert jetzt kein explizites LookaheadScope. Der Messwertblock in „intermediateLayout“ hat „IntermediateMeasureScope“ als Empfänger und bietet damit das praktische CoroutineScope, LookaheadScope und MeasureScope.(Ibe2e5)
  • LookaheadLayout wurde durch LookaheadScope ersetzt, das kein Layout mehr ist. Dadurch können Chid-Inhalte in einem LookaheadScope direkt über die MeasurePolicy des übergeordneten Elements gesteuert werden. (Ibe2e5)
  • Fügt Modifier.Node#coroutineScope hinzu, damit Modifier.Nodes Koroutinen starten kann. (I76ef9)
  • Modifier.Nodes zum Lesen von CompositionLocals durch Implementieren der CompositionLocalConsumerModifierNode-Schnittstelle zulassen (Ib44df)
  • Weitergabe der Klasse "@Veraltet" an eine Property. (I882d1)

Version 1.4

Version 1.4.3

3. Mai 2023

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

Fehlerkorrekturen

  • Es wurde ein Problem behoben, bei dem AndroidView bei Verwendung mit bestimmten Modifikatoren nicht korrekt dargestellt wurde. (I4dc77, b/274797771)
  • Ein Fehler in der 2D-Fokussuche wurde behoben, der DropDown-Menüs betraf (b/276811828).
  • Es wurde ein Fehler in den Eingabe-/Exit-Eigenschaften des benutzerdefinierten Fokus behoben, bei dem der Eingabe-/Exit-Block nur beim ersten Aufrufen der Lambda-Funktion ausgeführt wurde (b/277234245).
  • Eine Regression im Fokussystem, die beim Lesen von focusProperties zu einem Absturz geführt hat, wurde behoben. (b/271324781, b/274897776)

Version 1.4.2

19. April 2023

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

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem AndroidView seine Modifikatoren nicht korrekt wiederverwendet hat, was möglicherweise zu unerwartetem Verhalten und Abstürzen führte. (Ib67ee, b/275919849)
  • Problem behoben, bei dem die Tastatur für Textfelder in nicht mit der zusammensetzbaren Dialog-Funktion erstellten Dialogfeldern nicht angezeigt wurde (I82551, b/262140644)

Version 1.4.1

5. April 2023

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

Fehlerkorrekturen

  • Behebt ein Problem mit ParentDataModifier, das AndroidView nicht betrifft (b/274797771)

Version 1.4.0

22. März 2023

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

Wichtige Änderungen seit Version 1.3.0

  • Es wurde eine neue PinnableContainer API hinzugefügt, mit der Lazy-List-Elemente angepinnt werden können, damit sie nicht verworfen werden, wenn sie außerhalb des gültigen Bereichs gescrollt werden. Modifier.focusable() verwendet diesen Mechanismus beispielsweise, um das Element anzupinnen, auf dem der Fokus gerade liegt. (Ib8881, b/259274257, b/195049010)
  • Das Fokussystem wird mithilfe der neuen experimentellen Modifier.Node APIs neu geschrieben. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/916/914{/151818)
  • In der IsContainer-Semantikeigenschaft auf Oberflächen hinzugefügt. Diese Eigenschaft wird in einer späteren Änderung verwendet, mit der die Durchquerungsreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen festgelegt wird. (I63379)
  • Die neue Rolle DropdownList für Bedienungshilfen wurde hinzugefügt. Damit kann das Verhalten von TalkBack beim Fokussieren auf android.widget.Spinner repliziert werden. (I177e5, b/236159001)
  • Du kannst jetzt PlatformTextStyle(emojiSupportMatch) verwenden, um die Verarbeitung der Emoji-Unterstützung für einen einzelnen Absatz zu deaktivieren. (Ia7100, b/139326806)
  • Bei Android Compose-UI-Tests werden jetzt Layoutübergänge für jeden Frame ausgeführt, wenn Frames ausgeführt werden, um inaktiv zu werden (z.B. über waitForIdle). Dies kann sich auf Tests auswirken, bei denen die Bestätigung für einzelne Frames von Layoutanimationen durchgeführt wird. (I8ea08, b/222093277)
  • Die experimentelle Funktion TextMotion wurde zu TextStyle hinzugefügt, um für Text entweder Static(default) oder Animiert zu definieren. Verwenden Sie TextMotion.Animated, wenn der Text durch Animation skaliert, übersetzt oder gedreht werden soll. (I24dd7)

Version 1.4.0-rc01

8. März 2023

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

API-Änderungen

  • Es wurde eine Überlastung der zusammensetzbaren Funktion AndroidView hinzugefügt, die den Parameter onReset akzeptiert. Damit können View-Instanzen wiederverwendet werden, wenn ihr Knoten in der Zusammensetzung verworfen und auf kompatible Weise wiederverwendet wird. Dies ist besonders nützlich für LazyRows und LazyColumns der Ansichten. (I3f10d, b/230099236)
  • Einführung einer neuen Low-Level-PlatformTextInputAdapter-API zum Erstellen benutzerdefinierter Texteingabeimplementierungen, die direkt mit Plattform-APIs kommunizieren. (I58df4)

Fehlerkorrekturen

  • Mit der Semantikaktion SetText von BasicTextField wird der Textpuffer jetzt mit demselben Codepfad wie IME-Updates und die Testfunktionen (z.B. performTextReplacement) aktualisiert.
  • Für Texttestfunktionen performTextClearance, performTextReplacement und performTextSelection wird jetzt SemanticsActions verwendet. (I0807d, b/269633168, b/269624358)

Version 1.4.0-beta02

22. Februar 2023

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

API-Änderungen

  • Die modifierElementOf() API wurde entfernt. Bitte verlängern Sie es stattdessen direkt von ModifierNodeElement. (I2256b)
  • Es wurde ein neuer Modifier.Node.onReset()-Callback hinzugefügt, mit dem du einen lokalen Status zurücksetzen kannst, um den Fall, dass Layout wiederverwendet wird, korrekt zu verarbeiten (z. B. als Element von LazyColumn). Das FocusTargetModifierNode-Objekt wurde korrigiert, sodass der Fokus nun korrekt zurückgesetzt wurde. (I65495, b/265201972)
  • Der BlendMode-Parameter wurde den Methoden DrawScope.drawText, Paragraph.paint und MultiParagraph.paint hinzugefügt, um beim Zeichnen von Text auf Canvas verschiedene Mischalgorithmen zu unterstützen. (I57508)

Fehlerkorrekturen

  • Der Algorithmus für die Fokusreihenfolge von Bedienungshilfen wurde verbessert. So werden beispielsweise die oberen/unteren Balken häufiger zuerst bzw. zuletzt vorgelesen (74e9c5).

Version 1.4.0-beta01

8. Februar 2023

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

API-Änderungen

  • PinnableContainer.PinnedHandle.unpin() wurde in release() (I4667a) umbenannt
  • waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists und waitUntilDoesNotExist wurden als experimentelle API zu ComposeTestRule hinzugefügt, wodurch die waitUntil API so erweitert wird, dass sie alle Matcher und eine beliebige Anzahl von Knoten akzeptiert. Weitere Informationen finden Sie unter ComposeTestRule. (Ifa1b9, b/226934294)
  • Benennen Sie Font.MaximumAsyncTimeout in Font.MaximumAsyncTimeoutMillis um. (I07af5)
  • GoogleFont.Provider.AllFontsListUri wurde entfernt und stattdessen in ktdoc verknüpft. (I16f29)

Fehlerkorrekturen

  • Dokumente für AndroidFont.fontVariationSettings (I7d9e2) hinzufügen

Version 1.4.0-alpha05

25. Januar 2023

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

API-Änderungen

  • Einführung neuer experimenteller Überlastungen für die runComposeUiTest- und create*ComposeRule-Funktionen, die CoroutineContext-Parameter akzeptieren. Der Kontext wird für die Testzusammensetzung und alle LaunchedEffect- und rememberCoroutineScope()-Aufrufe in der Zusammensetzung verwendet. (I10614, b/265177763)
  • Neue API zum Erfassen der eindimensionalen Geschwindigkeit hinzufügen (If5a82)
  • FocusRequester ist jetzt als @Stable gekennzeichnet. (I580ee)
  • Entfernen Sie eine experimentelle Annotation aus dem DialogProperties-Konstruktor, die einen usePlatformDefaultWidth-Parameter verwendet. (IC4048)
  • Funktion zur Berechnung von Position und Tangente in einer Entfernung auf einem Pfad mit PathMeasure.getPosition() und PathMeasure.getTangent() (I3b47c) hinzugefügt
  • Der versehentlich offengelegte öffentliche Setter wurde am PlatformParagraphStyle entfernt. (I07f47)
  • Mehr Typen/Null-Zulässigkeit von Inline-/eingestellten/verborgenen Funktionen (I24f91)
  • Fügen Sie AnnotatedString.hasStringAnnotations hinzu, um Annotationen ohne Zuweisungen abzufragen. (I94dfe, b/246960758)
  • Es wurde eine neue Überlastung für die Funktion TextMeasurer.measure hinzugefügt, die eine String als Text annimmt. (I47b2d, b/242705342)
  • Die APIs LineBreak und Hyphens in TextStyle wurden auf die stabile Version umgestellt. (IC1e1d)

Externer Beitrag

  • notifyFocusedRect-Methoden in TextInputSession und TextInputService werden nicht mehr verworfen. (I23a04, b/262648050)

Version 1.4.0-alpha04

11. Januar 2023

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

Neue Funktionen

  • Es wurde eine neue PinnableContainer API hinzugefügt, mit der Lazy-List-Elemente angepinnt werden können, damit sie nicht verworfen werden, wenn sie außerhalb des gültigen Bereichs gescrollt werden. Modifier.focusable() verwendet diesen Mechanismus beispielsweise, um das Element anzupinnen, auf dem der Fokus gerade liegt. (Ib8881, b/259274257, b/195049010)
  • Das Fokussystem wird mithilfe der neuen experimentellen Modifier.Node APIs neu geschrieben. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/916/914{/151818)
  • In der IsContainer-Semantikeigenschaft auf Oberflächen hinzugefügt. Diese Eigenschaft wird in einer späteren Änderung verwendet, mit der die Durchquerungsreihenfolge basierend auf der semantischen Bedeutung von Elementen wie Oberflächen festgelegt wird. (I63379)
  • Die neue Bedienungshilfe-Rolle DropdownList wurde hinzugefügt. Damit kann das TalkBack's-Verhalten bei der Fokussierung auf android.widget.Spinner repliziert werden. (I177e5, b/236159001)
  • Du kannst jetzt PlatformTextStyle(emojiSupportMatch) verwenden, um die Verarbeitung der Emoji-Unterstützung für einen einzelnen Absatz zu deaktivieren. (Ia7100, b/139326806)
  • Bei Android Compose-UI-Tests werden jetzt Layoutübergänge für jeden Frame ausgeführt, wenn Frames ausgeführt werden, um inaktiv zu werden (z.B. über waitForIdle). Dies kann sich auf Tests auswirken, bei denen die Bestätigung für einzelne Frames von Layoutanimationen durchgeführt wird. (I8ea08, b/222093277)
  • Die experimentelle Funktion TextMotion wurde zu TextStyle hinzugefügt, um für Text entweder Static(default) oder Animiert zu definieren. Verwenden Sie TextMotion.Animated, wenn der Text durch Animation skaliert, übersetzt oder gedreht werden soll. (I24dd7)

API-Änderungen

  • Das Argument maxSize: IntSize in drawText wurde durch size: Size ersetzt, um es in andere DrawScope-Funktionen einzufügen. size ist standardmäßig auf Size.Unspecified gesetzt. Das sollte das vorherige Standardverhalten nicht ändern. (Icd27d)
  • Der eingestellte experimentelle Schriftartkonstruktor wurde entfernt. (I8a724, b/261435386)
  • Die UI-Tooling-Datenklasse Group hat jetzt das Feld isInline, das angibt, ob die Gruppe für einen Aufruf einer zusammensetzbaren Inline-Funktion vorgesehen ist. Wenn isInline auf true gesetzt ist, erfolgt der Aufruf an eine zusammensetzbare Inline-Funktion. Der Wert kann jedoch bei Aufrufen von zusammensetzbaren Inline-Funktionen auf „false“ gesetzt sein, die aus Modulen stammen, die mit einer Version des Compiler-Plug-ins kompiliert wurden, das keine Inline-Funktionsinformationen generiert. (Idb846)
  • Umstellung einer Reihe zuvor experimenteller APIs auf stabile Version
  • Rotary Scroll Event API ist jetzt stabil (I42ad3, b/261561229).
  • FontVariation API ist jetzt stabil (I8779f, b/241016309)
  • Alle Font()-Konstruktoren sind jetzt stabile API (I5948b, b/261435386).
  • DeviceFontFamilyName ist jetzt stabil (I8b640, b/261435386).
  • Der AndroidFont-Konstruktor mit variationSettings ist jetzt eine stabile API und kann zum Erstellen neuer Arten von Schriftdeskriptoren verwendet werden. (I5adcc, b/261565807)
  • Die createFontFamilyResolver API ist jetzt stabil. Damit lassen sich beim asynchronen Laden von Schriftarten nicht abgefangene Ausnahmen abfangen. (Ibb481, b/261435386)
  • Die Font.loadingStrategy API ist jetzt stabil. (I5937c, b/261435386)
  • Die GoogleFont API ist jetzt stabil. (IC90b0, b/261435386)
  • TextUnit(float, TextUnitType) ist jetzt eine stabile API. (I90c84, b/261561612)
  • pluralStringResource ist jetzt eine stabile API. (I09849, b/261439703)

Version 1.4.0-alpha03

7. Dezember 2022

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

API-Änderungen

  • ExperimentalComposeUiApi wird aus PointerIcon entfernt (I23af8)
  • Stell die Bedienungshilfen für Seiten vor: PageUp, PageDown, PageLeft, PageRight. Beachten Sie, dass diese erst ab API 29 verfügbar sind. (Ida4ab)
  • Die rememberNestedScrollConnection-Parameteransicht wurde von der Stammansicht auf die Hostansicht aktualisiert. (Ia5200)
  • Es wurde eine Modifier-API hinzugefügt, um Scroll-Informationen von Ancestors abzufragen. (I2ba9d, b/203141462)
  • Wird in Clickable verwendet, um Interaktionen beim Drücken korrekt zu verzögern, wenn Gesten zu Scroll-Ereignissen werden können.
  • Das Problem, dass Clickables bei Verwendung innerhalb von Scrollable ViewGroup die Ripples nicht korrekt verzögerte, wurde behoben.
  • Leisten und Tabellen wurden aktualisiert, um das Drücken korrekt zu verzögern, falls Gesten zu Scroll-Ereignissen werden können.
  • CompositingStrategy.Always wurde in Offscreen umbenannt, um anzugeben, dass das graphicsLayer immer in einem Zwischenpuffer gerendert wird (I47dc1).
  • Layoutüberlastung mit mehreren Inhaltsbereichen ist jetzt stabil (I10566, b/248294649).
  • Es wurden experimentelle neue APIs PerfettoTrace.record {} und PerfettoTraceRule hinzugefügt, um Perfetto-Traces (auch als System-Traces bezeichnet) im Rahmen eines Tests zu erfassen und so das Testverhalten und die Leistung zu prüfen. (I3ba16)
  • Bei UI-Tests mit einer Schreibregel werden Fortsetzungen, die während withFrameNanos-Callbacks fortgesetzt werden, erst abgesendet, nachdem alle Frame-Callbacks ausgeführt wurden. Dies entspricht dem Verhalten des Editors bei normaler Ausführung. Tests, die auf dem alten Verhalten basieren, können jedoch fehlschlagen. Dies sollte nur Code betreffen, der withFrameNanos oder withFrameMillis direkt aufruft und bei dem die Logik außerhalb des Callbacks an die Funktionen übergeben wird, die möglicherweise innerhalb der Callbacks verschoben werden müssen. Beispiele finden Sie in den Änderungen am Animationstest in dieser Änderungsliste.
  • Ein optionaler onPerformTraversals: (Long) -> Unit-Parameter wurde dem TestMonotonicFrameClock-Konstruktor und der Factory-Funktion hinzugefügt, um Code nach withFrameNanos-Callbacks auszuführen, aber bevor die Aufrufer fortgesetzt werden Koroutinen. (Idb413, b/254115946, b/222093277, b/255802670)
  • EmojiCompat wurde zu Compose hinzugefügt (Ibf6f9, b/139326806)
  • Neuer Hintergrundparameter für @Preview zur Unterstützung dynamischer Farben hinzugefügt (I9f512)

Fehlerkorrekturen

  • Benachrichtigungen zum Anwenden von Snapshots werden jetzt gesendet, nachdem Recomposer die Änderungen angewendet hat. (Iad6c0, b/222093277)
  • Es wurden Änderungen in captureToImage eingeführt, um die Aufnahme von Screenshots aus mehreren Fenstern zu ermöglichen. Dies ist nützlich für Screenshot-Tests, bei denen Pop-ups zum Erstellen von Pop-ups verwendet werden. (I169c5)

Aktualisierung der Abhängigkeiten

  • Die Erstellung der Benutzeroberfläche und das Zusammenstellen von Material hängen jetzt vom Lifecycle 2.5.1 ab. (I05ab0, b/258038814)

Version 1.4.0-alpha02

9. November 2022

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

API-Änderungen

  • GraphicsLayerScope wurde aktualisiert, um die aktuelle Größe von graphicsLayer bereitzustellen. Dies ist nützlich für die Berechnung von graphicsLayer-Transformationen als Funktion der zusammensetzbaren Größe. (If8c43,b/181387080)
  • CompositingStrategy wurde eingeführt, um zu bestimmen, wann eine nicht sichtbare Compositing-Ebene für das Rendern von graphicsLayer-Inhalten verwendet werden soll. Mit „Automatisch“ wird das Standardverhalten beibehalten, das bei Anwendung von Alpha oder einer RenderEffect/Overscroll intern eine Ebene verwendet. Es wird immer ein Offscreen-Zwischenspeicher eingeführt, bei dem ModulateAlpha die Verwendung eines Offscreen-Zwischenspeichers verhindert und stattdessen jede der aufgezeichneten Zeichenanweisungen innerhalb des graphicsLayer moduliert. Die ModulateAlpha-Nutzung verwendet für RenderEffect/Overscroll-Nutzungen weiterhin einen Zwischenspeicher außerhalb des Bildschirms (I25e82, b/256382834).
  • invalidateSubtree() wurde Modifier.Node hinzugefügt, damit ganze Hierarchien für Layout und Zeichnungen ungültig werden können. (I4bd90)
  • rememberNestedScrollInteropConnection auf stabile Version hochstufen. Die Möglichkeit wurde eingeführt, eine Stammansicht an rememberNestedScrollInteropConnection zu übergeben. So kann die benutzerdefinierte Ansicht besser auf Einschränkungen beim Scrollen reagieren, insbesondere in nicht standardmäßigen Ansichten (z.B. ModalBottomSheetDialog). (I9e107)
  • Es wurde eine ObserverNode-Schnittstelle hinzugefügt, die von Modifier.Node-Implementierungen verwendet werden kann, die benachrichtigt werden müssen, wenn sich ein zuvor gelesener Wert geändert hat (I5728b, b/247716483).
  • Wir haben Paint einen neuen Konstruktor hinzugefügt, der einen nativen android.graphics.Paint akzeptiert. Außerdem wurde die Erweiterungsfunktion toComposePaint() hinzugefügt, die ein vorhandenes natives Paint-Objekt in Compose Paint konvertiert. (Ica91b)
  • Neue FontFamily.Resolver.resolveAsTypeface zur Verwendung unter Android hinzufügen. (I8950b)
  • ToolingState hinzufügen, damit Tools den internen Status von Composable ändern können (Ie6614)
  • Refaktorierungstools, um neu hinzugefügte Animationen besser zu unterstützen (I8677b)
  • Der Parameter minLines wurde zu material und material3 Text, TextField und OutlinedTextField hinzugefügt. Damit kann die Mindesthöhe der Komponente in Bezug auf die Anzahl der Zeilen festgelegt werden (I4af1d).

Version 1.4.0-alpha01

24. Oktober 2022

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

API-Änderungen

  • Die neue Methode awaitEachGesture() für Bewegungsdetektoren wurde hinzugefügt. Sie funktioniert ähnlich wie forEachGesture(), aber die Loop-over-Gesten erfolgen vollständig innerhalb von AwaitPointerEventScope, sodass Ereignisse zwischen Iterationen nicht verloren gehen können.
  • forEachGesture() wurde zugunsten von awaitEachGesture() eingestellt, weil dadurch Ereignisse zwischen Gesten verloren gehen können. (Iffc3f, b/251260206)
  • Das Recycling von Zugänglichkeitsobjekten in Androidx wird eingestellt. Wir haben festgestellt, dass Leistungsänderungen selbst in den ältesten unterstützten Versionen vernachlässigbar sind. (I0a961)
  • DrawStyle wurde zu TextStyle und SpanStyle als experimentelles Attribut hinzugefügt, um das Zeichnen von umrandetem Text zu ermöglichen. (If24b8, b/155421273)
  • Mit AnnotatedString.Builder wird jetzt kotlin.text.Appendable implementiert. (I1a061, b/231030444)
  • AnnotatedString.Builder verfügt jetzt über eine append(AnnotatedString, start: Int, end: Int)-Methode, um einen Teilstring von AnnotatedString und den sich überschneidenden Stilen anzuhängen.
  • Der Parameter DrawStyle wurde den Zeichenfunktionen Paragraph und MultiParagraph hinzugefügt, die das Zeichnen von umrandetem Text ermöglichen. (IC8102, b/155421273)

Externer Beitrag

  • Vielen Dank, dass du vighnesh für das Hinzufügen von TV-Geräten zu Vorschauen hinzugefügt hast (Ie15cd)

Version 1.3

Version 1.3.3

11. Januar 2023

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

Fehlerkorrekturen

  • Behebung eines Absturzes, der manchmal unter Android 9 auftrat, wenn in der Aktivität den Status der Schreibansicht gespeichert wurde (I0b755, b/260322832)

Version 1.3.2

7. Dezember 2022

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

Fehlerkorrekturen

  • Aktualisiert zur Verwendung von Profobuf 3.21.8, wodurch eine Sicherheitswarnung in protobuf-javalite:3.19.4 vermieden wird (CVE-2022-3171) (b/255545055)

Version 1.3.1

9. November 2022

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

Version 1.3.0

24. Oktober 2022

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

Wichtige Änderungen seit Version 1.2.0

  • Neue experimentelle API-Suite LookaheadLayout (die zuvor unmögliche Animationsverhalten ermöglicht)
  • Neue experimentelle API-Suite Modifier.Node (leistungsstarke Alternative zu Modifier.composed)
  • Verbesserte Unterstützung für Fenstereinblendungen.
  • Unterstützung für Steuerkreuze und Hardwaretastatur in LazyLists
  • Die maximale unterstützte Höhe in Dialogfeldern und Pop-ups wurde auf 8 dp reduziert (funktionsgefährdende Änderung bei einigen benutzerdefinierten Designsystemen – Begründung in den Versionshinweisen von Beta01).
  • Viele geringfügige, abwärtskompatible API-Verbesserungen
  • Viele Fehlerkorrekturen und Leistungsverbesserungen

Version 1.3.0-rc01

5. Oktober 2022

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

API-Änderungen

  • Neue experimentelle API-Bindestriche zur Unterstützung der automatischen Bindestrichsetzung in Text hinzugefügt (Iaa869)

Fehlerkorrekturen

  • Bei DeviceFontFamilyName-Schriftarten werden die Varianteneinstellungen wght und ital nicht standardmäßig konfiguriert. Stattdessen wird die Plattformeinstellung für das geladene Typeface verwendet. (Ia7a6d, b/246989332)
  • LazyColumn-Speicherleck behoben: onModifierLocalsUpdated wurde bei der Wiederverwendung von Modifikatoren nicht mit dem Standardwert aufgerufen (b/230168389).

Version 1.3.0-beta03

21. September 2022

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

API-Änderungen

  • Optionen zum Anpassen des Zeilenumbruchs im Text hinzufügen. (I86907)
  • Das Argument size:IntSize wurde in der Methode TextMeasurer.measure mit constraints: Constraints geändert, um Einschränkungen für die minimale Breite zu unterstützen. (I37530, b/242707525)

Fehlerkorrekturen

  • Die BackHandler API von AndroidX Activity funktioniert jetzt in einer zusammensetzbaren Dialog-Funktion. (I35342)

Version 1.3.0-beta02

7. September 2022

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

API-Änderungen

  • Es wurde eine experimentelle Überlastung für das Layout hinzugefügt, die eine Liste mehrerer zusammensetzbarer Inhalts-Lambdas akzeptiert, wodurch bedrohliche Messbare in verschiedene Content-Lambdas unterschiedlich eingefügt werden können (Ic1b4e).

Änderungen an experimentellen Focus APIs:

  • FocusDirection.In und FocusDirection.Out wurden verworfen und durch FocusDirection.Enter und FocusDirection.Exit ersetzt. (Ia4262, b/183746982)
  • Zwei neue Fokuseigenschaften wurden hinzugefügt, um ein benutzerdefiniertes Verhalten für FocusManager.moveFocus(Enter) und FocusManager.moveFocus(Exit) anzugeben. (I5f3f9, b/183746982)
  • Sie können jetzt mit FocusRequester.Cancel eine Fokusbewegung abbrechen. FocusRequester.Cancel kann in jeder der folgenden Fokuseigenschaften verwendet werden: „Aufwärts“, „Abwärts“, „Links“, „Rechts“, „Weiter“, „Zurück“, „Start“, „Ende“, „Einstieg“ und „Beenden“. (Ib300f)

Version 1.3.0-beta01

24. August 2022

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

Modifikatorknoten-Refaktorierung

Die Ebene, die Modifier/Modifier.Element-Instanzen verarbeitet und ihr Verhalten auf LayoutNodes koordiniert, wurde umfassend refaktoriert. Derzeit handelte es sich um eine Refaktorierung, die sich nicht auf die öffentliche API einer der vielen Modifikatoren in Compose ausgewirkt hat und als reine Implementierungsänderung betrachtet werden kann. Trotzdem ist dies aus verschiedenen Gründen eine wichtige Änderung. (IE4313)

Änderungsübersicht

Die hinzugefügten experimentellen Modifier.Node APIs bieten eine Abstraktion, die es ermöglicht, den Status einer Instanz zu verwalten, der mit dem Lebenszyklus des Layoutknotens beibehalten wird und pro Layoutknoten und pro Nutzung dem entsprechenden Modifier.Element, der ihn erzeugt hat, zugewiesen wird.

Im Großen und Ganzen bietet diese Abstraktion einen alternativen Mechanismus zur Erstellung zustandsorientierter Modifikatoren, ohne sich auf die Mechanismen der Modifier.composed API zu verlassen.

Risiko

Diese Änderung ist strikt binär mit früheren Releases kompatibel und soll im Hinblick auf das beobachtbare Verhalten so weit wie möglich und praktisch möglich sein, wenn sie abwärtskompatibel ist. Allerdings gibt es nur wenige Subsysteme für diese Refaktorierung, die nicht umgesetzt wurden. Wahrscheinlich hat sich das Verhalten in einer Weise geändert, die von unseren Tests nicht abgedeckt wurde und noch nicht gefunden und behoben wurde.

Führen Sie ein Upgrade auf diese Version daher mit Vorsicht durch. Wenn Sie der Meinung sind, dass dadurch ein Fehler aufgetreten ist, teilen Sie uns dies bitte mit.

Experimentelle APIs

Es wurden verschiedene experimentelle APIs hinzugefügt, die sich alle auf das neue Konzept eines "Modifikatorknotens" beziehen. Modifier.Nodes werden als Ergebnis von

  • fun modifierElementOf(…): Modifier
  • abstract class ModifierNodeElement
  • abstract class Modifier.Node
  • abstract class DelegatingNode
  • interface LayoutModifierNode
  • interface DrawModifierNode
  • interface SemanticsNode
  • interface PointerInputNode
  • interface ModifierLocalNode
  • interface ParentDataModifierNode
  • interface LayoutAwareModifierNode
  • interface GlobalPositionAwareModifierNode
  • interface IntermediateLayoutModifierNode

Änderung des Verhaltens

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

Die maximal unterstützte Höhe für Dialogfelder und Pop-ups zum Schreiben wurde von 30 dp auf 8 dp reduziert. Diese Änderung betrifft sowohl benutzerdefinierte Dialogfelder als auch benutzerdefinierte Dialogfelder und Pop-ups der Benutzeroberfläche. Mit dieser Änderung soll ein Fehler in Bezug auf die Bedienungshilfen bei Android-Versionen unter S minimiert und sichergestellt werden, dass Bedienungshilfen in diesen Fenstern mit dem Inhalt des Dialogfelds oder Pop-ups interagieren können.

Sie sind nur von dieser Änderung betroffen, wenn Sie eine benutzerdefinierte Dialog- oder Pop-up-Implementierung mit einer Höhe von mehr als 8 dp erstellen. Ziehen Sie in Erwägung, die Höhe Ihres Dialogfelds oder Pop-ups zu verringern. Wenn Sie dieses neue Verhalten deaktivieren möchten, können Sie Ihr eigenes Dialogfeld oder Pop-up mit der gewünschten Höhe festlegen. Dies wird nicht empfohlen, da die Barrierefreiheit beeinträchtigt werden könnte und der Entwickler dafür sorgt, dass der untere Teil des Dialogfelds oder Pop-ups interaktiv und für Bedienungshilfen lesbar ist.

API-Änderungen

  • Es wurde ein Problem behoben, bei dem painterResource bei Konfigurationsänderungen nicht aktualisiert wurde (I58e73, b/228862715).
  • rememberTextMeasurer benötigt die Parameter FontFamily.Resolver, Density oder LayoutDirection nicht mehr. Verwenden Sie den TextMeasurer-Konstruktor, um benutzerdefinierte Werte für diese Parameter bereitzustellen. (Ia1da3)
  • DialogProperties.decorFitsSystemWindows-Property hinzugefügt um zuzulassen, dass Dialogfelder WindowInsets unterstützen. (I57742, b/229378542)
  • Schriftkonstruktoren wurden zurück in die ursprüngliche Kotlin-Datei verschoben, um die Binärkompatibilität aufrechtzuerhalten. Keine Veränderung gegenüber dem letzten stabilen Release. (Ieb2f3)
  • Der unnötige Operator wurde aus mehreren Gleichheitsdefinitionen entfernt. Dies hat keine Auswirkungen. (I6c309)
  • FontVariation.Setting ist eine versiegelte Schnittstelle, die zukünftige Clamping APIs ermöglicht. (I11021, b/143703328)
  • CompositionGroup.findParameters zu SlotTree.kt hinzufügen. Dadurch können Tools Parameter für eine CompositionGroup abrufen, ohne die gesamte Slot-Tabelle analysieren zu müssen. (I124fe)

Version 1.3.0-alpha03

10. August 2022

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

API-Änderungen

  • LayoutCoordinates.findRootCoordinates() ist jetzt öffentlich (I7fa37, b/204723384).
  • Es wurde eine experimentelle API zum Abrufen von LayoutCoordinates in PlacementScope hinzugefügt. Dadurch wissen Entwickler, wo das aktuelle Layout untergeordnete Elemente relativ zu seiner Position platzieren soll. (I5482b, b/238632578)
  • LayoutCoordinates.transformFrom wurde hinzugefügt, um die Matrixtransformation von einem LayoutCoordinates zum anderen abzurufen. (Ic5ab1, b/238632578)
  • SemanticsModifier.id wurde eingestellt und die Semantik-ID wurde nach LayoutInfo.semanticsId verschoben. (Iac808, b/203559524)
  • Ressourcenschriftarten unterstützen jetzt das Festlegen von Einstellungen für Schriftvariationen (API 26 und höher). (I900dd, b/143703328)
  • Unterstützung für variable Schriftarten in DeviceFontFamilyNameFont (Ic1279, b/143703328)
  • Schriftkonstruktoren akzeptieren jetzt eine Liste von FontVariation.Setting zum Konfigurieren variabler Schriftarten auf O+ Geräten. (I11a9d, b/143703328)
  • Fügen Sie die FontVariation API zum Definieren und Verwenden von variablen Schriftarten hinzu. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment-Konstruktor ist jetzt öffentlich (experimentell) (I4bbbe, b/235876330)
  • Der Absatz wird nun für Android und Computer definiert. (Id387e, b/239962983)
  • „Interface Paragraph“ ist jetzt mit einer versiegelten Schnittstelle versehen. Es gibt keinen Anwendungsfall für das Erstellen von abgeleiteten Absätzen. Wir empfehlen Ihnen, sich mit uns in Verbindung zu setzen, falls Sie von dieser Änderung betroffen sind. (If5247, b/239962983)
  • Die experimentelle Annotation wurde aus PlatformTextStyle und LineHeightStyle entfernt. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard einstellen. Verwende im App-Code stattdessen SoftwareKeyboardController und im IME-Verwaltungscode TextInputSession. (I14e4c, b/183448615)
  • Neue API für vorhandene Animationstypen hinzufügen (I26179)

Fehlerkorrekturen

  • @RequiresPermission wurde APIs hinzugefügt, für die die Berechtigung POST_NOTIFICATIONS ab SDK 33 erforderlich ist. (Ie542e, b/238790278)

Version 1.3.0-alpha02

27. Juli 2022

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

API-Änderungen

  • Die neue Eigenschaft PointerInputChange#pressure wurde hinzugefügt, um die Auslastung abzurufen. (I45a5e, b/205164819)
  • rememberTextMeasurer wurde hinzugefügt, um TextMeasurer-Instanzen in der Zusammensetzung einfach zu erstellen und zu speichern. (I8d66e)
  • Rect, RoundRect und MutableRect unterstützen jetzt die Kotlin-Syntax in zum Aufrufen der contains-Funktion. (Ie42b0, b/238642990)
  • Entfernen Sie unnötige Funktionen aus KeyInjectionScope, da diese mit einfacheren Teilen der API leicht implementiert werden können. Zu den Funktionen, die entfernt wurden, gehören pressKeys, keysDown und keysUp. (I81d77)
  • Überarbeitete Konstanten- und Parameternamen in KeyInjectionScope mit dem Suffix „Millis“ wobei die Einheiten dieser Konstanten und Parameter Millisekunden sind. (Iabef5)
  • Die Methode toStringForLog() wurde zu EditCommand hinzugefügt, um Probleme bei der Textbearbeitung zu beheben. (I53354, b/228862731)
  • Die Erweiterungsfunktion drawText wurde für DrawScope hinzugefügt, um eine Möglichkeit zu bieten, Text mit mehreren Stilen für zusammensetzbare Funktionen und Modifikatoren zu zeichnen, die auf einem DrawScope wie Canvas und drawBehind ausgeführt werden. (I16a62, b/190787898)
  • Führen Sie eine neue experimentelle API mit dem Namen TextMeasurer ein, die die Berechnung eines beliebigen Textlayouts ermöglicht und unabhängig von der Compose-Laufzeit identische Ergebnisse wie für BasicText liefert. (I17101)
  • mapTree zu SlotTree.kt hinzufügen. Dadurch können Tools das SlotTree prüfen, ohne zuerst eine Kopie in den Arbeitsspeicher zu erstellen, wie es bei ATree der Fall ist. Für den Layout Inspector liefert dies eine Leistungsverbesserung von etwa Faktor 10 haben. (I5e113)
  • Die Funktion „Vorschau anzeigen“ wurde so geändert, dass sie jetzt in binären Ausgabedateien gespeichert wird, damit Entwickler MultiPreview-Annotationen aus Bibliotheken schreiben und wiederverwenden können. (I85699, b/233511976)

Fehlerkorrekturen

  • Beim Hinzufügen von InputEventChange-Ereignissen zum Velocity-Tracker berücksichtigen wir jetzt Deltas anstelle von Positionen. Dies garantiert, dass die Geschwindigkeit für alle Fälle korrekt berechnet wird, selbst wenn sich das Zielelement bewegt (Icea9d, b/216582726, b/223440806, b/227709803).
  • Durch AnnotatedString.toUpperCase verursachte NPE korrigieren, wenn Anmerkungen vorhanden sind. (I0aca2, b/210899140)

Version 1.3.0-alpha01

29. Juni 2022

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

API-Änderungen

  • Neue LookaheadLayout, die eine Lookahead-Passung vor der tatsächlichen Messung/dem tatsächlichen Layout unterstützt. So kann das Layout bei Änderungen vorab berechnet werden. Gleichzeitig kann der Post-Lookahead-Messwert bzw. das Post-Layout die vorab berechnete Größe/Position verwenden, um die Größe und die Positionen in Richtung des Ziels zu animieren. SubcomposeLayouts wird noch nicht unterstützt, ist aber in einer künftigen Version geplant. (I477f5)
  • Fügen Sie dem Pinselstil TextStyle und SpanStyle einen optionalen Alpha-Parameter hinzu, um die Deckkraft von Text zu ändern. (Ic2fac, b/234117635)
  • Einführung des Annotationstyps UrlAnnotation und der zugehörigen Methoden zur Unterstützung von TalkBack-Links in AnnotatedStrings. (I1c754, b/231495122)
  • Dienstprogrammfunktionen zur Laufzeit verschieben (I4f729)

Fehlerkorrekturen

Externer Beitrag

  • Neue API WindowInfo.keyboardModifiers hinzugefügt, um ihren Status in zusammensetzbaren Funktionen oder über einen SnapshotFlow (Icdb8a) zu beobachten

Version 1.2

Version 1.2.1

10. August 2022

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

Fehlerkorrekturen

  • Ein Nullpointer im Inspector wurde korrigiert (b/237987764)
  • Ein Fehler bei der Umwandlung der Klasse beim Erinnern im Prüftool wurde behoben (b/235526153).

Version 1.2.0

27. Juli 2022

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

Wichtige Änderungen seit Version 1.1.0

  • Verbesserungen beim Fokusdurchlauf:

    • Das fokussierte Scrollen von Lazy-Listen funktioniert jetzt mit der neuen BeyondBoundsLayout Core API
    • Neue APIs zur Verhaltensanpassung in FocusOrder und FocusProperties
    • Verbesserte Funktionsweise bei Verwendung der physischen Tastatur oder der Fernbedienung des Fernsehers
  • Neue APIs für:

    • Fenstereinlagen
    • Kernprimitive für gestengesteuerte, unendliche Animationen und Layoutanimationen
    • GraphicsLayer Funktionen, darunter RenderEffect
  • Viele Fehlerkorrekturen und Leistungsverbesserungen

Version 1.2.0-rc03

29. Juni 2022

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

  • Keine Änderungen seit 1.2.0 bis rc02.

Version 1.2.0-rc02

22. Juni 2022

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

Version 1.2.0-rc01

15. Juni 2022

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

API-Änderungen

  • Schnittstellen in Erstellungsbibliotheken werden jetzt mit jdk8-Standardschnittstellenmethoden erstellt (I5bcf1).
  • Wir haben KeyInjectionScope Funktionen für übergeordnete Elemente zum Einfügen von Tastendrucken hinzugefügt, während andere Tasten gedrückt gehalten oder aktiviert werden. Zu diesen Funktionen gehören withKeysDown, withKeysToggled usw. Außerdem wurden Eigenschaften hinzugefügt, mit denen geprüft wird, ob eine bestimmte Metataste gedrückt ist, z. B. isCtrlDown, um zu prüfen, ob eine der Strg-Tasten gedrückt ist. Weitere Informationen zu den einzelnen Funktionen finden Sie unter KeyInjectionScope. (I9f6cd, b/229831515)
  • Es wurde eine experimentelle OverscrollEffect eingeführt, um neben den Modifier.scrollable-Überladungen, die diese Overscroll-Effekte akzeptieren, benutzerdefinierte Overscroll-Effekte zu ermöglichen.
  • Die experimentelle LocalOverScrollConfiguration wurde von foundation.gesture in das Foundation Package verschoben und in LocalOverscrollConfiguration umbenannt (If19fb, b/204650733)
  • Benennen Sie runComposeUiTestWithoutActivity {} in runEmptyComposeUiTest {} um, damit dies mit createEmptyComposeRule() übereinstimmt (I6fed7).

Version 1.2.0-beta03

1. Juni 2022

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

API-Änderungen

  • pressKeyTimes sowie isCapsLockOn und Freunde zu KeyInjectionScope wurden hinzugefügt. Darüber hinaus unterstützt die API jetzt kombinierte Einschleusungsmuster mit Maus und Tastatur, beispielsweise das Klicken auf eine Maustaste bei gedrückter Metataste. (I4c8da, b/229831515)
  • Zusätzliche experimentelle Unterstützung für das Einfügen von Schlüsselereignissen. Verwenden Sie performKeyInput, um Schlüsselereignisse zu senden, oder senden Sie sie während einer multimodalen Eingabegeste mit performMultiModalInput über die Eigenschaft key von MultiModalInjectionScope. Die API-Dokumentation finden Sie unter KeyInjectionScope. (IC5000, b/229831515)
  • Füge eine neue GoogleFont.Provider.AllFontsListUri zum Abrufen der kanonischen Internetquelle der von Android unterstützten Google Fonts hinzu.
  • Verbessern Sie die Fehlermeldungen, die erneut ausgegeben werden, wenn GoogleFonts im Editor nicht geladen werden kann. (I0416c)

Fehlerkorrekturen

  • Beim Hinzufügen von InputEventChange-Ereignissen in Velocity Tracker werden jetzt Deltas anstelle von Positionen berücksichtigt. Dadurch wird garantiert, dass die Geschwindigkeit für alle Fälle korrekt berechnet wird, selbst wenn sich das Zielelement bewegt (I51ec3, b/216582726, b/223440806, b/227709803).
  • Die Einstellung „Show Layout Bounds“ wird jetzt sofort nach dem Wechseln von der Kachel „Schnelleinstellungen“ auf zusammensetzbare Funktionen angewendet, ohne dass Sie die Aktivität verlassen und noch einmal eingeben müssen. (I843d5, b/225937688)
  • Bei der String-Suche nach Bedienungshilfen wird kein Laden der Schriftart ausgelöst. Zuvor wurde versucht, Schriftarten für StyleSpans zu laden, die zu Abstürzen führen, wenn FontFamily.Resolver überschrieben wurde. (I4609d)
  • Wenn Sie die Vorwärts-Löschtaste drücken, wenn sich der Cursor am Ende eines Textfelds befindet, stürzt dies nicht mehr ab.
  • Für DeleteSurroundingTextCommand und DeleteSurroundingTextInCodePointsCommand müssen ihre Konstruktorargumente jetzt nicht negativ sein. (Ica8e6, b/199919707)

Version 1.2.0-beta02

18. Mai 2022

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

API-Änderungen

  • Funktionen in anderen Vorschautypen wiederverwenden (I19f39)

Fehlerkorrekturen

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer wurde in DisposeOnDetachedFromWindowOrReleasedFromPool umbenannt, um besser widerzuspiegeln, dass Entsorgungen auftreten und nicht nur, wenn sie nicht verfügbar sind. (If15ca)

Version 1.2.0-beta01

11. Mai 2022

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

Neue Funktionen

  • Dies ist die erste Betaversion von Version 1.2.

API-Änderungen

  • Experimentelle BeyondBoundsInterval hinzugefügt, die von benutzerdefinierten Implementierungen von LazyList verwendet werden kann, wenn Elemente über die sichtbaren Grenzen hinaus angeordnet werden (Ifabfb, b/184670295)
  • Schlüsselversionen von Modifier.composed sind jetzt stabile API (Ie65e4, b/229988420)
  • Die rememberNestedScrollConnection API wurde vereinfacht, um die aktuellen Ansichtsinformationen mithilfe von Kompositionslokalen abzurufen (I67ca7).
  • Die Annotation @ComposableTarget und die mit @ComposableTargetMarker gekennzeichneten Annotationen können jetzt im Dateibereich mit dem Präfix @file verwendet werden. Bei Verwendung einer Zielannotation auf Dateiebene geht der Compiler davon aus, dass alle zusammensetzbaren Funktionen in der Datei auf den zugehörigen Applier ausgerichtet sein sollen. Mit @file:UiComposable wird beispielsweise deklariert, dass alle @Composable-Funktionen auf den Anwender der Benutzeroberfläche zum Erstellen ausgerichtet sind. Eine Funktion, die auf einen anderen Applier ausgerichtet ist, muss die Zielmarkierungsannotation für den gewünschten Applier explizit bereitstellen. (I40804)
  • Einführung einer neuen experimentellen, plattformunabhängigen Test-API: interface ComposeUiTest und fun runComposeUiTest(block: ComposeUiTest.() -> Unit), mit denen Compose-UI-Tests ausgeführt werden können ohne TestRule. Um einen Test ohne eine ComposeTestRule, übergeben Sie den Test als Lambda an runComposeUiTest und verwenden Sie die Methoden und Mitglieder im Empfängerbereich ComposeUiTest, die dieselben wie in ComposeContentTestRule.

    Die Android-spezifischen interface AndroidComposeUiTest und fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) sind hinzugefügt, um Zugriff auf die zugrunde liegende Aktivität zu gewähren, ähnlich wie AndroidComposeTestRule Für noch mehr Kontrolle können Sie class AndroidComposeUiTestEnvironment Sie selbst.

    Die Desktop-Implementierung ist die class DesktopComposeUiTest, aber keine Derzeit werden Desktop-spezifische Ausführungsfunktionen angeboten.

    Sie können einen Test von ComposeTestRule zu ComposeUiTest migrieren (Beispiel für Android). Von:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @get:Rule val rule = createComposeRule()
        @Test
        fun test() {
            rule.setContent {
                Text("Hello Compose!")
            }
            rule.onNodeWithText("Hello Compose!").assertExists()
        }
    }
    

    Sie haben folgende Optionen:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • Derzeit stammen ComposeContentTestRule und ComposeTestRule nicht von ComposeUiTest. Das bedeutet, dass Erweiterungsfunktionen unter ComposeUiTest noch nicht auf der TestRule-Oberfläche aufgerufen werden können. Wenn ComposeUiTest auf die stabile API umgestellt wird, werden ComposeContentTestRule und ComposeTestRule geändert und von ComposeUiTest erweitert. (Ib4e90)

  • LineHeightBehavior wird in LineHeightStyle umbenannt.

  • LineVerticalAlignment wird in LineHeightStyle.Alignment umbenannt.

  • LineHeightTrim“ wird umbenannt in „LineHeightStyle.Trim

  • Standardkonstruktorwerte aus LineHeightStyle werden entfernt (I582bf, b/181155707).

  • Brush wurde zu TextStyle und SpanStyle hinzugefügt, um eine Möglichkeit zum Zeichnen von Text mit Farbverlauf zu bieten. (I53869, b/187839528)

  • trimFirstLineTop, trimLastLineBottom Attribute von Aus LineHeightBehavior wurde eine einzelne Aufzählung geändert: LineHeightTrim. LineHeightTrim haben die Werte aus vier Zuständen, die durch zwei boolesche Werte definiert werden: FirstLineTop, LastLineBottom, Beide und keine (Ifc6a5, b/181155707)

  • LineHeightBehavior wurde zu TextStyle und ParagraphStyle hinzugefügt. Mit LineHeightBehavior wird festgelegt, ob die Zeilenhöhe am oberen und unteren Rand der letzten Zeile angewendet wird. Außerdem definiert er die Ausrichtung der Linie in dem durch TextStyle(lineHeight) vorgegebenen Feld.

    Es ist beispielsweise möglich, ein Verhalten zu erhalten, das dem CSS-Code ähnelt, definiert über LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).

  • Konfigurationen mit trimFirstLineTop und trimLastLineBottom funktionieren nur dann korrekt, wenn includeFontPadding „false“ ist. (I97332, b/181155707)

  • Die Funktionen PlatformParagraphStyle.lerp und PlatformSpanStyle.lerp wurden in die oberste Ebene geändert. Funktionen (I9a268)

Fehlerkorrekturen

  • In der PointerInputChange::copy-Dokumentation wird jetzt korrekt angegeben, dass es sich um eine oberflächliche Kopie handelt. (I182f5)
  • Auslassungspunkte werden unterstützt, wenn die Höhe begrenzt ist und nicht für alle Textzeilen geeignet ist (Ie528c, b/168720622).
  • includeFontPadding ist standardmäßig aktiviert. Es ist möglich, die includeFontPadding mit dem Attribut TextStyle.platformTextStyle zu deaktivieren. In naher Zukunft werden wir das Standardverhalten ändern. Bis dahin können wir jedoch Verbesserungen an der Zeilenhöhe (aosp/2058653) besser integrieren und TextField-Clipping-Probleme beheben. (I01423, b/171394808)

Externer Beitrag

  • MouseInjectionScope.scroll(delta = someDelta) wird jetzt unter Android umgekehrt, wenn wir vertikal scrollen. Wenn „someDelta“ positiv ist, wird nach unten gescrollt. (Ifb697, b/224992993)

Version 1.2.0-alpha08

20. April 2022

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

API-Änderungen

  • Die pluralStringResource-Funktionen wurden als experimentell gekennzeichnet, um die zukünftige Internationalisierung für die Weiterentwicklung zu ermöglichen. (If24e4)
  • Absatz und MultiParagraph akzeptieren jetzt Einschränkungen-Parameter. Wenn Constraints.maxHeight übergeben wird, ist dies derzeit nicht möglich, ermöglicht aber zukünftige Berechnungen, z. B. Ellipsen, die auf der Höhe basieren. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() akzeptiert jetzt eine benutzerdefinierte MutableSet-ähnliche Klasse, mit der keine neuen Elemente hinzugefügt werden können. (ICD314)
  • PointerIcon ist jetzt eine @Stable-Schnittstelle (I9dafe).
  • Der Teilverbrauch (nach unten ODER in der Position) wurde in PointerInputChange eingestellt. Sie können consume() verwenden, um die Änderung vollständig zu übernehmen. Mit isConsumed können Sie feststellen, ob die Änderung bereits von einer anderen Person übernommen wurde.
  • PointerInputChange::copy() erstellt jetzt immer eine oberflächliche Kopie. Das bedeutet, dass Kopien von „PointerInputChange“ genutzt werden, sobald eines der Exemplare verarbeitet wurde. Wenn Sie eine ungebundene PointerInputChange erstellen möchten, verwenden Sie stattdessen den Konstruktor. (Ie6be4, b/225669674)
  • Aktivieren Sie die verschachtelte Scroll-Interoperabilität zwischen Schreiben und Ansicht in der Richtung Schreiben > Ansicht. Das bedeutet, dass ein übergeordnetes Element des Typs „Schreiben“ verschachtelte Scroll-Deltas aus einer verschachtelten Scroll-Ansicht empfangen kann. (If7949, b/174348612)
  • Neue SemanticsProperty testTagsAsResourceId, mit der das Schreiben mit UIAutomator-Tests für das View-System übereinstimmt. (I39c20)
  • Alle verfügbaren Schriftstärken für Systemschriftarten unter Android anzeigen, wenn FontFamily.SansSerif verwendet wird. In API 21 bis 28 werden dann intern Fallback-Schriftnamen wie „serif-medium“ verwendet. Dies ist eine Verhaltensänderung, da bisher nur die Gewichtungen 400 und 700 von API 21 bis 28 unterstützt wurden. (I380fe, b/156048036, b/226441992)
  • Absatz- und Mehrabsatz-Lehrkräfte haben Positionsargumente vor optionalen Argumenten neu angeordnet. (Idafaa)
  • AndroidFont verwendet jetzt „typefaceLoader“ als Konstruktorparameter. (I2c971)

Version 1.2.0-alpha07

6. April 2022

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

API-Änderungen

  • Die neue Funktion Snapshot.withoutReadObservation { ... } wurde hinzugefügt. Damit können Nutzer die übergebene Lambda-Funktion ausführen, ohne die Änderungen der Statuswerte zu abonnieren, die während dieses Blocks gelesen werden. Dies kann in Anwendungsfällen nützlich sein, wenn Sie von den Snapshot-basierten Thread-sicheren Schreibvorgängen/Lesevorgängen profitieren möchten, aber den Wert lesen möchten, ohne eine unnötige Neuzusammensetzung oder erneute Messung zu verursachen. (I9f365, b/214054486)
  • Mit der Erweiterungseigenschaft consumeWindowInsets von ComposeView können Entwickler die Nutzung von Android WindowInsets deaktivieren. Dadurch können separate ComposeViews in der Hierarchie jeweils WindowInsets anwenden, ohne sich gegenseitig zu beeinträchtigen. (I0ef08, b/220943142)
  • KeyboardType.Decimal wurde als Alternative zu Keyboard.Number hinzugefügt, um speziell ein Dezimaltrennzeichen in IME zu verwenden. (Iec4c8, b/209835363)
  • PointerEventType.Scroll und PointerEvent.scrollDelta sind jetzt stabile APIs (I574c5, b/225669674).
  • Aktiviert die verschachtelte Scroll-Interoperabilität zwischen View und Compose für zusammenarbeitende View-Klassen. Das bedeutet, dass das Editor-Tool jetzt Scroll-Deltas an ein übergeordnetes Element der übergeordneten Datenansicht (mitwirkend) senden kann. (I5d1ac, b/174348612)
  • FontFamily.Resolver wurde aktualisiert, um die systemweite Bedienungshilfe für fett formatierten Text zu integrieren (I6c1e7)
  • Font(AssetManager, String, ...) wurde verworfen und durch Font(String, AssetManager, ...) ersetzt. Dies ist eine experimentelle API. (I1c7a4)
  • Fügen Sie den neuen Schriftartdeskriptor Font(DeviceFontFamilyName) hinzu, um optional beim Suchen nach vom System installierten Schriftarten während der Fallback-Ketten zu suchen. (I30468, b/219754572)
  • Es wurde eine temporäre Kompatibilitätskonfiguration für includeFontPadding in TextStyle/ParagraphStyle hinzugefügt. includeFontPadding kann über TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) geändert werden. Dies ist eine temporäre Konfigurationsoption, mit der die Migration aktiviert wird. Sie wird entfernt. (If47be, b/171394808)
  • GoogleFont.Provider.isAvailableOnDevice-Erweiterung für Hilfe bei der Fehlerbehebung hinzufügen. (I64e31)
  • GoogleFont.Provider-Konstruktor zur Verwendung mit @ArrayRes hinzufügen (Ic5ee1, b/225984280)
  • Compose GoogleFont heißt jetzt Font(GoogleFont), ansonsten bleibt die API stabil. (I125f2)

Fehlerkorrekturen

  • Dem Material/Gerüst wurde eine Lint-Prüfung hinzugefügt, um sicherzustellen, dass der innere Innenrand verwendet wird (Ifb111)

Version 1.2.0-alpha06

23. März 2022

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

API-Änderungen

  • Semantikaktion RequestFocus wurde hinzugefügt, um den Fokus auf das fokussierbare Ziel anzufordern. (I17b71)
  • Das Parsen von Vektor-Drawables wurde aktualisiert, um die automatische Spiegelung zu unterstützen und den Inhalt eines VectorPainter zu spiegeln, wenn das aktuelle Layout ist RTL. (I79cd9, b/185760237)
  • Schatten-/Umgebungsfarben wurden aus Gründen der API-Kompatibilität auf nachgestellte Parameter von Modifier.graphicsLayer aktualisiert (I3f864, b/160665122).

  • Der Schatten-/Umgebungsfarbe in GraphicsLayerScope wurden Standardimplementierungen hinzugefügt, um abwärtskompatible API-Änderungen zu gewährleisten.

  • Den RSB-Veranstaltungen wurde Ereigniszeit hinzugefügt (Ief8ae)

  • FocusOrder wurde mit FocusProperties zusammengeführt und focusProperties() verfügt jetzt über alle Funktionen von focusOrder(). FocusOrder und focusOrder() wurden verworfen. focusOrder(), der focusRequester akzeptiert, sollte durch einen focusRequester()-Modifikator in Kombination mit focusProperties() ersetzt werden. Dadurch können die Modifikatoren stärker getrennt werden. (I601b7)

  • Das Upgrade von RecyclerView und Compose führt nun zu einer viel besseren Scrollleistung für RecyclerViews mit untergeordneten Erstellungsansichten.

  • ViewCompositionStrategy.Default als Methode zum Abrufen der integrierten Standardstrategie hinzufügen

  • Fügen Sie ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer hinzu. Dies ist die neue Standardstrategie, die das Pooling von Containern wie RecyclerView wie vorgesehen verarbeitet. (If7282)

  • Zusätzliche Unterstützung für das Hinzufügen von Anmerkungen zu Anmerkungsklassen mit @Preview als erster Schritt zum Hinzufügen der Multipreview-Funktion. Solche Anmerkungen könnten verwendet werden, um zusammensetzbare Methoden oder andere Anmerkungsklassen zu annotieren, die dann als indirekt mit der gegebenen @Preview annotiert angesehen werden könnten. (I12eff)

  • Referenzgeräte, die der Geräteliste für @Preview (I071c9) hinzugefügt wurden

Fehlerkorrekturen

  • Vektorgrafik-APIs wurden aktualisiert und verwenden nun die korrekte zusammensetzbare Annotation @VectorComposable anstelle von @UiComposable (I942bc).
  • Crossinline aus AnnotatedString.Builder.withStyle entfernen (If84d5)

Externer Beitrag

  • Compose-UI: Die Properties ambientShadowColor und spotShadowColor zu GraphicsLayerScope hinzufügen (I1ba1a, b/160665122)
  • Pluralformen werden jetzt über die pluralStringResource-Funktionen unterstützt. (Ib2f23, b/191375123)

Version 1.2.0-alpha05

9. März 2022

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

API-Änderungen

  • TextToolbar akzeptiert jetzt Lambda-Argumente statt ActionCallback. (Ib2eb9, b/197950089)
  • Null-Zulässigkeit in Core und Appcompat aktualisiert, um Tiramisu DP2 zu entsprechen (I0cbb7)
  • Die Measured Interface zeigt jetzt die „parentData“-Property (I3313f) an
  • Modifier.onPlaced und die OnPlacedModifier-Schnittstelle sind jetzt stabil. (Ib5482)
  • Super! Texterstellungsanimationen werden jetzt unterstützt „Animator Duration scale“ (Animator-Dauerskala) in den Entwickleroptionen. (I5a4fc, b/161675988)
  • Lokaler BeyondBoundsLayout-Modifikator hinzugefügt (If8b51, b/184670295)
  • Text: includeFontPadding ist jetzt standardmäßig deaktiviert. Die Clip-Probleme infolge von includeFontPadding=false behoben Bei hohen Skripts sollten keine Begrenzungen vorgenommen werden. (I31c84, b/171394808)

Fehlerkorrekturen

  • ComposeContentTestRule.setContent wirft jetzt eine IllegalStateException, wenn Sie versuchen, Inhalte festzulegen, Inhalte. (I888a5, b/199631334)
  • Absturz behoben, der durch Inhalte in der Zwischenablage beim Lesen von die Zwischenablage auf Android-Geräten. (I06020, b/197769306)
  • Verbessern Sie die Scrollproben für das RSB. (I6a596)

Externer Beitrag

  • Aktualisiert für die Verwendung der Kotlinx-Koroutinen 1.6.0 (I3366d)

Version 1.2.0-alpha04

23. Februar 2022

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

API-Änderungen

  • ComposableTarget, ComposableTargetMarker und ComposableOpenTarget, mit dem in Berichten zur Kompilierungszeit angegeben wird, Eine zusammensetzbare Funktion wird als Targeting auf eine Anwendung bezeichnet, auf die sie nicht entwickelt wurden.

    In den meisten Fällen können die Anmerkungen aus dem Editor Compiler-Plug-in. Die direkte Verwendung dieser Annotationen selten . Zu den Fällen, die nicht abgeleitet werden können, gehören das Erstellen und abstrakte zusammensetzbare Funktionen (z. B. -Schnittstellenmethoden), Felder oder globale Variablen, zusammensetzbare Lambdas (lokale Variablen und Parameter werden abgeleitet), oder wenn Sie ComposeNode oder ähnliche zusammensetzbare Funktionen verwenden.

    Für benutzerdefinierte Anwendungen sind die zusammensetzbaren Funktionen, die Für ComposeNode oder ReusableComposeNode muss Folgendes hinzugefügt werden: ComposableTarget-Annotation für die Funktion und alle zusammensetzbaren Lambda-Parametertypen. Es wird jedoch empfohlen, um eine Anmerkung zu erstellen, die mit ComposableTargetMarker und dann die markierte Anmerkung werden verwendet. statt direkt ComposableTarget. Eine zusammensetzbare Anmerkung mit ComposableTargetMarker gekennzeichnet ist, entspricht ComposbleTarget durch den voll qualifizierten Namen des Attributs als Anwendungsparameter. Ein Beispiel für die Verwendung von ComposableTargetMarker siehe anroidx.compose.ui.UiComposable. (I38f11)

  • Font(resId, ...) übernimmt LoadingStrategy für die stabile API. (Ief3d2)

  • FontLoadingStrategy ist jetzt eine stabile API. (I1ee35, b/174162090)

  • Asynchrones Laden von Schriftarten in Texten unterstützen (I77057, b/214587005)

  • Fügen Sie eine Bridge API zum Konvertieren von benutzerdefiniertem Font.ResourceLoader in FontFamily.Resolver hinzu. (Ia0060)

Fehlerkorrekturen

  • Angegebene FontFamily.Resolver werden an Unterkompositionen übergeben. wie z. B. Pop-up-Fenster.
  • Angegebene Font.ResourceLoader werden an Unterkompositionen übergeben. wie z. B. Pop-up-Fenster. (I48fa5)

Version 1.2.0-alpha03

9. Februar 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 wurde veröffentlicht. Version 1.2.0-alpha03 enthält diese Commits.

API-Änderungen

  • notifyFocusedRect-Methoden in TextInputSession und TextInputService wurden verworfen und werden nicht aufgerufen. Verwenden Sie Stattdessen BringIntoViewRequester. (Ia4302, b/192043120, b/216842427, b/178211874)
  • Einführung: destroyDisplayListData Methode der Stub-Klasse RenderNode (I1e659, b/216660268)
  • Es wurde eine neue API hinzugefügt, mit der untergeordnete Elemente von SubcomposeLayout vorab gemessen werden können. (I857ea)
  • movableContentOf wurde hinzugefügt, um eine zusammensetzbare Funktion zu konvertieren Lambda in eine Lambda-Funktion, die den Status und die entsprechenden Knoten ändert. an jedem neuen Ort, an dem es aufgerufen wird. Wenn der vorherige Anruf beendet wird Die Zusammensetzung wird vorübergehend bewahrt. Wenn ein neuer Aufruf erfolgt, in die Zusammensetzung, dann in den Zustand -Knoten an den Standort des neuen Aufrufs verschoben werden. Wenn kein neuer Anruf wurde der Status dauerhaft entfernt. Beachten Sie, dass Beobachter benachrichtigt.

    Wenn ein movableContentOf-Lambda mehrmals im selben Zusammensetzung, neuer Status und Knoten werden für jeden Aufruf erstellt. Anrufe verlassen die Zusammensetzung und neue Anrufe gehen ein. Der Status wird von den ersten Aufrufen bis zu den eingehenden Aufrufen in der Reihenfolge, aufgerufen werden. Alle Status, die nicht von neuen Anrufen beansprucht werden, werden entfernt dauerhaft. (Ib4850)

  • FontFamilyResolver ist jetzt über LocalFontFamilyResolver.current verfügbar

  • createFontFamilyResolver(context) und createFontFamilyResolver(context, coroutineScope) hinzugefügt, um ein neues zu erstellen FontFamily-Resolver außerhalb des Editors.

  • Absatz und MultiParagraph nehmen jetzt FontFamily.Resolver

  • TextLayoutResult.layoutInput.fontFamilyResolver enthält jetzt der für dieses Layout verwendete Resolver; eingestellt TextLayoutResult.layoutInput.resourceLoader, da es nicht mehr verwendet wird. (Id5a45, b/174162090)

  • Unterstützung für asynchrones und optionales Laden von Schriftarten mit Fallback verhalten. Dieser Pfad wird von Text und TextField verwendet und ist über FontFamilyResolver

  • Vorabladen von Schriftarten über FontFamilyResolver.preload wird unterstützt

  • Mit FontFamilyResolver.setAsyncLoadContext können Sie Folgendes festlegen: globalen Koroutinekontext, der zum Laden asynchroner Schriftarten verwendet wird. (I87fe8, b/174162090)

  • AndroidFont wurde hinzugefügt, eine neue Low-Level-API zum Bereitstellen neuer Typen. Ressourcendeskriptoren für Schriftarten unter Android. Das Laden von Schriftarten aus ein App-spezifisches Back-End, das optional vorinstallierte Schriftarten findet oder das Laden einer Schriftart aus einer Ressource, die nicht vom aktuellen Font Factorys.

  • Erweiterung der Font.ResourceLoaded API zur Unterstützung optionaler und asynchroner APIs Schriftart wird geladen. Anwendungsentwickler sollten diese API direkt verwenden. Informationen zum Hinzufügen neuer Schriftarten finden Sie unter AndroidFont.

  • Font.AndroidResourceLoader-Erweiterungsfunktion ermöglicht Konstruktion eines Font.ResourceLoader außerhalb der Komposition.

  • loadingStrategy-Parameter zu ressourcenbasierten Schriftarten hinzugefügt, um zuzulassen asynchrones Laden, wenn die Ressourcenschriftart auf eine herunterladbare Schriftarten-XML verweist (Ie5aea, b/174162090)

  • Der Typeface(FontFamily)-Konstruktor wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Wenn du Schriftarten herunterlädst, wird dieser Anruf möglicherweise für 10 gesperrt Sekunden. Verwende stattdessen FontFamilyResolver.preload.

  • fontResource(FontFamily): Typeface wurde verworfen. Dies war vorab geladen wurden. Dies kann bis zu 10 Sekunden dauern, Schriftarten herunterladen können. Verwenden Sie stattdessen FontFamilyResolver.preload (If8e7c, b/174162090).

  • Der SubcomposeLayoutState-Konstruktor, der maxSlotsToRetainForReuse akzeptiert, wurde verworfen. Stattdessen gibt es einen neuen Konstruktor, der SubcomposeSlotReusePolicy akzeptiert – eine neue Benutzeroberfläche, die eine genauere Kontrolle darüber ermöglicht, welche Slots für die zukünftige Wiederverwendung beibehalten werden sollen. (I52c4d)

  • Stellt HSV- und HSL-Funktion in Color als nicht experimentell bereit der API erstellen. Der Oklab-Farbraum ist jetzt eine öffentliche API. (I08fb6, b/180731008)

  • Verworfene AndroidComposeTestRule.AndroidComposeStatement, die nicht für eine öffentliche API gedacht war und nichts für Sie getan hat. wie auch immer. (Ibc46b)

  • Intern generierte KT-Klasse umbenennen (Ia0b9e, b/174162090)

  • FontLoadingStrategy.values (I42a9d, b/174162090) entfernt

  • Das globale Ladeprogramm für Schriftarten heißt jetzt FontFamilyResolver. (I4f773, b/174162090)

  • Verwende ein neues System zum Laden von Schriftarten für den Desktop. (I9ce5c, b/174162090)

  • FontFamily.Resolver.resolve gibt State<Any> (I4406c, b/174162090) zurück

Fehlerkorrekturen

  • Textfelder werden jetzt oberhalb der Tastatur angezeigt, und die Tastatur wird angezeigt, wenn der Modus für die weiche Eingabe ADJUST_PAN (I8eaeb, b/190539358, b/192043120)
  • Auf dem Computer wird die lokale Zusammensetzung für „FontFamily.Resolver“ verwendet
  • FontLoader wurde für Computer eingestellt
  • Neue createFontFamilyResolver-Factory auf dem Computer (I6bbbb, b/174162090)
  • Der Eingabetyp „Softtastatur“ flackert beim Ändern nicht mehr. Textfelder hervorheben. (I1bf50, b/187746439)

Version 1.2.0-alpha02

26. Januar 2022

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

API-Änderungen

  • Modifier.onRotaryScrollEvent() und Modifier.onPreRotaryScrollEvent() für Wear-Geräte mit rotierender Seitentaste hinzugefügt (I18bf5, b/210748686)
  • Experimentelle View.createLifecycleAwareRecomposer hinzufügen Erweiterung (I0cde6)

Externer Beitrag

  • PointerEvent.scrollDelta.y ist jetzt unter Android umgekehrt. Wenn wir das Mausrad nach rechts neigen, wird 1 statt -1 zurückgegeben (Ia9811).

Version 1.2.0-alpha01

12. Januar 2022

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

API-Änderungen

  • FontFamily.canLoadSynchronously wurde verworfen. Diese Unterkunft hat ohne semantische Bedeutung. (Ica5ef)
  • CompositionData wurde das Identitätsfeld zum Generieren hinzugefügt im Layout Inspector an. (IC116e)
  • Wear OS-Geräte-IDs wurden der Liste der Vorschaugeräte hinzugefügt (I93232).

Aktualisierung der Abhängigkeiten

  • Jetzt abhängig von Kotlin-1.6.10.

Version 1.1

Version 1.1.1

23. Februar 2022

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

Fehlerkorrekturen

  • Problem mit NullPointerException unter androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList beheben (aosp/1947059, b/206677462)
  • Absturz behoben, der durch Inhalte in der Zwischenablage beim Lesen von die Zwischenablage auf Android-Geräten. (I06020, b/197769306)
  • RTL-Fehler in LazyVerticalGrid behoben (aosp/1931080, b/207510535)

Version 1.1.0

9. Februar 2022

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

Wichtige Änderungen seit Version 1.0.0

  • Stabile Unterstützung für den Overscroll-Effekt von Android 12
  • Verbesserungen bei der Größe von Berührungszielbereichen <ph type="x-smartling-placeholder">
      </ph>
    • In Bezug auf Compose 1.0 wird der Layoutbereich von Material-Komponenten so erweitert, dass sie den Richtlinien für Bedienungshilfen von Material für die Größe des Berührungszielbereichs entsprechen. Das Berührungsziel der Schaltfläche wird beispielsweise auf eine Mindestgröße von 48 x 48 dp erweitert, auch wenn Sie die Größe der Schaltfläche entsprechend verringern. Dadurch wird das Material Design auf das gleiche Verhalten wie die Material Design-Komponenten abgestimmt, was ein einheitliches Verhalten ermöglicht, wenn du „View“ und „Compose“ mischst. Durch diese Änderung wird außerdem sichergestellt, dass beim Erstellen der Benutzeroberfläche mit „Material erstellen“-Komponenten die Mindestanforderungen für die Barrierefreiheit auf Berührungszielbereichen erfüllt sind.
  • Stabile Unterstützung für den Navigationsschienen
  • Umstellung einer Reihe zuvor experimenteller APIs auf stabile Version
  • Support für neuere Versionen von Kotlin

Version 1.1.0-rc03

26. Januar 2022

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

Fehlerkorrekturen

  • Aktualisiert, um Compose Material 1.1.0-rc03 zu unterstützen

Version 1.1.0-rc01

15. Dezember 2021

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

Fehlerkorrekturen

  • Es wurde ein Fehler behoben, der zu fehlenden Scroll-Aktionen für Bedienungshilfen führte (I7cbfb)
  • SemanticsNodeInteraction.captureToImage() funktioniert jetzt auch, wenn HardwareRenderer.isDrawingEnabled() den Wert false hat, indem es für die Dauer des Anrufs aktiviert wird (Idf3d0).

Version 1.1.0-beta04

1. Dezember 2021

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

Neue Funktionen

  • Aktualisiert, um mit Kotlin-1.6.0 kompatibel zu sein

API-Änderungen

  • Die Null-Zulässigkeit in androidx.core.view wurde bereinigt (I7078a, b/204917439).
  • Es wurden experimentelle APIs hinzugefügt, mit denen Nutzer PointerInputchange als Ganzes verwenden oder prüfen können, ob sie verwendet wurde oder nicht. (I2e59d)
  • Unterstützt jetzt Scrollrad-Ereignisse auf der UI-Ebene. (Ia14eb, b/198214718)
  • Fügen Sie experimentelle Modifier.composed-Überlastungen hinzu, die Schlüssel für Gleichheitsvergleiche und eignen sich für das Überspringen von Optimierungen. (Ice799, b/205851704)
  • ComposeNotIdleException“ endet jetzt stattdessen von Exception von direkt von Throwable. Beachten Sie, dass Catch-Klauseln die Exception fangen wollten, fangen jetzt vielleicht ComposeNotIdleException, wo sie das vorher noch nicht gemacht haben. (I9c217)

Fehlerkorrekturen

  • Ein Problem wurde behoben, durch das sich die Text-Ziehpunkte nicht bewegen, wenn sich die Sichtbarkeit des IME ändert. (I25f2e)

Version 1.1.0-beta03

17. November 2021

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

API-Änderungen

  • Neuer Modifikator "Modifier.onPlaced" hinzugefügt, der Folgendes zulässt: zu beobachten. Weitere Änderungen an Der Versatz des untergeordneten Modifikators kann daher basierend auf die beobachtete Placement-Änderung. (I558fd)
  • InjectionScope.flush() und InjectionScope.dispose(). Löschen aller Termine und Entsorgung der erfolgt nun am Ende der aufgerufenen Methode perform*Input() wie vorher. (I2bed8)
  • MultiModalInjectionScope.Touch und MultiModalInjectionScope.Mouse. Um Touch- und Maus-Elemente in für multimodale Gesten erstellen, MultiModalInjectionScope.touch() und MultiModalInjectionScope.mouse(), die beide ein Lambda akzeptieren, für den Empfängerbereich dieser Modalität gilt. (Idde18)

Fehlerkorrekturen

  • Der Standardwert für durationMillis in TouchInjectionScope.swipeWithVelocity wird jetzt so berechnet, dass der Wert Wischen möglich ist. (I19deb)

Version 1.1.0-beta02

3. November 2021

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

API-Änderungen

  • Es wurde eine experimentelle BringIntoView API hinzugefügt, mit der Sie eine Anfrage an Eltern senden können, damit diese scrollen, um ein Element sichtbar zu machen (Ib918d, b/195353459).
  • Neue Animations-APIs zur Unterstützung von Tools Insbesondere Tools zum Prüfen der Animationen und ihre Konfigurationen in einem Übergänge. (I4116e)

Externer Beitrag

  • Modifier.pointerHoverIcon (I95f01) wurde hinzugefügt.

Version 1.1.0-beta01

27. Oktober 2021

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

API-Änderungen

  • Es wurde eine experimentelle BringIntoView API hinzugefügt, mit der Sie eine Anfrage an übergeordnete Elemente senden können, damit diese scrollen, um ein Element sichtbar zu machen (Ib918d, b/195353459).
  • Neue Animations-APIs zur Unterstützung von Tools Insbesondere Tools zum Prüfen der Animationen und ihre Konfigurationen in einem Übergänge. (I4116e)

Version 1.1.0-alpha06

13. Oktober 2021

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

API-Änderungen

  • ExperimentalComposeUiApi aus ViewRootForInspector entfernen und LayoutInfo.ownerViewId (I5c2e3)
  • Eine Überlastung ohne Kinder für das Layout wurde mit verbesserter Effizienz hinzugefügt (Ib0d9a).
  • InternalCompilerApi wurde aus den Composer-Methoden entfernt, die müssen modulübergreifend aufgerufen werden (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction ist jetzt wieder verfügbar Die SemanticsNodeInteraction, auf der die Funktion aufgerufen wurde. (I9e5db)
  • LocalInputModeManager CompositionLocal wurde hinzugefügt, um TouchMode/NonTouchMode zu erkennen. (I6a83c, b/175899786)
  • viewConfiguration: ViewConfiguration“ zu „LayoutInfo“ hinzugefügt damit Kunden den richtigen Wert für Dinge wie langes Drücken . (I76ca6) <ph type="x-smartling-placeholder">
      </ph>
    • viewConfiguration: ViewConfiguration hinzugefügt zu InjectionScope, damit Tests die Eingabeeinschleusung basierend auf zum Beispiel durch langes Drücken der Zeitüberschreitung oder Touch-Slop.
    • Die Standarddauer für langes Drücken und Doppeltippen wurde geändert die Eingabe per Touchscreen oder Maus auf Grundlage der Werte in InjectionScope.viewConfiguration
  • Implementierung von „ExposedDropdownMenu“ basierend auf „ExposedDropdownMenuBox“ mit TextField und DropdownMenu (If60b2)
  • „closeOnOutsideClick“ wurde zu PopupProperties hinzugefügt, wodurch die eingestellte Funktion „ „ „distOnOutsideClick“ ersetzt" ersetzt wurde. Die neue Eigenschaft empfängt die Klickposition und die Ankergrenzen und ermöglicht so eine genauere Kontrolle darüber, ob onDismissRequest aufgerufen werden soll oder nicht. So lässt sich beispielsweise verhindern, dass der Anker bei Berührungen geschlossen wird.
    • updateAndroidWindowManagerFlags wurde zu PopupProperties hinzugefügt, um eine Low-Level-Steuerung über die Flags zu bieten, die vom Pop-up an Android WindowManager übergeben werden. Der Parameter der Lambda-Funktion sind die Flags, die aus den PopupProperties-Werten berechnet werden, die zu WindowManager-Flags führen: z.B. fokussierbar. Das Ergebnis der Lambda-Funktion sind die endgültigen Flags, die an den Android WindowManager übergeben werden. Standardmäßig lässt updateAndroidWindowManagerFlags die aus Parametern berechneten Flags unverändert. Diese API sollte nur mit Vorsicht verwendet werden, wenn das Pop-up sehr spezifische Anforderungen an das Verhalten stellt. (I6e9f9)
  • Recomposer.state“ wurde verworfen und ersetzt durch Recomposer.currentState, um seinen Typ in einen StateFlow zu ändern (Ic2ab3, b/197773820)
  • flush() und dispose() wurden zu InjectionScope hinzugefügt. Verwendung wenn Sie alle in der Warteschlange befindlichen Ereignisse sofort löschen möchten und wenn Sie den Umfang verwerten wollen. (Ifb73a)
  • performScrollToNode(matcher: SemanticsMatcher) hinzugefügt, die scrollen einen scrollbaren Container zu dem Inhalt, der mit dem angegebenen Matcher. (Ic1cb8)
  • InjectionScope implementiert jetzt Density, sodass Sie Folgendes tun können: Umwandlung von px in dp in performTouchInput und Freunden einfach. (I8fe1f)

Fehlerkorrekturen

  • AndroidView gibt jetzt „LocalLifecycleOwner“ und LocalSavedStateRegistryOwner mit seiner Ansicht über ViewTreeLifecycleOwner und ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
  • Das Problem mit Wear OS SwipeToDismissBox wurde behoben, wenn das Wischen manchmal nicht funktionierte. (I9387e)
  • Die Standardzeit zwischen injizierten Eingabeereignissen von 10 ms auf 16 ms geändert. Dies kann sich auf das Ergebnis von Tests die Eingabegesten wie ein bestimmtes Wischen ausführen. (I829fd)

Version 1.1.0-alpha05

29. September 2021

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

API-Änderungen

  • Zusätzliche Unterstützung für die Kommunikation zwischen Modifizierern (Id5467, b/198826874)
  • Es wurden experimentelle historische Hinweise zu PointerEventChange hinzugefügt. (Ic1fd8, b/197553056, b/199921305)
  • density: Density und layoutDirection: LayoutDirection wurden zu LayoutInfo hinzugefügt. Dies ermöglicht Nutzern von LayoutInfo um die Abmessungen und Position in LayoutInfo zu interpretieren ordnungsgemäß funktioniert. (I002f1)
  • Es wurde experimentelle Unterstützung für das Injizieren von Mausereignissen hinzugefügt. Verwenden Sie performMouseInput, um Mausereignisse oder Mausereignisse zu senden über die Eigenschaft Mouse von MultiModalInjectionScope während eines Multimodale Eingabegeste mit performMultiModalInput. Weitere Informationen finden Sie unter MouseInjectionScope für die Dokumentation der verfügbaren API. (Iaa4a8, b/190493367)

Fehlerkorrekturen

  • Die Unterstützung von Bedienungshilfen für scrollbare Elemente wurde korrigiert (sowohl faszinierend als auch nicht lazy) beim Scrollen (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity verbessert. Jetzt akzeptiert eine größere Bandbreite an Eingabevariablen und schlägt Änderungen an der Eingabe, wenn kein Swipe erstellt werden kann (I40fbe, b/182477143)

Version 1.1.0-alpha04

15. September 2021

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

API-Änderungen

  • PointerEvent hat jetzt einen PointerEventType um Hover-Ereignisse zu unterstützen. (I091fa)
  • Untergeordnete Elemente dürfen Zeigereingaben außerhalb von akzeptieren der Zeiger-Eingabegrenzen der übergeordneten Einheit. Eltern können diese Daten abfangen. Aufrufe mit der Eigenschaft PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
  • performGesture und GestureScope wurden eingestellt, die Folgendes enthalten: wurde durch performTouchInput und TouchInjectionScope ersetzt. (Ia5f3f, b/190493367)
  • touchBoundsInRoot zu SemanticsNode hinzugefügt, die die Mindestgröße des Berührungszielbereichs enthält, damit Entwickelnde können Sie sicherstellen, dass Berührungszielbereiche den Mindestanforderungen für die Barrierefreiheit entsprechen. (I2e14b, b/197751214)
  • Implementierung von Inspectable wiederholen (I927bc, b/191017532)
  • Parametername des Inspectable-Tags wurde so geändert, dass es zusammengefügt wird (I3a482, b/191017532)
  • performTouchInput und TouchInjectionScope wurden eingeführt als Ersatz für performTouchInput und TouchInjectionScope, Pflaster anderen Modalitäten wie der Maus den Weg geben.

    TouchInjectionScope hat dieselben Methoden wie GestureScope, wobei die mit Ausnahme von movePointerTo und movePointerBy, die in updatePointerTo und updatePointerBy umbenannt. Alle anderen Methoden sind identisch.

    Das Verhalten von TouchInjectionScope ist fast identisch mit GestureScope mit zwei kleinen Details:

    1. Beim Senden eines Down-Ereignisses, während Zeiger ohne Bewegung Es wurde ein Move-Ereignis gesendet. Mit anderen Worten: updatePointerTo() wurde verwendet, aber nicht move() und dann wird down() aufgerufen), gilt die vorherige wird die Ereigniszeit verschoben und ein Bewegungsereignis gesendet. bevor das Down-Ereignis gesendet wird. Die neue Implementierung sendet weiterhin den verschiebbares Ereignis, verschiebt aber nicht die Ereigniszeit in diesem Szenario.
    2. Beim Senden eines Aufwärtsereignisses, während Cursor bewegt wurden, ohne dass ein Move-Ereignis senden (ähnlich wie oben), wird die vorherige Implementierung würde die Ereigniszeit verschieben und vor dem Senden des nach oben. Weder noch: Die neuen Positionen der werden die Zeiger nur durch das Ereignis "up" widergespiegelt.

    Mit TouchInjectionScope wird schließlich eine neue Methode eingeführt, currentPosition(pointerId: Int) zum Abrufen der aktuellen Position des einen bestimmten Zeiger. (If1191, b/190493367)

Fehlerkorrekturen

  • Erlauben, dass der Clip über die Grenzen des Berührungszielbereichs hinaus erweitert wird den Clipbereich für eine minimale Berührungszielbereich. (I43e10, b/171509422)
  • Auf Geräten mit Android 12 wird das Overscroll-Format unterstützt. (Iccf3c, b/171682480)

Version 1.1.0-alpha03

1. September 2021

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

Neue Funktionen

  • Die Funktion „Compose“ (1.1.0-alpha03) wurde so aktualisiert, dass sie von „1.5.30“ in Kotlin abhängig ist. (I74545)

API-Änderungen

  • Modifier.inspectable zum Einbinden anderer Modifikatoren hinzugefügt. (I1909b, b/191017532)
  • BlurredEdgeTreatment API wurde hinzugefügt Anwendungsfälle einfacher in häufig verwendete Kombinationen von Clip-Flags und TileModes. Die meisten Anwendungsfälle umfassen können unkenntlich gemachte Inhalte außerhalb der Grenzen des ursprünglichen Inhalts liegen, und Bereiche außerhalb dieser Grenzen unkenntlich machen mit transparentem Schwarz oder Clip-Content bis zur Inhaltsgrenze, bei der das Sampling am nächsten Rand für Unschärfe-Kernel, die über den Inhalt hinausgehen Grenzen festzulegen. (I6b4b7, b/166927547)
  • RenderEffect wird jetzt unterstützt. in der Desktop-Version. Die Einführung von OffsetEffect sowie den Weichzeichner-Modifikator. Visuelle Effekte in einem Bereich weichzeichnen der Kompositionshierarchie. (I0f6aa, b/166927547)
  • Einführung der RenderEffect API die optional auf Modifier.graphicsLayer zum Ändern den Inhalt des Layers selbst. Dieses kann verwendet werden, um den Inhalt einer zusammensetzbaren Funktion unkenntlich zu machen, und untergeordneten zusammensetzbaren Funktionen innerhalb einer Komposition Hierarchie. (I47c4d, b/166927547)
  • AwaitPointerEventScope enthält jetzt withTimeout() und withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
  • Der ViewConfiguration wurde die Mindestgröße des Berührungszielbereichs hinzugefügt. für die Semantik und die Zeigereingabe, um Barrierefreiheit sicherzustellen. (Ie861c)
  • Unterstützung für TileMode.Decal hinzufügen die zum Definieren von Edge- für RenderEffects-Elemente, die auf Weichzeichnen basieren. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction und hasScrollToKeyAction sind jetzt stabile API (I142ae, b/178483889)
  • Es wurde eine Testmethode zum Abrufen der abgeschnittenen Grenzen hinzugefügt. (I6b28e)

Fehlerkorrekturen

  • Methode "isBounded" entfernt von BlurredEdgeTreatment dafür explizit zu prüfen, ob die Form ist null. (I85d68)

Version 1.1.0-alpha02

18. August 2021

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

API-Änderungen

  • PointerEvent unterstützt jetzt das Lesen Maustasten- und Modifikatorstatus. (I6310c, b/180075467)
  • Eingefügte Touch-Gesten nutzen jetzt die Zeit der MainTestClock für die Zeit. Die aktuelle Zeit für eingefügte Ereignisse in performGesture wird mit der aktuellen Zeit des MainTestClock verwendet. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize)-Konstruktor hinzugefügt (I2cf16, b/194219828)
  • DpSize-Klasse hinzugefügt (I7abb1, b/194219828)

Fehlerkorrekturen

  • Aktualisierte XML-Datei mit Vektorgrafiken zur Unterstützung von ColorStateLists als Stammfarbtoneigenschaften für VectorDrawables. (I86915, b/195668138)

Version 1.1.0-alpha01

4. August 2021

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

API-Änderungen

  • RelocationRequester.bringIntoView akzeptiert jetzt ein Rechteck als Parameter, mit dem ein Teil einer zusammensetzbaren Funktion sichtbar wird (Ice2c5, b/194330245).
  • AnimatedImageVector und die zugehörigen APIs sind jetzt in der neuen Modul androidx.compose.animation:animation-graphics. (I60873)
  • Es wurde ein experimenteller Modifikator zur Verarbeitung von Anfragen für eine Umzugsadresse hinzugefügt. (I65a97, b/178211874)
  • Einführung der BrushPainter API für das Zeichnen eines beliebigen Pinsels in einem Painter, ähnlich wie bei ColorPainter

    Brush API mit einer unveränderlichen Größe aktualisiert Parameter, der in BrushPainter abgefragt wird (Ia2752, b/189466433).

  • Die DrawScope#drawImage-Methode wurde aktualisiert, die verbraucht Quell- und Ziel-Rects um eine optionale FilterQuality-Ressource zu verarbeiten, . Dies ist nützlich für Pixel die verpixelt sein sollten, wenn sie für pixelbasierte Grafiken vertikal skaliert werden. Aktualisiertes BitmapPainter und zusammensetzbares Bild um auch einen optionalen FilterQuality- Parameter (Ie4fb0, b/180311607)

  • Methode „GestureScope.advanceEventTime“ hinzugefügt, um mehr anzugeben Timing von Ereignissen in einer Geste steuern (Ibf3e2)

Fehlerkorrekturen

  • Um die Verkettung von Daten Modifikatoren zeichnen, achten Sie darauf, dass die Modifier.paint-Implementierung ruftdrawsContent auf. Bisher wurde Modifier.paint auf einen Blattknoten in der Modifikatorenkette wird jedoch verhindert, Die Konfiguration in einem zusammensetzbaren Container (z. B. Box) ist nicht möglich. Verzierungen wie Modifier.paint().border() Mit Modifier.paint nach dem Zeichnen des Inhalts der angegebenen haben wir ein einheitlicheres Verhalten mit dem Modifikatormuster. (Ibb2a7, b/178201337, b/186213275)
  • Dialogfelder folgen jetzt dem Verhalten bei der Plattformgröße. Setzen Sie usePlatformDefaultWidth auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)
  • InfiniteAnimationPolicy wurde nach :compose:ui (I5eb09, b/160602714) verschoben
  • Das Scrollen über Semantikaktionen für Lazy Listen und Komponenten für reguläres Scrollen ist jetzt animiert (Id9066, b/190742024).

Version 1.0

Version 1.0.5

3. November 2021

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

Fehlerkorrekturen

  • Ein Absturz-Tracking von RelatedStateOf-Instanzen wurde behoben. (aosp/1792247)

Version 1.0.4

13. Oktober 2021

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

Aktualisierung der Abhängigkeiten

  • Aktualisiert und abhängig von Kotlin 1.5.31

Version 1.0.3

29. September 2021

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

Aktualisierung der Abhängigkeiten

  • Aktualisiert und abhängig von Kotlin 1.5.30

Version 1.0.2

1. September 2021

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

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

Version 1.0.1

4. August 2021

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

Aktualisierung der Abhängigkeiten

  • Aktualisiert und abhängig von Kotlin-1.5.21.

Version 1.0.0

28. Juli 2021

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

Hauptfunktionen von Version 1.0.0

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

Bekannte Probleme

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

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

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

Version 1.0.0-rc02

14. Juli 2021

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

Fehlerkorrekturen

  • Dialogfelder folgen jetzt dem Verhalten bei der Plattformgröße. Setzen Sie usePlatformDefaultWidth auf „false“, um dieses Verhalten zu überschreiben. (Iffaed, b/192682388)

Version 1.0.0-rc01

1. Juli 2021

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

Neue Funktionen

  • UI-Tooling-Modul in ui-tooling und ui-tooling-preview aufteilen (Iefa28, b/190649014)

API-Änderungen

  • Die eingestellten experimentellen FocusManager#moveFocusIn und FocusManager#moveFocusOut (I227d7, b/170154986, b/186567354, b/168510304) wurden entfernt.
  • Canvas unterstützt jetzt einen contentDescription-Parameter für Barrierefreiheit. (Ib547c)
  • useDefaultMaxWidth in PopupProperties wurde in usePlatformDefaultWidth umbenannt. (I05710)
  • Dialogfelder können jetzt die gesamte Bildschirmbreite nutzen. (I83929, b/190810877)
  • Experimentelle Unterstützung für HSV- und HSL-Farben hinzugefügt Darstellungen. (Id7cf8, b/180731008)

Änderungen im Verhalten

  • Mit der Funktion „Schreiben“ @Preview können Sie jetzt LocalActivityResultRegistryOwner, mit denen Sie um Composables anzuzeigen, die APIs wie rememberLauncherForActivityResult(), die abhängig sind für diesen Inhaber existieren. (Ib13d1, b/185693006)
  • Mit der Funktion „Schreiben“ @Preview können Sie jetzt LocalOnBackPressedDispatcherOwner, mit denen Sie um Composables anzuzeigen, die APIs wie BackHandler verwenden die von diesem Inhaber abhängen. (Ia1c05, b/185693006)

Fehlerkorrekturen

  • InfiniteAnimationPolicy wurde nach androidx.compose.ui:ui verschoben (I5eb09, b/160602714)
  • AnimierteImageVector wurde vorübergehend entfernt, um die Modulstruktur zu ändern. (I41906, b/160602714)

Version 1.0.0-beta09

16. Juni 2021

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

API-Änderungen

  • enum Role und LiveRegionMode in Inline-Klassen ändern mit privatem Konstruktor (Id1890)
  • KeyboardCapitalization wird in eine Inline-Klasse konvertiert. (Id5a1c)
  • Ändern Sie „HapticFeedbackType“ in „Inline-Klasse“. (I255ec)
  • Modifier.pointerInteropFilter ist @ExperimentalComposeUiApi. (Iede6c)
  • TextAlign, FontSynthesis und TextDirection sind jetzt inline Klassen. (I212fe)
  • TextOverflow wurde in eine Inline-Klasse geändert. (I433af)
  • FontStyle ist jetzt eine Inline-Klasse. (I9e48b)

Fehlerkorrekturen

  • Die Schlüsselkonstanten sind vorerst @ExperimentalComposeUiApi. Wird verarbeitet private Konstanten vor der Stabilisierung deklarieren. (Ia5d48)
  • Compose-Tests können jetzt mit Robolectric ausgeführt werden. Die folgenden wurden bisher folgende Einschränkungen festgestellt: <ph type="x-smartling-placeholder">
      </ph>
    • Es gibt keine native Bitmap, daher führt ImageBitmap() zu einem NullPointerException aus.
    • Es liegt keine Zeichnung vor, daher wartet captureToImage() auf unbestimmte Zeit Zeichnungspass (Deadlock)
    • Es ist keine Schriftart geladen, daher wird jeglicher Text falsch gemessen. Alle Zeichen haben eine feste Höhe von etwa 20 Pixel und eine Breite von 1 Pixel.
    • ComposeTestRule.waitUntil {} führt den Hauptthread nicht aus, während er wartet. Er ist also praktisch derselbe wie ComposeTestRule.mainClock.advanceTimeUntil {}. In Zukunft sind weitere Einschränkungen zu erwarten. (I284fa)

Regeln für Profil hinzugefügt

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

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometrie
  • 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 der Textdatei baseline-prof.txt im src/main oder einem entsprechenden Verzeichnis angegeben. In der Datei ist eine Regel pro Zeile angegeben, wobei eine Regel in diesem Fall ein Muster für den Abgleich mit Methoden oder Klassen in der Bibliothek ist. Die Syntax für diese Regeln ist eine Obermenge des visuell lesbaren ART-Profilformats, das bei Verwendung von adb shell profman --dump-classes-and-methods ... verwendet wird. Für die Ausrichtung auf Methoden oder Klassen gibt es zwei Arten dieser Regeln.

  • Eine Methodenregel hat das folgende Muster:

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

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

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

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

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

Wozu dienen die Regeln?

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

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

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

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

So funktioniert's

  • Bibliotheken können diese Regeln definieren, die in AAR-Artefakte gepackt werden. Wenn dann eine Anwendung erstellt wird, die diese Artefakte enthält, werden diese Regeln zusammengeführt und die zusammengeführten Regeln zum Erstellen eines kompakten binären ART-Profils verwendet, das speziell für die Anwendung gilt. ART kann dieses Profil dann nutzen, wenn die App auf Geräten installiert wird, um im Voraus eine bestimmte Teilmenge der App zu kompilieren und so die Leistung der App zu verbessern, insbesondere bei der ersten Ausführung. Dies hat keine Auswirkungen auf Debug-fähige Anwendungen.

Version 1.0.0-beta08

2. Juni 2021

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

API-Änderungen

  • NestedScrollSource-Enum wird durch eine Inline-Klasse ersetzt. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true) wird in FocusManager.clearFocus(force = true) umbenannt (Ia0c41).
  • Überarbeitete enum-Verwendungen auf Inline-Klassen, um dies zu vermeiden mit ausführlichen Wenn-Aussagen, werden neue enum-Werte hinzugefügt. (I2b5eb)
  • @ExperimentalComposeUiApi aus PopupProperties entfernen. (I01fa6)
  • PointerType wurde von einer Aufzählung in eine Inline-Klasse geändert (If5058)
  • Die Properties „ContentDescription“ und „Text“ sind nicht mehr verfügbar als einzelne Werte, aber als Listen. So können Sie sie wie gewohnt zusammenführen. von Verkettungen. Bietet auch bessere Test-APIs zur Nutzung dieser Änderungen (Ica6bf, b/184825850)
  • Modifier.focusModifier() wurde verworfen und durch Modifier.focusTarget() (I6c860) ersetzt
  • Modifier.onSizeChanged() und Modifier.onGloballyPositioned() sind keine Inline-Funktionen mehr (I727f6, b/186109675).
  • KeyboardType-Enum wird durch eine Inline-Klasse ersetzt. (I73045, b/187055290)
  • FocusState-Enum durch FocusState-Schnittstelle ersetzt (Iccc1a, b/187055290)
  • ImeAction-Enum wird durch eine Inline-Klasse ersetzt. (I18be5, b/187055290)
  • PlaceholderVerticalAlign wird in eine Inline-Klasse konvertiert. (If6290)
  • TextUnitType ist jetzt eine Inline-Klasse. (I4cba9)
  • AnnotatedString.withAnnotation-Funktionen sind jetzt ExperimentalTextApi statt ExperimentalComposeApi. (I0cd0a) <ph type="x-smartling-placeholder">
      </ph>
    • TextUnit-Konstruktor mit TextUnitType ist jetzt ExperimentalTextApi anstelle von ExperimentalComposeApi.

Fehlerkorrekturen

  • Der in Beta07 eingeführte Fehler wurde behoben, bei dem LazyColumn-/Row-Elemente nach dem Scrollen teilweise angezeigt wurden (I8c9ac, b/188566058).
  • Die Positionsänderung wird jetzt von detectDragGesures, detectVerticalGestures und detectHorizontalGestures automatisch übernommen, sodass man change.consumePositionChange in den onDrag-Callbacks nicht aufrufen muss (I42fc4, b/185096350, b/187320697).
  • LayoutModifiers mit Ausrichtungslinien wurden korrigiert. Ein Fehler, der dazu führte, dass das übergeordnete Element nicht erneut gemessen wurde, als sich die Ausrichtungslinien der untergeordneten Elemente änderten, wurde behoben. (I4401f, b/174315652)
  • Modifier.onGloballyPositioned() wurde geändert, um die Koordinaten dieses Modifikators in der Modifikatorkette anzugeben, und nicht die Layoutkoordinaten, nachdem alle Modifikatoren angewendet wurden. Das bedeutet, dass sich jetzt die Reihenfolge der Modifikatoren darauf auswirkt, welche Koordinaten im Bericht angezeigt werden. (Ieb67d, b/177926591)

Version 1.0.0-beta07

18. Mai 2021

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

API-Änderungen

  • ViewRootForInspector-Schnittstelle zur Verwendung im Inspector hinzugefügt (Ib70df)
  • SubcomposeLayoutState unterstützt jetzt die Festlegung der Anzahl von wiederverwendbaren Slots. Im Layout bleibt diese Anzahl von Slots aktiv. Sie werden nicht entsorgt, damit sie wiederverwendet werden können, wenn ein neuer Slot benötigt wird (Ieb981).
  • KeyEventType-Enum durch eine Inline-Klasse ersetzt (Id670a, b/187055290)
  • FocusDirection-Enum wird durch eine Inline-Klasse ersetzt. (Ib6d03, b/187055290, b/184086802)
  • Bietet die Möglichkeit, den SubcomposeLayout-Zustand zu heben, mit der Sie den Inhalt in eine erforderliche Slot-ID vorversetzen können, wodurch der nächste Messwert schneller übergeben wird, da beim nächsten Mal keine Zusammensetzung mit der angegebenen SlotId versucht wird. (I42580, b/184940225)
  • Ziehpunkt für Clip-Auswahl hinzugefügt (Iff80d, b/183408447)
  • Nicht verwendete APIs für die Unterstützung von LayoutInspector wurden entfernt. (I2ac78)

Fehlerkorrekturen

  • In LazyColumn/Row bleiben jetzt bis zu zwei zuvor sichtbare Elemente aktiv (nicht entsorgt), auch wenn sie bereits herausgescrollt werden. Dadurch kann die Komponente die aktiven Unterzusammensetzungen wiederverwenden, wenn ein neues Element erstellt werden muss, was das Scrollen verbessert. (IE5555)
  • TextGeomerticTransform und TextDecoration am AnnotatedString wie angegeben angewendet. (I61900, b/184760917)

Version 1.0.0-beta06

5. Mai 2021

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

API-Änderungen

  • Konflikt mit Navigationsbewegung lösen (I1145e)
  • @ComposeCompilerApi nicht mehr @RequiresOptIn (Iab690)
  • Die Bedienungshilfen „CollectionInfo“ und „CollectionItemInfo“ wurden hinzugefügt, mit denen eine Sammlung und ihre Elemente für Bedienungshilfen markiert werden können (Id54ef, b/180479017).
  • SemanticsActions.ScrollToIndex“ wurde hinzugefügt, um durch eine Liste zu scrollen mit indexierte Elemente mit einem bestimmten Index SemanticsProperties.IndexForKey, um den Index eines Elements in einer Liste abzurufen mit Schlüsselelementen. Beide Aktionen werden von LazyList implementiert.
    • SemanticsNodeInteraction.performScrollToIndex hinzugefügt, die zum angegebenen Index scrollt und SemanticsNodeInteraction.performScrollToKey, mit dem in einer Liste zum das Element mit dem angegebenen Schlüssel enthält. (I4fe63, b/178483889, b/161584524)
  • "ownerViewId" wurde zu GraphicLayerInfo (I19f62) hinzugefügt.
  • Font()-Überladungen zum Laden von Schriftarten hinzugefügt aus Assets, File und FileDescriptor (I5d382)
  • Die Accessibility API error wurde hinzugefügt, mit der ein Knoten markiert werden kann, der eine ungültige Eingabe enthält (I12997, b/180584804, b/182142737).
  • Font() Überladungen zum Laden von Schriftarten hinzugefügt aus Assets, File und FileDescriptor (I43007)
  • Speicherunterstützung für AnnotatedString unter TextFieldValue.SaveraddTtsAnnotation“ wurde hinzugefügt und mit Annotation-Dienstprogrammfunktionen AnnotatedString.Builder (I8cbdc, b/178446304)
  • TextUnit-Konstruktorfunktion hinzugefügt TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Version 1.0.0-beta05

21. April 2021

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

API-Änderungen

  • Experimentelle FocusManager.moveFocus(In) und FocusManager.moveFocus(Out) hinzugefügt (Ic5534, b/183746743)
  • Experimentelle performTextInputSelection API hinzugefügt (I2dcbb, b/178510628)
  • Die InputEventCallback-Oberfläche wurde verworfen. Die Schnittstelle konnte in keinem der Public API; und wurde nicht im Code. (I34a02, b/184003208)
  • Eingestellt TextLayoutResult/createTextLayoutResult . Es handelt sich um eine nicht verwendete öffentliche Funktion, die hinzugefügt wurde für Tests. Die Funktion hat keine brauchbaren APIs zum Schreiben von Text Die Funktion wurde verworfen und wird später entfernt werden. (I80413)

Fehlerkorrekturen

  • Korrigiert: ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight und accessibilityActionScrollDown Scrollaktionen für Bedienungshilfen. Anstatt bis zum Ende der Seite zu scrollen, scrollbar ist, wird jetzt um einen Bildschirm in die angegebene Richtung gescrollt. (Ieccb0)
  • Die AndroidManifest-Dateien aus ui-test-manifest und ui-tooling-data sind jetzt mit Android 12 kompatibel (I6f9de, b/184718994).

Version 1.0.0-beta04

7. April 2021

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

API-Änderungen

  • hideSoftwareKeyboard und showSoftwareKeyboard umbenennen aktiviert SoftwareKeyboardController in hide() bzw. show().
    • Stellen Sie die vollständige CompositionLocal-Oberfläche für LocalSoftwareKeyboardController. Damit kann es festgelegt werden (insbesondere nützlich in Tests) (I579a6)
  • Die LiveRegion Accessibility API wurde hinzugefügt. Wenn der Knoten als Live-Region markiert ist, informiert den Nutzer automatisch über die Änderungen (Idcf6f, b/172590946).
  • TextOverflow.Visible. (Ic8f89)

Fehlerkorrekturen

  • Das Problem, dass Elemente von LazyColumn/LazyRow, die sich an den Kanten befanden, nach schnellem Wischen falsch positioniert wurden (Ie4d13, b/183877420) wurde behoben.
  • AndroidViewBinding entfernt jetzt ordnungsgemäß Fragmente, die über FragmentContainerView aufgebläht wurden, AndroidViewBinding wird aus dem Editor entfernt Hierarchie. (Ib0248, b/179915946)
  • AndroidViewBinding ist jetzt korrekt verschachtelt Fragmente, die über FragmentContainerView aufgebläht wurden, Ihr ComposeView liegt innerhalb von Fragment, das Probleme beim Speichern und Wiederherstellen Fragmenten. (I70eb0, b/179915946)
  • Compose ViewBinding ist jetzt abhängig von Fragment 1.3.2 und zeigt nun konsequent Fragmente, FragmentContainerView nach Konfigurationsänderungen. (I0743d, b/179915946)

Version 1.0.0-beta03

24. März 2021

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

API-Änderungen

  • Verzögerte Prüfung auf ViewTree-Abhängigkeiten von ComposeView (I8dbbf, b/182466548)
  • Optionale Parameter startX/endX und startY/endY hinzugefügt bis swipeUp/swipeDown/swipeLeft/swipeRight Funktionen in GestureScope. (I49e2d, b/182063305)

Version 1.0.0-beta02

10. März 2021

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

API-Änderungen

  • Neue lokale Komposition (LocalSoftwareKeyboardController) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I5951e, b/168778053)
  • Neue lokale Komposition (LocalSoftwareKeyboardController) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I84472, b/168778053)
  • Die folgenden SemanticsMatchers wurden entfernt: <ph type="x-smartling-placeholder">
      </ph>
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Die folgende SemanticsMatchers wurde markiert als @ExperimentalTestApi: <ph type="x-smartling-placeholder">
      </ph>
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (Ia600c)
  • Die folgenden SemanticsMatchers wurden hinzugefügt: <ph type="x-smartling-placeholder">
      </ph>
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (I2f502)

Fehlerkorrekturen

  • Einschränkungen für die öffentliche Nutzung experimenteller APIs erzwingen (I6aa29, b/174531520)
  • androidx.compose.ui:ui ist nicht mehr von AppCompat oder Fragment abhängig. Wenn Sie in Ihrer Anwendung ein ComposeView-Objekt und Fragment und/oder AppCompat verwenden, stellen Sie sicher, dass Sie AppCompat 1.3 und höher bzw. Fragment 1.3 oder höher verwenden. Diese Versionen sind erforderlich, um den Lebenszyklus und die für ComposeView erforderlichen Inhaber von gespeicherten Status korrekt festzulegen. (I1d6fa, b/161814404)
  • Behebung des fehlerhaften rememberSaveable { mutableStateOf(0) }, der innerhalb eines Ziels von navigation-compose verwendet wurde. (I1312b, b/180042685, b/180701630)
  • Neue lokale Komposition (LocalSoftwareKeyboardController) hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I658b6, b/168778053)
  • Die seltene Ausnahme NoSuchElementException in ComposeRootRegistry wurde behoben. tearDownRegistry() (IdDce1)

Version 1.0.0-beta01

24. Februar 2021

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

Dies ist die erste Version der Betaversion von Compose 1.0.0.

API-Änderungen

  • Der onStart-Callback wurde detectDragGestures hinzugefügt (I67269, b/179995594).
  • Modifikatoren zur Größenanpassung für intrinsische Elemente sind nicht mehr experimentell. (I15744)
  • MeasureBlocks wurde in MeasurePolicy umbenannt, eine unterhaltsame Oberfläche. Die Layout-APIs wurden für die Verwendung von MeasurePolicy aktualisiert oder vereinfacht. (Icab48, b/167662468, b/156751158)
  • InteractionState“ wurde durch „[Mutable]InteractionSource“ ersetzt <ph type="x-smartling-placeholder">
      </ph>
    • Schnittstellen sind für das Ausgeben und Erfassen von Interaktionsereignissen verantwortlich.
    • Anstatt interactionState = remember { InteractionState() } an Komponenten wie Button und Modifier.clickable() zu übergeben, verwenden Sie interactionSource = remember { MutableInteractionSource() }.
    • Anstelle von Interaction.Pressed in interactionState sollten Sie stattdessen die Erweiterungsfunktionen für InteractionSource verwenden, z. B. InteractionSource.collectIsPressedAsState().
    • Für komplexe Anwendungsfälle können Sie InteractionSource.interactions verwenden, um den Interaktionsstrom zu beobachten. Weitere Informationen finden Sie in der InteractionSource-Dokumentation und den Beispielen.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Fügen Sie AccessibilityMananger-Benutzeroberfläche und LocalAccessibilityMananger in CompositionLocals (I53520)
  • Die eingestellten LayoutCoordinates-Methoden wurden entfernt. Verwenden Sie anstelle der Eigenschaft für positionInParent und boundsInParent (I580ed, b/169874631, b/175142755) die Funktion
  • Durch zugrunde liegende Typen ersetzte Typaliasse: <ph type="x-smartling-placeholder">
      </ph>
    • ColorStop heißt jetzt Pair<Float, Color>
    • SpanStyleRange ist jetzt „AnnotatedString.Range
    • ParagraphStyleRange heißt jetzt AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation heißt jetzt AnnotatedString.Range<String>
    • (I8dd1a)
  • Neue TextInputSession für Eingabesitzungen aus Low-Level-Textkomponenten wie CoreTextField erstellt. (I8817f, b/177662148)
  • „Placeable“ zeigt jetzt „measureSize“ an. Sie stellt die Größe dar, mit der das untergeordnete Layout tatsächlich gemessen wurde. Bei dieser Größe werden die Messbeschränkungen möglicherweise nicht berücksichtigt. (Ib2729, b/172560206, b/172338608)
  • „selectGroup“-Modifikator hinzufügen, mit dem eine Sammlung von Tabs oder Optionsfeldern aus Gründen der Barrierefreiheit markiert werden kann (Ie5c29)
  • Die defaultFactory für compositionLocalOf und staticCompositionLocalOf ist jetzt erforderlich anstelle von optional.

    Durch diese Änderung wird ein möglicher Typfehler für Nicht-Nullwerte entfernt Typen, für die keine Standard-Factory angegeben wurde. Vorher würde einen Nullverweis für einen Typ liefern, der keine Nullwerte zulässt.

    Für Typen, für die Nullwerte zulässig sind, sollten Sie { null } als Standard festlegen Factory.

    Wir raten davon ab, lokale Nutzer mit Typen zu verwenden, die keine Nullwerte zulassen können, es sei denn, kann ein sinnvoller Standardwert angegeben werden. Wenn kein sinnvoller Standardwert vorhanden ist, sollte das Lambda defaultFactory eine Ausnahme auslösen. Allerdings dass eine Ausnahme ausgelöst wird, eine implizite Abhängigkeit von ihrer Bereitstellung, die nicht erzwungen wird durch das Typsystem. (Ifbd2a)

  • Verworfene Methoden aus UI-Modulen wurden entfernt (I646f6)

  • Größenmodifikatoren wurden umbenannt. „modifier.width/height/size“ wurde in requiredWidth/requiredHeight/requiredSize umbenannt. „Modifier.preferredWidth/preferredHeight/preferredSize“ wurde in „Breite/Höhe/Größe“ umbenannt. (I5b414)

  • Modifier.tapGestureFilter wurde entfernt. Verwende stattdessen Modifier.pointerInput { detectTapGestures(...) }. (I266ed, b/175294473)

  • ein teilweiser Verbrauch wurde aus dem Zeiger-Eingabesystem entfernt. Die empfohlene Methode zur Koordination der teilweisen Nutzung ist Modifier.nestedScroll. (Ie9c9b)

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

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

  • AnimationClockObservable und Unterklassen wurden entfernt. AnimierteFloat-Anzeige wurde entfernt. (Icde52, b/177457083)

  • „Providers“ wurde in CompositionLocalProvider umbenannt

    • Der Kompositionskonstruktor akzeptiert keinen Schlüsselparameter mehr und wurde eingestellt.
    • currentCompositeKeyHash wurde in eine zusammensetzbare Top-Level-Eigenschaft anstelle einer zusammensetzbaren Top-Level-Funktion umgewandelt.
    • CompositionData und CompositionGroup wurden in den Namespace „androidx.compose.runtime.tooling“ verschoben
    • ComposableLambda wurde zu einer Schnittstelle anstelle einer konkreten Klasse gemacht und verfügt nicht mehr über Typparameter.
    • ComposableLambdaN ist jetzt eine Schnittstelle anstelle einer konkreten Klasse und hat keine Typparameter mehr.
    • Die Funktion „SnapshotFlow“ wurde in den Namespace „androidx.compose.runtime“ verschoben
    • Die Zusammenführungsmethode von SnapshotMutationPolicy ist nicht mehr experimentell
    • Die @TestOnly-Funktion „clearRoots“ der obersten Ebene wurde entfernt. Es ist nicht mehr notwendig.
    • Die Funktionen „keySourceInfoOf“ und „resetSourceInfo“ wurden entfernt. Sie werden nicht mehr benötigt.
    • Composer.collectKeySourceInformation wurde entfernt. Es ist nicht mehr notwendig.
    • Die Methoden „isJoinedKey“, „joinKeyLeft“ und „joinKeyRight“ wurden entfernt. Sie werden nicht mehr benötigt.
    • Verschiedene APIs der obersten Ebene wurden verschoben und in verschiedene Dateien neu organisiert. Aufgrund der Semantik der Dateiklassen von Kotlin wird die Kompatibilität der Binärdateien, aber nicht der Quelldateien beeinträchtigt. Daher sollte es für die meisten Nutzer kein Problem sein.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent() wurde aus „Compose:ui“ entfernt. Du kannst die von androidx.activity:activity-compose:1.3.0-alpha01 verwenden. viewModel() und LocalViewModelStoreOwner wurden aus „Compose:ui“ entfernt. Verwenden Sie die aus androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b).

  • Modifier.scrollable wurde überarbeitet. Jetzt wird die Scrollable-Schnittstelle anstelle der ScrollableController-Klasse verwendet (I4f5a5, b/174485541, b/175294473).

  • CustomEvens von PointerInputModifier wurde entfernt (I02707, b/175294473)

  • SnapshotStateObserver ist nicht mehr experimentell (Id2e6a).

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

  • longPressGestenFilter und DoubleClickGestenFilter wurden entfernt. Verwendung von Modifier.pointerInput mit Hilfsfunktionen, z. B. detectTapGestens (I2fedf, b/175294473)

  • String.format API entfernt refaktorierten Nutzungen in verschiedenen toString-Methoden, die nicht verwendet werden sollen String.format intern. (ID1290)

  • dp-Assertions entfernt (I798d2)

  • androidx.compose.runtime:runtime- zwar entfernt (I55feb)

  • Bei Textaktionen wird der Fokus jetzt automatisch geprüft (I13777, b/179648629).

  • runBlockingWithManualClock (I15cdc, b/179664814) entfernt

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

  • FlingConfig wurde in FlingBehavior umbenannt. Sie ermöglicht jetzt die Anpassung von Stoppanimationen anstelle von vordefinierten Decays. (I02b86, b/175294473)

  • Es wurde eine Hilfsfunktion hinzugefügt, die für Dieselbe Aktion für alle ImeAction-Callbacks festlegen (I63447, b/179226323)

  • Der SoftwareKeyboardController-Callback wurde aus dem gesamten Text entfernt. werden demnächst durch eine neue API ersetzt. (Iae869, b/168778053)

  • FontSpan und FontWeigthStyleSpan werden nicht mehr verwendet und entfernt. (Ie5b56, b/177423444)

  • Folgende Änderungen an der Material API wurden vorgenommen:

    • Der Parameter "contentPadding" wurde zu Top/BottomAppBar hinzugefügt, um das Standard-Padding anzupassen.
    • Die Parameter in BackdropScaffold wurden neu angeordnet, um den API-Richtlinien für erforderliche Parameter vor optionalen Parametern zu entsprechen.
    • Der Parameter icon wurde in BottomNavigationItem hinter selected und onClick verschoben.
    • Der Parameter alwaysShowLabels in BottomNavigationItem wurde in alwaysShowLabel umbenannt.
    • bodyContent-Parameter in einigen Komponenten in content umbenannt.
    • Parameter in ButtonDefaults.buttonColors() neu angeordnet. Bitte beachten Sie, dass dies keinen Fehler in Ihrem Code verursacht, da sich der Typ der Parameter nicht geändert hat. Stellen Sie sicher, dass Sie entweder benannte Parameter verwenden oder die Reihenfolge manuell aktualisieren. Andernfalls funktioniert der Code nicht wie zuvor.
    • Der Parameter secondaryVariant wurde zu darkColors() hinzugefügt. Diese Farbe hat in der Regel die gleiche Farbe wie secondary im dunklen Design, sorgt aber für Einheitlichkeit und eine weitere Anpassung.
    • ElevationDefaults und animateElevation() wurden von der öffentlichen API-Oberfläche entfernt, da sie im Allgemeinen nicht verwendet wurden bzw. nicht hilfreich waren.
    • onValueChangeEnd in Slider wurde in onValueChangeFinished umbenannt und Nullwerte zulässig.
    • Der Parameter text in Snackbar wurde aus Konsistenzgründen in content umbenannt.
    • Der Parameter contentPadding wurde zu DropdownMenuItem hinzugefügt, um das Anpassen des Standardabstands zu ermöglichen. content wurde zu einer Erweiterung von RowScope.
    • ModalDrawerLayout wurde in ModalDrawer umbenannt.
    • BottomDrawerLayout wurde in BottomDrawer umbenannt.
    • (I1cc66)

Fehlerkorrekturen

  • Es wurde eine API zur Verwendung von animateVectorDrawable-Ressourcen in Compose hinzugefügt. Verwenden Sie animierteVectorResource, um eine <animated-vector>-XML als animateImageVector zu laden und zu animieren mit PainterFor (I8ea91)
  • Neue lokale „LocalSoftwareKeyboardController“-Komposition hinzugefügt API zum Ersetzen der vorherigen SoftwareKeyboardController-Schnittstelle auf Textfeld ein. (I658b6, b/168778053)

Version 1.0.0-alpha12

10. Februar 2021

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

API-Änderungen

  • ViewGroups werden aus UiApplier nicht mehr unterstützt. Die verworfenen zusammensetzbaren Funktionen von emitView wurden entfernt. (Ifb214)
  • Modifier.pointerInput erfordert nun das Speichern von Tasten, um anzuzeigen, wann die Koroutine zur Erkennung der Zeigereingabe für eine neue Abhängigkeiten. (I849cd)
  • CompositionReference wurde in CompositionContext (I53fcb) umbenannt
  • „Bounds“ wurde in „DpRect“ umbenannt (I4b32a).
  • Test-Update: hasText() sucht im Textfeld sowohl nach Eingabe- als auch Label-/Hinweisen/Platzhaltern (Iab803)
  • viewModel() zusammensetzbar und LocalViewModelStoreOwner wurden nach androidx.lifecycle.viewmodel.compose verschoben. Jetzt müssen Sie die separate Abhängigkeit „androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01“ hinzufügen, um sie zu verwenden. (I7a374)
  • Aktion, für die Nullwerte zulässig sind, in AccessibilityAction zulassen, Aktion ändern in AccessibilityAction und CustomAccessibilityAction von CharSequence in String (I0dc82) ein
  • Um die Bezeichnungen mit ImageBitmap und ImageVector verwenden, ImagePainter wurde in BitmapPainter umbenannt. parallelem VectorPainter. (Iba381, b/174565889)
  • Bessere Teilstring-Test-APIs mit Teilstring jetzt als Argument (Icbe78)
  • Modifier.focusOrder() hinzugefügt, die akzeptiert einen FocusRequester ohne Angabe eines für die benutzerdefinierte Fokussierung eine Lambda-Funktion. Hilfreich wenn wir nur einen Verweis angeben müssen aber keine benutzerdefinierte Fokusreihenfolge für eine zusammensetzbare Funktion (I4f52a, b/179180978).
  • ComponentActivity.setContent wurde verschoben nach androidx.activity.compose.setContent im androidx.activity:activity-compose-Modul. (Icf416)
  • Die Methoden "Destrukturieren" und "copy()" wurden entfernt aus in denen sie selten verwendet wurden. (I26702, b/178659281)
  • Pop-up wurde zu plattformspezifisch verschoben. AndroidPopupProperties wurde in PopupProperties umbenannt und isFocusable wurde in PopupProperties (Ieeea5) in einen focusable-Parameter verschoben.
  • Dialogfeld wurde zu plattformspezifischen Angaben verschoben. AndroidDialogProperties wurde in DialogProperties umbenannt. (I4ef69, b/179138130)
  • LayoutNode intern erstellt (I8a7b1, b/175103944)
  • „Constraints.enforce“ wurde durch „Constraints.constrain“ ersetzt. (I8b8ea)
  • „loadFontResource“ wurde eingestellt. Verwenden Sie stattdessen „fontResource“. „imageResource“, „loadImageResource“, „vectorResource“ und „loadVectorResource“ wurden eingestellt. Verwenden Sie stattdessen PainterResource. (I6b809)
  • Aus Leistungsgründen nimmt die ScrollAxisRange-Semantik jetzt Lambdas geben Gleitkommazahlen anstelle von direkten Gleitkommawerten zurück. (If4a35, b/178657186)
  • Es wurde eine EditableText-Semantik hinzugefügt, um bearbeitbaren Eingabetext des Textfelds für Barrierefreiheit zu markieren, und entsprechende Testmethoden zur Prüfung der Semantik (I8e07a).
  • InhaberLayer/OwnerScope/OwnerSnapshotObserver intern geändert (I4ffaf, b/175103944)
  • toIntPx() wurde inroundToPx() umbenannt. (I9b7e4, b/173502290)
  • IntBounds wurde in IntRect umbenannt und die API wurde verbessert. (I1f6ff)
  • Die Snapshot API wurde im Hinblick auf Konsistenz mit API-Richtlinie und Ausblenden interner Implementierungsklassen aus der öffentlichen API. (Id9e32)
  • Semantikaktionen zum Maximieren und Minimieren wurden hinzugefügt. Hinzugefügt Maximieren und halbMaximieren in ModalBottomSheetState (Ib5064)
  • „Modifier.dragGestenFilter“ wurde eingestellt. Verwende stattdessen Modifier.pointerInput { detectDragGestures (...)}. Alternativ können Sie „Modifier.draggable“ für das Ziehen um eine Achse verwenden (I0ba93, b/175294473).
  • Ambients wurden umbenannt, um sie an den Inaktivmodus anzupassen -> CompositionLocal- umbenennt. Ambients hießen früher AmbientFoo, CompositionLocals heißt jetzt LocalFoo. (I2d55d)
  • Das verworfene BaseTextField wurde entfernt. Verwenden Sie stattdessen BasicTextField. (I71368)
  • Auswahl wurde auf Fundament verschoben. (I7892b)
  • Ähnlich wie zuvor entfernte die zusammensetzbare Funktion state { 0 } und jetzt die Verwendung wie remember { mutableStateOf(0) }, entfernen wir die zusammensetzbare Funktion savedInstanceState { 0 }. Sie sollten stattdessen rememberSaveable { mutableStateOf(0) } verwenden. Die Speicherung und Wiederherstellung erfolgen automatisch, wenn der im MutableState verwendete Typ im Bundle gespeichert werden kann. Wenn Sie jetzt ein benutzerdefiniertes Saver-Objekt übergeben haben, müssen Sie eine neue Überlastung von „merkSaveable“ mit dem Parameter stateSaver verwenden. Die Nutzung sieht so aus: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Passwortsemantik für Bedienungshilfen hinzugefügt (I231ce)
  • "ProgressBarRangeInfo.Indeterminate" wurde hinzugefügt, um indeterminate Fortschrittsbalken für Bedienungshilfen zu kennzeichnen (I6fe05).
  • Die Dienstprogramme emptyContent() und (@Composable () -> Unit).orEmpty() wurden eingestellt, da sie sich nicht mehr positiv auf die Leistung auswirken (I0484d)
  • snapshotFlow und withMutableSnapshot wurden entfernt experimentell (I6a45f)
  • Recomposeren können jetzt geschlossen werden. Geschlossene Rekomponisten Setze die Neuzusammensetzung fort, bis die untergeordneten Koroutinen der Komposition abgeschlossen sind. Recomposer.shutDown wurde umbenannt, um den Vorgang abzubrechen und einen Kontrast mit dem Schließen zu bilden. (Ib6d76)
  • UiSavedStateRegistry wurde in SaveableStateRegistry, AmbientUiSavedStateRegistry in AmbientSaveableStateRegistry umbenannt und beide in das Paket „androidx.compose.runtime.saveable“ verschoben. (I30224)
  • Das Artefakt „androidx:compose:runtime:runtime-saved-instance-state“ wurde in „androidx:compose:runtime:runtime-saveable“ (I6dcac) umbenannt
  • Viele veraltete APIs im ui-Paket werden gelöscht. (I2f2dc)
  • Das Artefakt „Compose:runtime-Dispatch“ wurde verworfen. MonotonicFrameClock befindet sich jetzt unter Du findest den AndroidUiDispatcher unter „Compose:ui“. (Ib5c36)
  • Outline.*-Klassen sind keine Datenklassen mehr (I4879e, b/178001427).
  • view.captureToImage() ohne Ersatz entfernt. (I7fcd2)
  • Einführung der ColorMatrix API mithilfe von zum Ändern der RGB-Werte des Quellcontents Die ColorFilter API wurde zu einem und die Implementierung von PathEffect. (Ica1e8)
  • Fügen Sie den LayoutDirection-Parameter zu createOutline der Form hinzu. Dies ermöglicht das Erstellen von richtungsabhängigen Formen für das Layout. (I57c20, b/152756983)
  • „onImeActionPerformed“ wurde eingestellt. Verwenden Sie stattdessen KeyboardActions (If0bbd, b/179071523)
  • Der Kontext der Koroutine InfiniteAnimationPolicy wurde eingeführt. -Element, das in unendlichen Animationen angewendet wird. Standardmäßig nein Richtlinie installiert ist, außer beim Ausführen von Tests mit ComposeTestRule. (I50ec4, b/151940543)
  • canDrag wurde aus Modifier.scrollable entfernt. (Id66e7, b/175294473)
  • LayoutCoordinates.parentCoordinates wurde umbenannt in LayoutCoordinates.parentLayoutCoordinates, um ein neues parentCoordinates-Eigenschaft. Die Eigenschaft "parentCoordinates" bietet jetzt die LayoutCoordintes des übergeordneten Modifikators an. Dadurch wird umfassendere Anwendungsfälle für onSizeChanged() und onGloballyPositioned() (Idfbfd, b/177926591)
  • „touchGestenFilter“, „doubleTapUnlockGesteFilter“, „longPress potenziellenFilter“ und „PressIndicaitonTouchFilter“ werden nicht mehr unterstützt. Verwenden Sie stattdessen Modifier.clickable oder Modifier.pointerInput mit der Funktion detectTapGestens. (I6baf9, b/175294473)
  • UnregisterProvider von SaveableStateRegistry wurde entfernt. „RegisterProvider()“ gibt jetzt das Objekt „SaveableStateRegistry.Entry“ zurück, mit dem Sie die Registrierung aufheben können (Ic4274, b/178583739).
  • memorySavedInstanceState() wurde in „memorySaveable()“ umbenannt und in das Paket „androidx.compose.runtime.saveable“ verschoben. (I1366e, b/177338004)
  • CoreText und CoreTextField wurden aus der öffentlichen API entfernt <ph type="x-smartling-placeholder">
      </ph>
    • Veraltete Auswahlcontainer-Überlastung entfernt
    • (I99c19)
  • Tests, bei denen die Funktion „Compose“ in Hierarchien verwendet wird, die direkt zum WindowManager hinzugefügt/entfernt werden, sind jetzt stabiler. (Ie81ed, b/175765614)
  • Recomposer.current() wurde entfernt. [Zusammenfassung]ComposeView jetzt werden nur langsam erstellte, fensterbezogene Recomposers verwendet, die vom ViewTreeLifecycleOwner für das Fenster. Neuzusammensetzung und mitFrameNanos-basierten Animationsmarkierungen werden während des Host-Lebenszyklus wurde beendet. (I38e11)
  • Recomposer.runningRecomposers bietet jetzt einen globalen StateFlow von schreibgeschützten RecomposerInfo zur Beobachtung des aktuellen Kompositionsstatus in zu verstehen. Ziehen Sie diese API Recomposer.current() vor, das jetzt heißt. eingestellt. (If8ebe)
  • Saver, listSaver(), mapSaver(), autoSaver wurde von androidx.compose.runtime.savedinstancestate nach androidx.compose.runtime.saveable (I77fe6) verschoben
  • EditCommands akzeptieren AnnotatedString. Dies ist jedoch und die Textbearbeitung mit mehreren Stilen ist implementiert. (I4c3ea)
  • Verfügbarkeit und Dauer wurden entfernt. (Ib9bf4, b/177420019)
  • CompositionData.asTree() und zugehörige APIs wurden verschoben. um das Modul „ui-tooling-data“ zu trennen und als experimentell zu markieren (Ic95b8).
  • Die Parameter für RounderCornerShape, CutCornerShape und CornerBasedShape wurden von links/rechts in Start/End umbenannt, um die automatische Spiegelung der Form in rtl-Richtung zu unterstützen. AbsoluteRounderCornerShape und AbsoluteCutCornerShape wurden für Fälle eingeführt, in denen die automatische Spiegelung nicht erwünscht ist. (I61040, b/152756983)
  • Die API, auf die das Compiler-Plug-in ausgerichtet ist wurde refaktoriert, sodass nun eine Schnittstelle anstelle einer konkrete Klasse. Außerdem werden auf der Oberfläche Typparameter.

    Dies ist eine interne Änderung, die sich nicht auf die Quelle auswirken sollte Codekompatibilität, ist aber eine funktionsgefährdende Änderung des Binärprogramms. (I3b922, b/169406779)

  • Unbeabsichtigte öffentliche Funktion StringBuilder.deleteAt (Id6ed9) entfernen

Fehlerkorrekturen

  • ComposeViews in Ansichtshierarchien platziert, die untergeordnete Elemente von sind eine andere Komposition hostet jetzt untergeordnete Kompositionen ihrer Vorgänger (I92883).
  • imageFromResource aktualisiert API zur Wiederverwendung des Drawable-Cache der Ressource wenn Sie ImageBitmap-Objekte laden. (If3627, b/178751994)

Version 1.0.0-alpha11

28. Januar 2021

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

API-Änderungen

  • WithConstraints wurde als BoxWithConstraints überarbeitet und zu "foundation.layout" verschoben. (I9420b, b/173387208)
  • Key.DPadUp wurde eingestellt. Verwenden Sie stattdessen „Key.DirectionUp“. (Iab335, b/177954892)
  • ab jetzt intern. (If8e35)
  • Es wurde die API FocusManager.moveFocus() hinzugefügt, um den Fokus programmatisch zu verschieben. (I045cb, b/177681839)
  • Ändert PopupPositionProvider so, dass fensterbezogene Koordinaten und keine globalen Koordinaten verwendet werden. Benennt „parentGlobalBounds“ in „anchorBounds“ um und ändert „windowGlobalBounds“ in „windowSize: IntSize“ (I2994a).
  • „Dauer“ und „Verfügbarkeit“ werden durch „Lange Millisekunden“ ersetzt. Mit diesem Schritt wird die Abhängigkeit der Zeigereingabe von diesen Klassen. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner wurde auf ähnliche Weise hinzugefügt wie die bereits vorhandenen AmbientLifecycleOwner und AmbientViewModelStoreOwner (I9a3e8, b/176756365).
  • Aktualisierte Vektorgrafiken API zur Unterstützung des Analysierens der Tönung auf die Stammebene der Vektorgrafik angewendet. (Id9d53, b/177210509)
  • ToolType wurde zu PointerInputChange zur Unterscheidung von Geräten hinzugefügt (Iac787, b/175142755).
  • AmbientWindowManager wurde in AmbientWindowInfo umbenannt (I2686a, b/177084714, b/177084983).
  • Die globalen Koordinatenmethoden wurden eingestellt und neuen fensterbasierten Koordinaten. (Iee284)
  • Modifier.toolingGraphicsLayer wurde hinzugefügt, der beim Einschalten der Prüfung einen Grafikebenen-Modifikator hinzufügt. (I315df)
  • FocusRequester.createRefs ist jetzt als experimentell gekennzeichnet, da sich dies noch ändern kann. (I2d898, b/177000821)
  • SemanticsPropertyReceiver.hidden wurde in „invisibleToUser“ umbenannt und als „@ExperimentalComposeUiApi“ gekennzeichnet. AccessibilityRangeInfo wurde in ProgressBarRangeInfo umbenannt. stateDescriptionRange wurde in progressBarRangeInfo umbenannt. AccessibilityScrollState wurde in ScrollAxisRange umbenannt. horizontalAccessibilityScrollState wurde in horizontalScrollAxisRange umbenannt. verticalAccessibilityScrollState wurde in verticalScrollAxisRange umbenannt. (ID3148)
  • PointerInputData entfernt und PointerInputChange geändert haben um alle Felder von PointerInputData zu erhalten. PointerInputEvent erstellt und PointerInputEventData intern verwendet werden, da sie in einer beliebigen öffentlichen API. (Ifff97, b/175142755)
  • Aktualisierte GraphicsLayerScope-Implementierung um die Umwandlung von dp in Rohpixel. (Ied528, b/176819695)
  • Die Matrix API wurde so aktualisiert, dass sie der Zeile folgt. Hauptsortierung und Indexkonstanten um Conversions zwischen verschiedenen Matrixdarstellungen passend zum Framework Konvertierungslogik zwischen SkMatrix und Matrix4 intern. (I432e6)
  • Die experimentellen monotonicFrameAnimationClockOf-Methoden wurden entfernt (Ib753f, b/170708374).
  • Verschiebt String.fintPrecedingBreak und String.fingFollowingBreak in InternalTextApi. (I657c4)
  • androidx.compose.ui.util.isSurrogatePair wurde aus der öffentlichen API entfernt. (Ia9494)
  • TransformedText.transformedText wurde in TransformedText.text umbenannt <ph type="x-smartling-placeholder">
      </ph>
    • TransformedText ist keine Datenklasse mehr (Ie672a).
  • data class wurde aus den folgenden Klassen entfernt: <ph type="x-smartling-placeholder">
      </ph>
    • InlineTextContent
    • Gebietsschemaliste (I605c7)
  • Die folgenden Klassen sind keine Datenklassen mehr: <ph type="x-smartling-placeholder">
      </ph>
    • AnnotatedString
    • ParagraphStyle
    • Span-Stil
    • TextStyle
    • Schriftstärke
    • Textdekoration
    • TextGeometricTransform
    • Textindex
    • TextLayoutErgebnis
    • TextLayoutInput (Iaff99)
  • VisualTransformation wurde zu einer funktionalen Schnittstelle geändert (I3bba4)
  • Ein Funktionsreferenzparametertyp wurde hinzugefügt (I5e1bd).
  • Transformierte Grenzen zu InspectorNode (Ice42f) hinzufügen

Fehlerkorrekturen

  • onCommit, onDispose und onActive wurden zugunsten der SideEffect und DisposableEffect APIs eingestellt (If760e)
  • Änderungen an den werkseitigen Funktionen für Schriftart/Schriftfamilie/Schriftart

    • Factory-Funktionen hinzugefügt, die mit einem Großbuchstaben beginnen
    • Eingestellte vorherige Factory-Funktionen mit Kleinbuchstaben erste Buchstaben
    • Neue Factory-Funktionen geben FontFamily statt abgeleitete Klassen
    • Konstruktoren der Unterklassen ausgeblendet, damit sie nur über Factory-Funktionen erstellt werden.
    • Font.asFontFamily wurde in Font.toFontFamily umbenannt (I42aa7).
  • Einführung von ComposeContentTestRule, die ComposeTestRule und definiert setContent, das entfernt wurde aus ComposeTestRule. Factory-Methode createEmptyComposeRule() hinzugefügt das eine ComposeTestRule zurückgibt und keine Aktivität für von dir. Verwende diese Option, wenn du deine Aktivität während des Tests starten möchtest, z.B. mit ActivityScenario.launch (I9d782, b/174472899)

  • "animateAsState" ist jetzt "animateFooAsState", wobei Foo für den Wert Typ der animierten Variablen. z.B. Gleitkommazahl, Dp, Offset usw. (Ie7e25)

  • Der Parameter für die Inhaltsbeschreibung wurde dem Bild und dem Symbol hinzugefügt. Sie wird verwendet, um die Bedienungshilfen zu beschreiben (I2ac4c).

  • Entfernen Sie displaySize, da dies vermieden werden sollte. Normalerweise ist es Es ist besser, zumindest die Größe von onRoot() oder die Fenstergröße zu verwenden. (I62db4)

  • OnSizeChanged meldete die Größe des Layouts Inhalte. Die Größe wird jetzt an ihrer Position im Modifikatorkette. (I36b78, b/177562900)

  • Die emit() API und alle Überlastungen wurden verworfen und in ComposeNode umbenannt. Die APIs sind identisch, nur unter einem anderen Namen, um den Namenskonventionen in „Compose“ (I4137b) zu entsprechen.

  • TextFieldValue akzeptiert AnnotatedString. Dies ist jedoch und die Textbearbeitung mit mehreren Stilen ist implementiert.

    • initial wurde aus den Konstruktorparametern „EditingBuffer“ entfernt. (I326d5)
  • invalid und summaryReference() wurden zugunsten von currentRecomposeScope bzw. memoryCompositionReference verworfen. (I583a8)

  • AnnotatedString wurde geändert, um von kotlin.CharSequence zu erweitern. Daher sind length und subSequence jetzt Instanzfunktionen und Erweiterungsfunktionen entfernt. (Iaf429)

  • SaveObserver ersetzt CompositionLifecycleObserver und CompositionLifecycleObserver wurde verworfen.

    RememberObserver ist ein Ersatz für CompositionLifecycleObserver mit modifizierter Semantik und umbenannten Methoden. Der Wechsel zur neuen API kann mechanisch erfolgen. für Objekte, an die man sich nur einmal erinnert. Das heißt, die empfohlene Vorgehensweise. Wurde jedoch eine Referenz die in einer Komposition mehrfach gespeichert wurden, onRemembered wird aufgerufen für jede Referenz, bei der onEnter nur einmal aufgerufen wird. onEnter mehrfach aufgerufen, wenn das Objekt in Unterzusammensetzungen verwendet wurde, wie WithConstraints und Scaffold, sodass die Single onEnter-Anrufgarantie unzuverlässig und wurde entfernt für RememberObserver.

    RememberObserver fügt onAbandoned hinzu. Dies wird aufgerufen, wenn die Die RememberObserver-Instanz wird von der übergebenen Callback-Funktion zurückgegeben. auf remember gesetzt, wurde aber im Kompositionsstatus nicht gespeichert und wird daher niemals onRemembered aufgerufen. Dies kann tritt auf, wenn die Komposition durch eine Ausnahme beendet wird, bevor sie abgeschlossen ist, oder wird die Komposition verworfen, da der Bundesstaat eine Komposition für nicht mehr aktuell oder anderweitig nicht mehr gültig ist erforderlich. Wenn die Instanz von RememberObserver nach dem einzelnen Empfehlung oben: Tracking einer externen Ressource onForgotten und onAbandoned zeigen jeweils an, Ressource nicht mehr benötigt. Wenn das Objekt die Tracking-Funktion aktiviert, gestartet oder Ressourcen zugewiesen in onRemembered, onAbandoned kann ignoriert werden, da es nicht aufgerufen wird, wenn onRemembered aufgerufen. (I02c36)

  • Verworfene arithmetische Operationen zwischen 2 oder mehr TextUnits. Die veralteten TextUnit.Sp- und TextUnit.Em-Funktionen haben Vorrang vor den Erweiterungsfunktionen wie Int.sp und Int.em. (I48369)

  • Ressourcen in Bibliotheken ohne explizit deklarierte öffentliche Ressourcen (z. B. über public.xml) sind jetzt standardmäßig privat. (Ia1dcc, b/170882230)

  • „ScrollableColumn/Zeile“ wurde eingestellt. Die Verwendung von ScrollableColumn ist im Vergleich zu LazyColumn bei großen scrollbaren Inhalten weniger effizient, da wir mit LazyColumn nur sichtbare Elemente zusammensetzen/messen/zeichnen können. Um zu verhindern, dass Nutzer auf die ineffiziente Weise vorgehen, haben wir uns entschieden, ScrollableColumn und ScrollableRow einzustellen und stattdessen LazyColumn und LazyRow zu verwenden. Nutzer können dennoch entscheiden, dass sie kein Lazy-Verhalten benötigen, und die Modifikatoren direkt wie folgt verwenden: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

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

  • Verwende ImeAction.None anstelle von ImeAction.NoAction.

    • Verwende „ImeAction.Default“ anstelle von „ImeAction.Unspecific“ (Ie1bcc).
  • TestCoroutineDispatcher beim Testen nutzen (I532b6)

  • TextInputService.onStateUpdated wurde in updateState (Id4853) umbenannt.

  • Die auf „TransitionDefinition“ basierende Umstellung wurde eingestellt (I0ac57)

  • TextUnitType.Inherit wird entfernt. Verwenden Sie stattdessen „TextUnitType.Nicht angegeben“. (I9ff64)

Version 1.0.0-alpha10

13. Januar 2021

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

funktionsgefährdende Änderung

  • Umstrukturierung des internen Compilers Die API ermöglicht Batchänderungen an den generierten Knoten als Ergebnis der Zusammensetzung Phase der Komposition, nachdem alle @Composable-Funktionen abgeschlossen wurden.

    Dies ist ein Bruch des Verhaltens die sich auf den Anwendungscode auswirken könnten, sind nicht mehr in den internen und experimentelle APIs, bis nach Änderungen angewendet. Das lässt sich in der Regel umgehen, der Code mit solchen Abhängigkeiten in einer SideEffect zusammensetzbar, um die Ausführung des erst nach dem Erstellen der Knoten und initialisiert. (I018da)

API-Änderungen

  • Modifier.focusOrder() wurde hinzugefügt, um eine benutzerdefinierte Fokusdurchlaufreihenfolge anzugeben (I90cf5, b/175899543, b/170155556, b/170155429).
  • Die eingestellte Funktion „fokusObserver“ wurde entfernt. Verwenden Sie stattdessen „onFocusChanged“ oder „onFocusEvent“ (I3ecb9, b/175156387).
  • Änderungen an der EditOperations API <ph type="x-smartling-placeholder">
      </ph>
    • EditOperation in EditCommand umbenannt
    • Zusätzliches Befehlssuffix für EditOperation-konkrete Implementierungen
    • EditCommands sind keine Datenklassen mehr
    • Die Funktion „EditOperation.process“ wurde in „applyTo“ umbenannt.
    • InputEventListener wurde in InputEventCallback umbenannt
    • (I0a366)
  • Nicht verwendete PxSquared, PxCubed und PxInverse wurden entfernt. "Size.center()" wurde zu einer Eigenschaft geändert. (I973f7)
  • Im ui-test-Modul kann nun die Erstellung Recomposers für zu testende UIs (Ibebd8)
  • Die Geschwindigkeit wurde so geändert, dass sie Bestandteile und mathematische Geschäftsabläufe. (Ib0447)
  • @ExperimentalTesting wurde in @ExperimentalTestApi umbenannt in entspricht ähnlichen Anmerkungen der experimentellen API (Ia4502, b/171464963).
  • Color.useOrElse() wurde in Color.takeOrElse() umbenannt (Ifdcf5)
  • Nicht verwendete Klassen „DpInverse“, „DpSquared“ und „DpCubed“ wurden entfernt. (I4d62b)
  • „Constraints#expectedBy“ wurde in „isSatisfiedBy“ umbenannt. (I9cf5c)
  • Fügen Sie einen Callback hinzu, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (I72fd1)
  • Hinzugefügt ist angegeben, isUnspezifisch, und useOrElse für Inline-Klassen mit einer Konstante "Nicht angegeben". (I93f7b, b/174310811)
  • [Zusammenfassung]ComposeView APIs erweitern, um Recycling zu ermöglichen Kompositionsbasierte Ansichten, deren Komposition zur erneuten Erstellung entsorgt wird . APIs zum Installieren und Erkennen von fensterbezogenen Recomposers hinzufügen und CompositionReferences zum Erstellen untergeordneter Kompositionen.

    ViewCompositionStrategy zum Konfigurieren der Entsorgung von Kompositionen hinzufügen Strategie von [Zusammenfassung]ComposeViews; Standardverhalten ist Dispose auf Fenster lösen. (I860ab)

  • Öffentliche Any.identityHashCode() API (I025d7) entfernt

  • toStringAsFixed entfernt API zugunsten der Verwendung von String.format. stattdessen direkt. (Iaba6b)

  • Ein/Aus-Schaltfläche zur Grundlage Strings.kt hinzufügen (I4a5b7, b/172366489)

  • NativeClass verschoben nach UI-Moduls intern verwendet. Aktualisierte Nutzung von „nativeClass“ in zu verwenden, „is MyClass“ . (I4f734)

  • Modifier.focus() und Modifier.focusRequester() wurden eingestellt. Verwenden Sie stattdessen Modifier.focusModifier() und Modifier.focusReference() . (I75a48, b/175160751, b/175160532, b/175077829)

  • Das Tool „Selectable“.notifySelectableChange wurde eingeführt, um „Selectable“-Updates für „Selectable“ zu benachrichtigen. (I6ff30, b/173215242)

  • Einführung von Outline.bounds Property, um das Begrenzungsrechteck abzurufen für verschiedene Konzepte. (I16e74, b/175093504)

  • Veralteter TestUiDispatcher. Verwenden Sie stattdessen Dispatchers.Main (Ic171f, b/175385255).

  • ImeOptions und KeyboardOptions sind keine Datenklasse mehr (I3c898, b/168684531).

  • Änderungen an der VisualTransformation API

    • „OffsetMap“ wurde in „OffsetMapping“ umbenannt
    • „OffsetMapping.identityOffsetMap“ wurde in „OffsetMapping.Identity“ umbenannt.
    • PasswordTransformation ist keine Datenklasse mehr
    • OffsetMapping wurde in eigene Datei verschoben
    • (I0bdf3)
  • "Position" wurde in "DpOffset" umbenannt und getDistance() entfernt (Ib2dfd).

  • Dp.isFinite() wurde in val Dp.isFinite (I50e00) geändert.

Fehlerkorrekturen

  • Recomposer zeigt jetzt einen Flow des aktuellen Status an, sodass Überwachung der Aktivitäten und der damit verbundenen Auswirkungen. (Ifb2b9)
  • Auf das native "keyEvent" kann jetzt über "keyEvent.nativeKeyEvent" (I87c57, b/173086397) zugegriffen werden.
  • animate() wird jetzt durch animateAsState() ersetzt. wodurch State<T> anstelle von T zurückgegeben wird. Dies ermöglicht eine bessere da der Umfang der Entwertung eingegrenzt werden kann, bis der Wert "State" gelesen wird. (Ib179e)
  • Semantics Role API und Role als Parameter hinzufügen klickbar, auswählbar und ein-/ausschaltbarer SemanticsModifier. Geändert Modifier.progressSemantics, damit der Slider sie auch verwenden kann. (I216cd)
  • Neue koroutinebasierte API Animatable, die die gegenseitige Exklusivität sicherstellt zwischen seinen Animationen.
    • Neue DecayAnimationSpec zur Unterstützung mehrdimensionaler Abklinganimationen
    • (I820f2, b/168014930)

Version 1.0.0-alpha09

16. Dezember 2020

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

API-Änderungen

  • Die Einstellung "KeyEvent.Alt" wurde entfernt. Verwenden Sie stattdessen „KeyEvent.isAltPressed“. (Idd695)
  • Modifier.keyInputFilter und Modifier.previewKeyInputFilter wurden eingestellt. Verwenden Sie stattdessen Modifier.onKeyEvent und Modifier.onPreviewKeyEvent (Idbf1b, b/175156384).
  • „Modifier.focusObserver“ wurde eingestellt. Verwenden Sie stattdessen Modifier.onFocusChanged oder Modifier.onFocusEvent (I30f17, b/168511863, b/168511484).
  • Umbenennung von Eingabe-APIs zum Aussetzen von Zeiger. HandlePointerInputScope to AwaitPointerEventScope and handlePointerInput() zu "awaitPointerEventScope()". (Idf0a1, b/175142755)
  • Die Autofill API ist jetzt eine experimentelle API und erfordert eine Zustimmung (I0a1ec).
  • Destruktive Deklarationen zum Erstellen von FocuSRequester-Instanzen hinzufügen (I35d84, b/174817008)
  • „accessibilityLabel“ wurde in „contentDescription“ umbenannt. accessValue wurde in stateDescription umbenannt. (I250f2)
  • Benutzerdefinierte Ereignisse wurden aus der angehaltenen Pointer Input API entfernt (Ia54d5, b/175142755).
  • Mehrere neue Funktionen in SelectionRegistrar wurden eingeführt und in „onPositionChange“ in „notificationPositionChange“ umbenannt. (Ifbaf7)
  • Weitere Mitglieder von LayoutNode, die als intern gekennzeichnet wurden (I443c6)
  • LayoutInfo wurde zur Verwendung in Tools und Tests eingeführt (I9b190).
  • AndroidOwner intern gemacht (Ibcad0, b/170296980)
  • Anmerkung ExperimentalPointerInput entfernt (Ia7a24)
  • Verschachteltes Scroll-System hinzugefügt. Weitere Informationen finden Sie unter „Modifier.nestedScroll“ (I36e15, b/162408885).
  • subcomposeInto(LayoutNode) intern gemacht (Id724a)
  • Die Benutzeroberfläche von Applier wurde vereinfacht dass Bäume von unten nach oben statt von oben nach unten gebaut werden.

    Die Methode insert() wurde in insertTopDown() umbenannt.

    Die neue Methode insertBottomUp() wurde hinzugefügt.

    Ein Anwender fügt entweder Knoten in den Baum ein, den er bearbeitet. mit insertTopDown() oder insertBottomUp(), je nachdem, und eine bessere Leistung.

    Einige Bäume, z. B. LayoutNode und View, sind viel größer ist die Erstellung von Bottom-up-Ansatz effizienter als von Top-down. Vor dieser Änderung für die Bottom-up-Implementierung erforderlich war, in jeden Anwendungsanbieter kopiert werden, wobei ein Bottom-up-Ansatz erforderlich ist für eine optimale Leistung. Mit dieser Änderung hat ein Applier überschreibt insertBottomUp(), um eine Baumstruktur für Bottom-up- insertTopDown(), um den Baum oben nach unten zu bauen. (Icbdc2)

  • AndroidDialogProperties-Eigenschaften wurden zu den Eigenschaften "schließenOnBackPress" und "schließenOnClickOutside" hinzugefügt. Damit kann konfiguriert werden, wann die Lambda-Funktion „onDismissRequest“ des Dialogfelds aufgerufen wird. (If5e17)

  • PainterResource API hinzugefügt zur Verarbeitung von intransparent geladenen Painter-Objekten aus Raster-Asset-Formaten (z. B. PNGs) oder VectorDrawables. Die Nutzenden haben nicht mehr um den Asset-Typ im Voraus zu ermitteln, Diese Methode kann aufgerufen werden, um ein Painter-Objekt abzurufen. zur Verwendung in zusammensetzbaren Bild- oder Painter-Modifikatoren. (I2c703, b/173818471)

  • Modifier.clearAndSetSemantics wurde hinzugefügt, um den Semantik und legen neue fest. (I277ca)

  • ContentDrawScope wurde in UI-Grafiken verschoben DrawScope-Modul. (Iee043, b/173832789)

  • Einführung der PathEffect Graphics API um die gestrichelten Formen mit verschiedenen Mustern zu versehen. Eingestellte Verwendung von NativePathEffect zugunsten der erwarteten/tatsächlichen Implementierung von PathEffect. (I5e976, b/171072166)

  • IdlingResource-Oberflächen wurden zu Compose als Compose-Datei hinzugefügt unterstützte Variante der inaktiven Ressourcen von Espresso. Sie können registriert werden, und über ComposeTestRule abgemeldet (I433f3)

  • Globale (Aufhebung) der Registrierung von ComposeIdlingResource und entfernt Globale (Nicht-)Registrierung von Uhren in ComposeIdlingResource (I32660)

Fehlerkorrekturen

  • Lambdas in Offset-Modifikatoren geben jetzt IntOffset statt Float zurück. (Ic9ee5, b/174137212, b/174146755)
  • SlotTable, SlotReader und SlotWriter aus der öffentlichen API. Diese wurden markiert als InternalComposeAPI. Jetzt sind sie intern zum Verfassen-Modul.

    CompositionData und CompositionGroup wurden als Ersatz für die UI-Tooling-API zum Extrahieren Informationen zur Zusammensetzung. Diese sind öffentlich, sind für die Verwendung außerhalb der UI-Tooling API gedacht, da sie die von der UI-Tooling API interpretierten Rohinformationen (I31a9c)

  • ShaderBrush wurde auf eine Shader-Instanz langsam erstellen, Größeninformationen der Zeichnung verfügbar ist. Dies ist nützlich, um Gradienten zu definieren, die vollständige Zeichnungsgrenzen einer zusammensetzbaren Funktion einnehmen während der Erstellung, ohne benutzerdefinierte DrawModifier-Implementierungen implementieren.

    Eingestellte APIs für Gradientenfunktionskonstruktoren zugunsten der Fabrikmethoden für ein Gradient-Objekt. (I511fc, b/173066799)

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

  • Verworfene BuildCompat.isAtLeastR (Idb37e)

  • Die Factory-Funktion „buildAnnotatedString“ wurde in der angegebenen Reihenfolge hinzugefügt. um einen AnnotatedString zu erstellen. Verworfener annotatedString Builder-Funktion. (Idfe0b)

  • Entfernte Erweiterungsmethoden auf Float und Double, um Werte bis Bogenmaß. Zu einer privaten Funktion verschoben im PathParser für die Implementierung Dort wurde es auch nur verwendet (I25f52).

Version 1.0.0-alpha08

2. Dezember 2020

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

API-Änderungen

  • Semantikaktion hinzufügen. Schließen (I2b706)
  • DrawModifier-APIs wurden aus der androidx.compose.ui-Paket in den androidx.compose.ui.draw verfügbar. Erstellung der Datei DrawModifierDeprecated.kt in Typaliass/Hilfsmethoden zur Unterstützung bei die Migration von der eingestellten zur aktuellen Version APIs (Id6044, b/173834241)
  • „Modifier.drawLayer“ wurde in „Modifier.graphicsLayer“ umbenannt. Ähnliche Klassen zu GraphicsLayer wurden ebenfalls entsprechend aktualisiert. API-Feedback. (I0bd29, b/173834241)
  • Die neuen Methoden „placeable.placeWithLayer()“ und „placeable.placeRelativeWithLayer()“ wurden hinzugefügt, mit denen benutzerdefinierte Layouts und Layoutmodifikatoren ein untergeordnetes Element mit der Einführung einer Grafikebene für seine Zeichnung platzieren können. So können wir zunächst die Neuzeichnungen optimieren. Wenn wir also ein untergeordnetes Element verschieben müssen, müssen wir seinen Inhalt nicht neu zeichnen. Zweitens können wir Zeichentransformationen auf ein untergeordnetes Element anwenden (Ibd8f6, b/170296989, b/171493718, b/173030831).
  • <T> wurde aus der SubcomposeLayout-Deklaration entfernt. Sie können sie jetzt verwenden, ohne einen Typ anzugeben. (Ib60c8)
  • Modifier.scale/rotate hinzugefügt APIs als praktische Funktionen fürdrawLayer.
    • Modifier.drawOpacity wurde in Modifier.alpha umbenannt
    • Modifier.drawShadow wurde in Modifier.shadow umbenannt (I264ca, b/173208140)
  • Dank der Verfügbarkeit von PointerInputData Positionsfelder können nicht null sein. (ID468a)
  • MaterialTheme legt jetzt die richtigen Farben für Auswahlziehpunkte und den Auswahlhintergrund fest. Nicht-Material-Apps können manuell „AmbientTextSelectionColors“ verwenden, um die für die Auswahl verwendeten Farben anzupassen. (I1e6f4, b/139320372, b/139320907)
  • WindowManager.isWindowFocused wurde hinzugefügt, um zu überprüfen, ob das Host-Fenster im Fokus ist, sowie einen WindowFocusObserver, der einen onWindowFocusChanged-Callback bereitstellt. (I53b2a, b/170932874)
  • TransformOrigin API aktualisiert dass eine destruktive Syntax pivotFractionX und pivotFractionY als component1 und component2 (If43c4, b/173586560)
  • Es wurde eine Lint-Prüfung für die Benennung und Position von zusammensetzbaren Lambda-Parametern hinzugefügt, um die Konsistenz mit den Richtlinien für das Schreiben zu prüfen. Außerdem wurden einige APIs gemäß der Lint-Prüfung und der Anleitung mit children als Namen für das nachgestellte Lambda zu content migriert. (Iec48e)
  • Es wurde eine API hinzugefügt, die überprüft, ob Alt-, Strg-, Meta- oder Umschalttaste-Modifikatortasten bei der Auslösung eines Schlüsselereignisses gedrückt wurden. (I50ed9)
  • Neue Modifier.drawLayer()-Überlastung hinzugefügt. Dabei wird ein Lambda-Block auf einem neuen GraphicsLayerScope -Element verwendet, bei dem Sie die Ebenenparameter so definieren, dass die Neuzusammensetzung und das Neulayout übersprungen werden können, wenn die Statusänderung erfolgt. DrawLayerModifier ist jetzt intern für die Migration seiner Logik in die Methode "placeable.placeWithLayer()" von LayoutModifier (I15e9f, b/173030831).
  • Die eingestellten Ambients mit dem Suffix Ambient wurden gemäß den anderen Richtlinien für Ambients und Compose API durch neue Properties mit dem Präfix „Inaktiv“ ersetzt. (I33440)
  • androidx.compose.ui.text.Typeface verschoben nach androidx.compose.ui.text.font.Typeface (Ic2b81)
  • Das Semantik-Argument „mergeAllDescendants“ wurde in umbenannt FusionNachfolger. (Ib6250)
  • Neuer Standpunkt-Zeiger für Ziehbewegungserkennung Eingabe-API, einschließlich Ausrichtungssperre. (Icef25)
  • VectorAsset wurde in ImageVector umbenannt. VectorAsset wurde in Builder verschoben und umbenannt in eine innere ImageVector-Klasse gemäß API-Richtlinien Typalias von VectorAssetBuilder wurde hinzugefügt zu Link zu ImageVector.Builder für kompatible. (Icfdc8)
  • Umbenennung von ImageAsset und Ähnliche Methoden für ImageBitmap. (Ia2d99)
  • Fügen Sie den Parameter „zIndex“ für „place()“ von PlacementScope hinzu, damit „Modifier.zIndex()“ jetzt als LayoutModifier funktioniert und in jedem benutzerdefinierten Layout zIndexes für die untergeordneten Elemente direkt im Placement-Block festgelegt werden können (I711f7, b/171493718).
  • Fundamentsemantikeigenschaften wurden in die Benutzeroberfläche verschoben (I6f05c)
  • „place(Offset)“ und „placeRelative(Offset)“ verwerfen. Verwenden Sie stattdessen Überlastungen mit Ganzzahl-Offsets (I4c5e7).
  • Zuvor eingestellte APIs wurden entfernt: Modifier.onPositioned wurde entfernt. Verwenden Sie "Modifier.onGloballyPositioned". Modifier.onDraw wurde entfernt. Verwenden Sie "Modifier.onDrawBehind". Modifier.plus wurde entfernt. Verwenden Sie Modifier.then. „Color.Unset“ wurde entfernt. Verwenden Sie „Color.Unspecific“. Die PxBounds-Klasse wurde entfernt. Verwenden Sie stattdessen Rect. (Ie9d02, b/172562222)
  • Die Benutzeroberfläche für die Ausrichtung wurde aktualisiert und funktionsfähig gemacht. (I46a07, b/172311734)
  • Bewegungserkennung für Tipp, Doppeltippen, langes Drücken und Drücken der Anzeige wurde mit dem neuen Haltepunkt hinzugefügt. Eingabe. Außerdem wurden einige Dienstprogramme hinzugefügt, damit Entwickelnde eigene Gestendetektoren entwickeln können. (I00807)
  • id wurde für LayoutIdParentData in layoutId umbenannt. Measurable.id wurde in Measurable.layoutId umbenannt. (Iadbcb, b/172449643)
  • Neuer Multi-Touch-Gestenerkennung, einschließlich Hilfsfunktionen zum Erkennen von Drehung, Zoomen und Schwenken. (IC459d)
  • Einführung von SweepGradientShader und SweepGradientBrush APIs. (Ia22c1)
  • Die Zeitsteuerung in Tests (TestAnimationClock und ihre Nutzung) ist jetzt experimentell (I6ef86, b/171378521)
  • Fügen Sie koroutinebasierte Scroll-APIs hinzu:

    Fügt LazyListState.snapToItem und LazyListState.smoothScrollBy sowie eine untergeordnete Ebene hinzu APIs zur Steuerung des Scrollens Diese APIs bieten eine Schnittstelle zum Anhalten zum Steuern des Scrollens. das erst nach Abschluss des Scrollens wartet, bevor es zurückkehrt. (Beispielsweise 5642)

  • Für „Modifier.focusable“ wurde ein zusätzliches Fundament benötigt. Hiermit können Sie einer Komponente fokussierbares Verhalten mit korrekter Semantik und Barrierefreiheit hinzufügen. (I41eb9, b/152525426, b/162865824)

  • Standardimplementierungen von Methoden und Eigenschaften in AnimationClockTestRule, die an die zugehörige clock (I7ea3d, b/173399709) delegiert werden kann.

  • AndroidComposeTestRule kann jetzt benutzerdefinierte Aktivitäten akzeptieren Launcher (Ib8288, b/153623653, b/154135019)

  • „TextLayoutResult.getLineVisibleEnd“ wurde eingestellt. Als Ersatz hat TextLayoutResult.getLineEnd jetzt den neuen Parameter "visibleEnd". (I73282)

  • Aktualisierte TextFieldValue API

    • TextFieldValue.composition ist schreibgeschützt.
    • Entfernte Ausnahme wegen ungültiger Auswahlbereich (I4a675, b/172239032)
  • Unterstützung von TtsAnnotation für die Sprachausgabe-Engine. (I54cc6)

  • Neue APIs zum Ausführen von Animationen in Koroutinen (Ied662)

Fehlerkorrekturen

  • Der Ausrichtungsparameter von Box wurde in contentAlignment umbenannt. (I2c957)
  • Die „offsetPx“-Modifikatoren wurden in „offset“ umbenannt. Sie verwenden jetzt Lambda-Parameter anstelle von Status. (IC3021, b/173594846)
  • Der Parameter "resetInput" wurde zu TextInputService#onStateUpdated hinzugefügt (I3e8f5, b/172239032, b/171860947).
  • Lint-Prüfung für Modifikatorparameter in zusammensetzbaren Funktionen wurde hinzugefügt. Bei dieser Lint-Prüfung werden Name, Rückgabetyp, Standardwert und Reihenfolge des Parameters auf Konsistenz mit den Richtlinien zum Schreiben geprüft. (If493b)
  • Vorübergehend hinzugefügte Option für TestAnimationClock gesteuert von MonotonicFrameClock (I1403b, b/173402197)
  • Android-Schriftart-Wrapper hinzugefügt. Sie können ein Android-Gerät Schriftart über die Funktion typeface, z.B. typeface(Typeface.DEFAULT). typefaceFromFontFamily() auch in typeface() (I52ab7) umbenannt
  • Es wurde eine Lint-Prüfung hinzugefügt, um zu prüfen, ob die Modifikator-Factory-Funktionen als Erweiterungen in Modifier definiert sind, damit sie fließend miteinander verkettet werden können. (I07981)
  • Entfernen Sie das alte UI-Test-Modul und die zugehörigen Stubs (I3a7cb).
  • Recomposer akzeptiert einen EmbeddingContext nicht mehr. erforderlich Planungsabhängigkeiten werden aus „EffectCoroutineContext“ abgerufen. FrameManager wurde eingestellt. Plattformintegrationen sollten initialisiert werden, eigenen globalen Snapshot-Verarbeitung. (I02369)
  • Übergeben Sie Stilinformationen an den Barrierefreiheitsknoten. (If5e8d)
  • Aus Konsistenz mit anderen Einheiten wurde „TextUnit.Inherit“ in „TextUnit.Nicht angegeben“ umbenannt. (Ifce19)

Compose UI Version 1.0.0-alpha07

11. November 2020

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

API-Änderungen

  • Einführung von ScaleFactor Inline-Klasse zur Darstellung des Maßstabs für die horizontale und vertikale unabhängig voneinander unabhängige Achsen sind, um uneinheitliche Skalierungsanwendungsfälle zu unterstützen.
    • Die Methode computeScaleFactor wurde zu hinzugefügt. Inhaltsskala
    • Durchzuführende ContentScale.FillBounds hinzugefügt ungleichmäßige Skalierung zur Dehnung der Quelle die das Ziel vollständig einnehmen.
    • Operatormethoden zur Berechnung hinzugefügt ScaleFactor-Parameter mit Größenparametern ein.
    • (Ic96a6, b/172291582)
  • Die Faktoren BiasAlignment und BiasAbsoluteAlignment zum Erstellen von Ausrichtungen wurden hinzugefügt. (Iac836, b/169406772)
  • Ermöglichen Sie einem Entwickler, den Fokus klar zu definieren. (I90372)
  • Ein Fehler, der dazu führte, dass für Views in „Compose“ keine Höhenangaben gezeichnet wurden, wurde behoben. (If7782)
  • OnDrawBehind API in ContentDrawScope erstellt um der Namenskonvention mit Modifier.drawBehind zu entsprechen. (I4fc3a, b/171955269)
  • Kamera-Entfernung wird unterstützt zur Ergänzung von 3D-Transformationen RotationX/rotationY in Layer-APIs. (I40213, b/171492100)
  • "SelectionContainer" wurde ohne den Callback hinzugefügt (Ibfadb).
  • Die Annotation ExperimentalSubcomposeLayoutApi wurde entfernt. SubcomposeLayout kann jetzt ohne Hinzufügen von @OptIn (I708ad) verwendet werden.
  • FirstBaseline und LastBaseline wurden in das Paket „androidx.compose.ui.layout“ (Ied2e7) verschoben.
  • Die Deckkraft wurde aus dem DrawShadow()-Modifikator in der ursprünglichen Form entfernt. verwirrend sein. (I82c62, b/171624638)
  • MeasureResult wurde aus MeasureScope verschoben. (Ibf96d, b/171184002)
  • Mehrere Layoutsymbole wurden von androidx.compose.ui nach androidx.compose.layout.ui verschoben. (I0fa98, b/170475424)
  • Veraltetes FocusState2 (I686cb, b/168686446) entfernt
  • ZIndexModifier ist jetzt intern (I1808b, b/171493718)
  • Der Rückgabetyp von LRP wurde aktualisiert für die zurückzugebenden Größenparameter eine Größe ungleich null, um unnötige Boxen. (Ib0044)
  • TestMonotonicFrameClock wurde hinzugefügt, um Code zu testen, der auf MonotonicFrameClock von Compose zum Warten auf Kompositions-Frame-Ereignisse mit „runBlockingTest“ von kotlinx-coroutines-test (I4402f)
  • GesteScope.localToGlobal entfernt (I15299, b/171462785)
  • onAllNodesWithSubstring-Finder hinzugefügt (I81dd7, b/171462889)
  • Das Modul androidx.ui.test wurde eingestellt. Bitte migrieren zu androidx.compose.ui.test und androidx.compose.ui.test.junit4 (I452e8)

Fehlerkorrekturen

  • ErfassungToBitmap wurde zu SnapshotToImage verschoben. (I86385)
  • Foundation.Text wurde eingestellt und durch material.Text ersetzt. Eine einfache, uneindeutige Text-API, die keine Werte aus einem Design verwendet, finden Sie unter androidx.compose.foundation.BasicText. (If64cb)
  • Textfelder aktualisieren, um KeyboardOptions zu akzeptieren (Ida7f3)
  • KeyboardOptions umbenennen in ImeOptions (I82f36)
  • KeyboardType und ImeAction wurden in KeyboardOptions verschoben (I910ce).
  • „deployDefault“ wurde als Alternative zur Bereitstellung von Umgebungswerten hinzugefügt. Damit können Umgebungswerte angegeben werden, die nur festgelegt werden, wenn noch kein Umgebungswert angegeben wurde. (Id6635, b/171024925)
  • „BaseTextField“ wurde eingestellt. Verwenden Sie stattdessen BasicTextField. (I896eb)
  • Modul ui-test-junit4 (Ib91f8) einführen
  • relativePaddingFrom wurde in paddingFrom umbenannt. Der paddingFromBaseline-Modifikator wurde hinzugefügt, um die Abstände von Layoutgrenzen zu Textbasislinien anzugeben. (I0440a, b/170633813)
  • "LaunchedTask" wurde aus Konsistenzgründen in "LaunchedEffect" umbenannt SideEffect und DisposableEffect API LaunchedEffect ohne subject params nicht zulässig sind, um Best Practices zu fördern. (Ifd3d4)
  • Einführung von zusammensetzbaren Ressourcen, die bei Aktualisierung der Konfiguration neu zusammengefügt werden. (I6387c, b/167352819)
  • Recomposer erfordert jetzt bei der Erstellung einen CoroutineContext (Ic4610).
  • zIndex-Werte addieren, wenn mehrere Modifier.zIndex() angewendet wurden. Zuvor hat der erste gewonnen. (IC514c, b/170623936)
  • Änderungen an der internen SlotTable-Implementierung, die sollte sich nicht auf die öffentliche API auswirken. (If9828)
  • Auto-Korrektur IME-Option für Tastatur hinzugefügt (I57b8d)
  • androidx.ui.test wurde nach androidx.compose.ui.test (I9ffdb) verschoben
  • KeyboardOptions.toImeOptions wurden aus der öffentlichen API entfernt. (Ic2e45)

Externer Beitrag

  • Die Veröffentlichung des internen Artefakts „androidx.compose.ui:ui-text-android“ (Ib93fa) wurde deaktiviert

Version 1.0.0-alpha06

28. Oktober 2020

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

API-Änderungen

  • Recomposer ist jetzt eine CompositionReference und eine gültige übergeordnetes Element der Komposition. Expliziter Recomposer ist jetzt an weniger Stellen erforderlich. (I4036f)
  • VectorPainter einstellen in Erinnerung zu einem besseren Vektor gibt an, dass die intern zusammensetzbare API verwendet „remember“. um Daten in verschiedenen Kompositionen. (Ifda43)
  • Modifier.drawWithCache API aktualisiert um ContentDrawScope als Empfängerbereich verfügbar zu machen statt DrawScope verwenden, um Implementierungen die Möglichkeit, Zeichenbefehle verwendet werden. Dies ist nützlich für das Übereinanderlegen Anwendungsfälle für die Färbung, bei denen Contentpixel zuerst gerendert werden, damit die entsprechenden damit der Mischmodus-Algorithmus korrekt angewendet wird. (Ie7ec8)
  • SimpleContainer in PopupTestUtils.kt verschieben (I78c57)
  • ConsumedData ist keine Datenklasse mehr. Weitere Informationen finden Sie unter https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f).
  • Position des Rtl-Ziehpunkts fixieren. (I6e1e0)
  • Refaktoriertes DrawScope und ContentDrawScope als Schnittstellen, statt abstrakter Klassen, <ph type="x-smartling-placeholder">
      </ph>
    • CanvasDrawScope-Implementierung erstellt von DrawScope
    • Refaktorierte Implementierungen von DrawScope, um stattdessen CanvasScope zu verwenden
    • DrawContext wurde zum Zusammenfassen von Abhängigkeiten erstellt für DrawScope
    • Verworfene Methoden in DrawScope entfernt (I56f5e)
  • Wichtige Änderung: Der Rückgabewert wurde aus PointerInputFilter.onPointerEvent(...) entfernt, da der einzige Wert, der in Zeigerereignissen geändert werden sollte, Verbrauchsdaten sind. Anstatt Daten von PointerInputFilter.onPointerEvent(...) zurückzugeben, können Sie jetzt einfach die Verbrauchsdaten der übergebenen PointerEvents ändern. (I6acd0)
  • MeasureScope und IntrinsicMeasureScope wurden als Schnittstellen erstellt. (I1a087, b/170461665)
  • Die Zusammenführungsfunktion für "AlignLine" wurde ausgeblendet. (I9da1a, b/170612900, b/170611568)
  • Zusätzliche Möglichkeit zur Angabe von Inspector-Informationen in einem zusammengesetzten Modifikator (Idee08, b/163494569)
  • Die Option „SelectAll“ wurde dem Auswahlmenü hinzugefügt (Ief02b).
  • DrawTransform.rotate wurde so aktualisiert, dass Standard-Pivot-Parameter von center zum Abgleich in der Dokumentation.
    • DrawScope.rotateRad wurde so aktualisiert, dass ein Offset für die den anderen Transformationsmethoden entsprechen muss.
    • Verworfene DrawScope.rotateRad-Überlastung, die verbraucht wurde Gleitkommazahlen für die x- und y-Koordinaten des Drehpunkts.
    • (Iffcbb, b/170434992)

Fehlerkorrekturen

  • API-Lint-Prüfung für MissingGetterMatchingBuilder ist für Androidx aktiviert (I4bbea, b/138602561).
  • Fügen Sie einen Test hinzu. (I6b8ae)
  • Übergänge in ComposeTestRule aktivieren Option entfernen, um aktivieren Sie den blinkenden Cursor in ComposeTestRule. (If0de3)
  • IME-Option für die Großschreibung der Tastatur wurde hinzugefügt (I8ac38)
  • Einzeilige Tastaturoption für CoreTextField (I72e6d) hinzugefügt
  • SimpleContainer in PopupTestUtils.kt verschieben (I65c3e)
  • Radius API wurde umbenannt in Eckenradius für bessere Ausdrucksweise wie sie in Compose verwendet werden. Aktualisierte Dokumentation, um zu zeigen, dass negative Eckenradien an den auf null setzen. (I130c7, b/168762961)
  • Verbesserte Android-Interoperabilität, indem weiterhin MotionEvents an untergeordnete Android-Ansichten gesendet werden, die für alle Aktionen außer ACTION_DOWN den Wert „false“ zurückgeben (I94c5a, b/170320973)
  • Für Box wurde eine Inline-Funktion erstellt. (Ibce0c, b/155056091)

Externer Beitrag

  • Verschiedene Sprachen für AnnotatedString.capitalize und AnnotatedString.decapitalize unterstützen (I4aa7f)

Version 1.0.0-alpha05

14. Oktober 2020

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

API-Änderungen

  • DSL zum Angeben von Inspector-Informationen hinzufügen (Ic9a22)
  • Langes Drücken in Text verschieben. (Iff2bc)
  • Experimental Modifier.pointerInput zum Sperren des Eingabemodifikators (Ia77d2)
  • Bedienungshilfen zum Kopieren/Einfügen/Ausschneiden hinzugefügt (I6db4f)
  • Öffentlicher Konstruktor für AndroidOwner wurde entfernt (Iacaef).
  • Pop-ups und Dialogfelder übernehmen jetzt FLAG_SECURE vom übergeordneten Fenster. Zusätzliche Option zur expliziten Konfiguration (I64966, b/143778148, b/143778149)
  • Die Verbrauchsdaten können jetzt geändert werden. Ebenfalls Aufrufe von Erweiterungsfunktionen, die Datenverbrauch gibt jetzt keinen neuen PointerInputChange mehr zurück, ändern Sie stattdessen die angegebene PointerInputChange.

    Dies ist der erste Schritt in einem zweistufigen Prozess, PointerEvent-Daten änderbar machen, sodass andere Zeigerdaten können nicht vom Nutzercode bearbeitet werden. Die besteht der zweite Schritt darin, List<PointerInputChange>-Rückgabetyp von PointerInputFilter.onPointerEvent(...). (Id067e)

  • Deaktivierung der Textauswahl und Demo (Ie7e97)

  • Über „onGloballyPositioned“ eine Inline-Funktion erstellt (I15830)

  • OnPositionedModifier wurde in OnGloballyPositionedModifier umbenannt und onPositioned() wird in onGloballyPositioned() umbenannt. (I587e8, b/169083903)

  • Die Eigenschaft hasPendingMeasureOrLayout wurde zum Eigentümer hinzugefügt. Diese gibt an, ob für den Eigentümer noch Layoutänderungen ausstehen. (I3d9f8, b/169038599)

  • API zum programmatischen Entfernen des Fokus hinzugefügt (Ie1dc2, b/161487952)

  • PointerInputFilter.onPointerInput(...) wurde entfernt. Stattdessen sollte PointerInputFilter.onPointerEvent(...) verwendet werden. (I6f04a)

  • Größenänderungen

    • "Size.getFlipped" entfernt
    • Size.rem entfernt
    • Size.truncDiv (Ief44d, b/169790720) entfernt
  • Im Rahmen der Standardisierung von Sentinel-Werten für Inline-Klassen, Benennen Sie Color.Unset in Color.Unspecific um aus Konsistenz mit anderen Inline-Klassen (I97611, b/169797763)

  • TextOverflow.None wird eingeführt. Wenn overflow auf "None" gesetzt ist, kann Text den Überlauf nicht mehr verarbeiten, und er meldet seine tatsächliche Größe an LayoutNode. (I175c9, b/158830170)

  • Der Bereichsparameter in AnnotatedString.Builder.addStringAnnotation wird aus API-Konsistenz in ein Tag umbenannt. (I7c8cb)

Fehlerkorrekturen

  • Die Scrollleistung von LazyColumn/Row wird verbessert, indem bei jedem Scrollen weniger Arbeit an der Unterzusammensetzung ausgeführt wird. Für die Zusammensetzungsklasse wurde die neue has Entwertungs()-Methode hinzugefügt. Die Methode hasPendingChanges() von Recomposer wurde in hasInvalidations() umbenannt (Ib2f32, b/168293643, b/167972292, b/165028371).
  • Aktualisierte Größe.Keine Angabe Float.NaN anstelle von Gleitkommazahl.POSITIVE_INFINITY. Painter-Implementierungen wurden auf auch auf „Size.Nicht angegeben“ prüfen als nicht endliche Größen. (I95a7e)
  • Durch die Reihenfolge der „place()“-Aufrufe in benutzerdefinierten Layouts wird jetzt die Zeichenreihenfolge für die untergeordneten Elemente definiert (Ibc9f6).
  • Unterstützung der Konvertierung von AnnotatedString in SpannableString für bessere Zugänglichkeit. (Ief907)
  • Es wurden Stubs für aktive Android-Klassen hinzugefügt. älteren Plattformen, um Reflexionen nach Möglichkeit zu vermeiden. (Ia1790)
  • Behobener Fehler: Die angezeigte Softwaretastatur verursachte werden die Koordinaten der Zeigereingabe zu falsch. (IC4cec, b/163077821)

Version 1.0.0-alpha04

1. Oktober 2020

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

API-Änderungen

  • OwnerScope wurde hinzugefügt, um die Erfassung von zu ermöglichen. um Beobachtungsbereiche zu zeichnen, ist nicht mehr gültig. (Ic4cf8)
  • OnRemeasuredModifier und onSizeChanged() wurden hinzugefügt zu einen Callback erhalten, wenn das Inhaltslayout erneut gemessen wurde die Größe geändert hat. (I657cf, b/154108792)
  • Semantik für lange Klicks hinzufügen (I6281b, b/156468846)
  • FocusManager wurde auf „Privat“ gesetzt. (I7872f)
  • Implementierung zum Erstellen aktualisiert eine dedizierte DrawCacheModifier-Implementierung statt optional DrawModifier-Eigenschaften hinzuzufügen.

    Aktualisierte Dokumentation für verschiedene Methoden (Ibd166)

  • Erstellen Sie TextRange inline, um das Erstellen von Objekten zu vermeiden. (Id034b)

  • PlacementScope#parentWidth und PlacementScope#parentLayoutDirection können nicht mehr aus dem Placement-Block eines benutzerdefinierten Layouts gelesen werden. (Icc1ae, b/168295623)

  • AccessibilityScrollState wird den Semantikeigenschaften hinzugefügt. (Ifeda9)

  • Einführung von Modifier.drawWithCache das Erstellen eines Zeichenobjekts die Abhängigkeiten bedingt neu erstellt. die von Informationen zur Größe bzw. zum Bundesstaat abhängen (I376dc).

  • Absatzbeschränkungen wurden entfernt. Die Breite wird jetzt direkt an den Absatz übergeben. (Ica712)

Fehlerkorrekturen

  • Aktualisierung vieler Grafik-APIs <ph type="x-smartling-placeholder">
      </ph>
    • Skalierung und Drehung wurden aktualisiert Transformations-APIs verwenden, um eine einzelne Offset-Parameter zur Darstellung des Drehpunkts -Koordinate anstelle einer separaten Gleitkommazahl für die x/y-Koordinaten in DrawScope und DrawTransform
    • Rect.expandToInclude und Rect.join entfernt Methoden
    • Radius-Dokumentation wurde aktualisiert, um „oval“ anzuzeigen neben dem Crosstrainer
    • Es wurde eine Dokumentation hinzugefügt, die angibt, öffentlicher Konstruktor für den Inline-Radius sollte nicht direkt aufgerufen werden, Radiusobjekte sollten über ihre Funktionskonstruktoren
    • Entfernung der RoundRect-APIs für die Abfrage von topRight, „bottomRight“, „bottomCenter“ usw.
    • Rect.shift wurde zugunsten von Rect.translate eingestellt.
    • RoundRect.grow und Rect.shrink APIs entfernt
    • Umbenennung von RoundRect.outerRect in Rect.boundingRect
    • RoundRect.middleRect/tallMiddleRect/wideMiddleRect entfernt und Rect.isStadium
    • „RoundRect.longestSide“ wurde in „RoundRect.maxDimension“ umbenannt
    • „RoundRect.shortestSide“ wurde in „RoundRect.minDimension“ umbenannt
    • RoundRect.center ist jetzt eine Eigenschaft anstelle einer Funktion.
    • Der RoundRect-Konstruktor wurde so aktualisiert, dass Radius-Eigenschaften genutzt werden. statt einzelner Parameter für x-/y-Radiuswerte
    • Größen-APIs, für die davon ausgegangen wird, dass es sich um ein Rectangle mit einer bestimmten Größe handelt, wurden entfernt. Ursprung bei 0,0
    • Zerstörungs-API zu Radius hinzugefügt
    • Migrierte verschiedene RoundRect-Erweiterungsfunktionen Properties stattdessen
    • (I8f5c7, b/168762961)
  • Foundation.Box wurde eingestellt. Verwende stattdessen „foundation.layout.Box“. (Ie5950, b/167680279)
  • Stack wurde in Box umbenannt. Die bisherige Box wird zugunsten der neuen Box in „Compose.foundation.layout“ eingestellt. Das Verhalten des neuen Box besteht darin, untergeordnete Elemente übereinander zu stapeln, wenn sie mehrere untergeordnete Elemente hat. Dies unterscheidet sich vom vorherigen Box, das sich ähnlich wie eine Column verhielt. (I94893, b/167680279)
  • Die Parameter „Box decoration“ wurden eingestellt. Wenn Sie Ihre Box mit Verzierungen/Padding versehen möchten, verwenden Sie stattdessen Modifikatoren (Modifier.background, Modifier.Border, Modifier.padding) (Ibae92, b/167680279).
  • Aktualisierung vieler Grafik-APIs <ph type="x-smartling-placeholder">
      </ph>
    • DrawScope APIs mit einem Bereich aktualisiert Transformationsmethoden, um anzuzeigen, Transformation nur innerhalb der und entfernt werden, nachdem der Callback aufgerufen wurde.
    • Die ClipPath-Dokumentation wurde aktualisiert, sodass sie auf den Pfad verweist. statt mit abgerundetem Rechteck.
    • Fester Abstand in der Dokumentation für den rechten Parameter in ClipPath
    • DrawScope.drawCanvas wurde umbenannt indrawIntoCanvas und Größenparameter entfernt
    • dx/dy-Parameter in inset-Methode umbenannt in horizontal und vertikal
    • Zusätzliche eingefügte Überlastung, Wert in alle 4 Grenzen einfügen
    • Die Dokumentation zur eingefügten Methode, die angibt, wird diese Einfügung auf alle vier Seiten angewendet.
    • Dokumentation für die Rect-Klasse aktualisiert
    • Kommentare zu Rect-Parametern wurden aktualisiert, damit sie mit kdoc übereinstimmen. Stil
    • Rect.join und Rect.expandToInclude wurden entfernt.
    • Überlastung für Rect.translate(offset) und Rect.shift
    • (If086a, b/167737376)
  • Annotierte-Datei „rootAnimationClockFactory“, „transitsEnabled“, blinkingCursorEnabled und textInputServiceFactory mit @VisibleForTesting, machen Sie sie in eine interne API und verbergen Sie ihr kdoc (I554eb, b/168308412).
  • Entfernen Sie SelectionContainer aus dem oberen Bereich, um die Standardauswahl zu deaktivieren und unerwartetes Verhalten zu vermeiden. Speziell kann ein SelectionContainer-Element verwendet werden, um den Inhalt zu kapseln, der stattdessen auswählbar sein muss. (I8dfe0, b/158459594)

Version 1.0.0-alpha03

16. September 2020

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

API-Änderungen

  • Semantikaktionen zum Vor- und Zurückscrollen wurden entfernt. Hinzugefügte Schritte in AccessibilityRangeInfo. (Ia47b0)
  • onInvalidate() wurde aus OwnerOwnedLayer entfernt die Entwertung behandelt. (Ica72b, b/162061312)
  • Operatormethoden für Größe entfernt API, die Offset-Parameter nutzen. Die das Ergebnis dieser Maßnahmen unklar ist, und die Art des Ergebnisses ist unerwartet. für diese. Beispiel: should size - offset return ein Offset- oder Größenergebnis mit dem Unterschied?

    Außerdem wurden eingestellte Methoden aus der Klasse "Size" entfernt. (Iec902, b/166514214)

Fehlerkorrekturen

  • Ein Fehler wurde behoben, durch den LazyColumn-Elemente manchmal falsch gezeichnet wurden. Dies führte auch zu Abstürzen unter bestimmten Bedingungen. (Ibcf17, b/163066980, b/165921895)
  • DpConstraints und APIs, die es verwenden, wurden eingestellt. (I90cdb, b/167389835)
  • createAndroidComposeRule und AndroidInputDispatcher verschoben von androidx.ui.test.android nach androidx.ui.test (Idef08, b/164060572)
  • Die Verwendung der Schwerkraft wurde konsequent zur Ausrichtung oder Ausrichtung in Layout-APIs umbenannt. (I2421a, b/164077038)
  • onNode und andere globale Methoden zu ComposeTestRule hinzugefügt als die aktuellen globalen werden nicht mehr unterstützt. (Ieae36)

Version 1.0.0-alpha02

2. September 2020

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

API-Änderungen

  • Entfernen Sie den Callback, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (If654e, b/166106882)
  • Unterstützung für „filltype“ hinzugefügt Parameter in Vektorgrafikpfaden um Formen entsprechend der oder „non-null“-Pfadfüllregeln. (I43dd2)
  • Verfügbarkeitsdiagnose und Velocity sind jetzt Inline-Klassen (I48f4a).
  • Die Dauer ist jetzt eine Inline-Klasse (I565eb).
  • Fügen Sie einen Callback hinzu, um den Inhaber zu benachrichtigen, wenn sich die layoutnode-Grenzen ändern. (IC40b3)
  • Ein Problem wurde behoben, bei dem Rect-Funktionskonstruktoren aufgetreten sind. mit Offset und Radius erstellen wir das Rechteck im Reihenfolge von links, rechts, oben, unten statt links, oben, rechts, unten.

    Eingestellte Companion-Methoden für Rect entfernt in Funktionskonstruktoren zu bevorzugen.

    Es wurden Tests zur Überprüfung von Methoden in Rect.kt hinzugefügt (I08460, b/165822356).

Fehlerkorrekturen

  • MutableRect hinzugefügt, ein Rechteck, das geändert werden kann. (I71bd2, b/160140398)
  • Matrix4 wurde durch Matrix ersetzt. Alle anderen Teile des vectormath-Pakets wurden entfernt. (Ibd665, b/160140398)
  • Die Aufrufkonvention für zusammensetzbare Funktionen enthält geändert. Dies ist eine funktionsgefährdende Änderung des Binärprogramms. Alle Bibliotheken müssen um mit dieser Version des Compiler-Plug-ins zu arbeiten.

    Diese Änderung führt nicht zu einer funktionsgefährdenden Änderung auf Quellebene, da Nur APIs, die geändert wurden, sind Compiler-APIs mit einer expliziten aktivieren können. (I7afd2, b/158123185)

  • Absturz behoben, der auftreten konnte, wenn kann die Weiterleitung an einen PointerInputFilter dazu führen, den PointerInputFilter, der synchron entfernt werden soll. (I58f25)

Version 1.0.0-alpha01

26. August 2020

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

Version 0.1.0-dev

Version 0.1.0-dev17

19. August 2020

androidx.compose.ui:ui-*:0.1.0-dev17 wurde veröffentlicht. Version 0.1.0-dev17 enthält diese Commits.

API-Änderungen

  • emitView“ wurde eingestellt. Verwenden Sie nach Möglichkeit stattdessen AndroidView, um Ansichten innerhalb von „Compose“ auszugeben. Beachten Sie, dass das direkte Erstellen von Ansichten und ViewGroups in Zukunft nicht mehr unterstützt wird, es sei denn, es handelt sich dabei um Blätter im Erstellungsbaum. Dies ist dann der Fall, wenn dies mit AndroidView möglich ist. (I29b1e, b/163871221)
  • FocusState2 wurde verworfen und durch FocusState ersetzt (Ia8b79, b/160822876, b/160923332).
  • Die veralteten AndroidView-Überlastungen wurden entfernt. (I946b9, b/163802393)
  • Benutzerdefinierte Emissions können jetzt deklarieren, dass einer oder mehrere ihrer Setter unabhängig von der Emit übersprungen und neu zusammengesetzt werden. (Ibbd13)
  • Vektorklassen wurden zu Vektorklassen geändert und sind nun nicht mehr verfügbar. Datenklassen wie dieselbe Objektinstanz für die Komposition verwendet werden.

    mutableStateOf-Flag für VectorPainter hinzugefügt um bedingt neu zu zeichnen, wenn Vektoränderung.

    Überarbeitete VectorComponent-Instanz jetzt Teil von VectorPainter, da es wiederverwendet wird. für alle Kompositionen.

    GroupComponent und PathComponent aktualisiert um ihre Namensfelder änderbar zu machen (Ieae45, b/151378808)

  • onChildPositioned und OnChildPositionedModifier wurden entfernt. Entwickler sollten onPositioned und OnPositionedModifier verwenden stattdessen im untergeordneten Layout. (I4522e, b/162109766)

  • Der Offset ist jetzt eine Inline-Klasse (Iaec70).

  • Ein Modifikatorparameter wurde zu AuswahlContainer hinzugefügt (I4aada, b/161487952).

  • Veraltete FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) entfernt

  • mergePolicy Lambda wurde zu SemanticsPropertyKey hinzugefügt. Dabei kann es sich um Wird zum Definieren einer benutzerdefinierten Richtlinie für die Semantik von „mergeAllDescendants“ verwendet Zusammenführen. Standardmäßig wird der übergeordnete Wert verwendet, falls bereits vorhanden ist, andernfalls den untergeordneten Wert. (Iaf6c4, b/161979921)

  • Einschränkungen sind jetzt Inline-Klasse (I88736)

  • FocusManager wurde hinzugefügt, der eine allgemeine Fokuslogik aus AndroidComposeView verschiebt (I528ef, b/161487952, b/162206799).

  • PointerEventPass-Namen für die Alpha-Version wurden aktualisiert. (Ifda6f)

  • IntOffset ist jetzt eine Inline-Klasse (Iac0bf).

  • IntSize ist jetzt eine Inline-Klasse (I2bf42).

  • PlacementScope.placeAbsolute() wurde in PlacementScope.place() umbenannt und die vorherige PlacementScope.place() wurde in PlacementScope.placeRelative() umbenannt. Daher spiegelt die Methode PlacementScope.place() die Position in Rechts-nach-links-Kontexten nicht mehr automatisch wider. Verwenden Sie stattdessen PlacementScope.placeRelative(). (I873ac, b/162916675)

  • AlertDialog verwendet jetzt FlowRow für Schaltflächen (I00ec1, b/161809319, b/143682374).

  • Einige Test-Dienstprogramme wurden erstellt, weil sie nicht dort sind, gehören. Wird in Zukunft veröffentlicht. (I32ab1)

  • Refaktorierte Organisation der Zeigereingabe Code. (Ie3f45)

  • Eingestellte PxBounds in Rekt. Alle Nutzungen wurden aktualisiert von PxBounds mit Rechteck und addiert ordnungsgemäße Einstellung/Ersetzen durch Vermerken, die bei der Migration. (I37038, b/162627058)

  • Das verworfene KeyEvent2 wurde entfernt. Verwenden Sie stattdessen „KeyEvent“. (Ied2d0, b/162097587)

  • KeyEvent hat ein Unicode-Attribut, mit dem das Unicode-Zeichen abgerufen werden kann, das von der angegebenen Kombination aus Schlüssel und Meta-Schlüsselstatus (If3afc) generiert wurde.

  • Erstellung des benutzerdefinierten Ereignisses DelayUp und verwandten Klassen ein Opt-in-API, wird sich höchstwahrscheinlich ändern. (I56d6f)

  • 2 PointerEventPasses entfernt, die nicht mehr verfügbar sind erforderlich. (I3dd9d)

  • Parameter color, shadow und TextDecoration zu Paragraph.paint hinzufügen. Diese Funktion hilft, die unnötige Neuerstellung von Absätzen zu vermeiden. (I81689)

Fehlerkorrekturen

  • onFocusChanged-Callbacks aus TextField entfernt. Verwenden Sie stattdessen Modifier.focusObserver. (I51089, b/161297615)
  • „Modifier.drawBorder“ wurde eingestellt. Verwenden Sie stattdessen Modifier.Border. Die Border-Datenklasse wurde durch BorderStroke ersetzt (I4257d, b/158160576).
  • Die eingestellten FrameManager-Aufrufe wurden entfernt.

    Interne APIs zum Verfassen wurden geändert, um die Anzahl der zur Verfolgung von Zustandsobjekten wie mutableStateof() (I80ba6)

  • VerticalScroller und HorizontalScroller wurden entfernt. Verwenden Sie stattdessen „ScrollableColumn/Row“. Modifier.drawBackground wurde entfernt. Modifier.background (I73b0d, b/163019183) verwenden

  • Absturz, wenn ein Problem behoben wurde, das den Status in der For-Schleife speichert. Da nun derselbe Schlüssel in savedInstanceState() zulässig ist, ist die API von UiSavedStateRegistry an diese neue Anforderung angepasst (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561).

  • Die zusammensetzbare Funktion state { ... } wurde zugunsten von explizite Aufrufe an remember { mutableStateOf(...) } zur Verdeutlichung. Dadurch wird die API-Oberfläche insgesamt reduziert und die Anzahl der Konzepte für den Status wird reduziert. Verwaltung und entspricht dem Muster by mutableStateOf() für die Klasse Property-Delegierung. (Ia5727)

  • RRect wurde in RoundRect umbenannt. um besser zum Erstellen von Benennungsmustern Ähnliche Funktionskonstruktoren erstellt RRect- und verworfene RRect-Funktion Konstruktoren (I5d325)

Version 0.1.0-dev16

5. August 2020

androidx.compose.ui:ui-*:0.1.0-dev16 wurde veröffentlicht. Version 0.1.0-dev16 enthält diese Commits.

API-Änderungen

  • „OnChildPositioned“ wurde eingestellt. OnPositioned verwenden auf das untergeordnete Element. (I87f95, b/162109766)
  • „setViewContent“ wurde eingestellt. Stattdessen sollte „setContent“ verwendet werden. (I7e497, b/160335130)
  • Die AndroidViewBinding API zum Aufblähen und Zusammenstellen von Layoutressourcen basierend auf ViewBinding wurde hinzugefügt. (I081c6)
  • KeyEvent2 wird durch KeyEvent ersetzt (I2d770, b/162097585).
  • Unterstützung für Alt-Hardwaretaste hinzugefügt (I9036b)
  • FocusManager wurde eingestellt. Verwenden Sie stattdessen Modifier.focus(), Modifier.focusObserver() und Modifier.focusRequester() . (I74ae4, b/162211322)
  • "loadVectorResource" unterstützt "trimmPath"-Attribute (I808fe).
  • Dialogfeld in Benutzeroberfläche verschieben (I47fa6)
  • 2 PointerEventPasses entfernt, die nicht mehr verfügbar sind erforderlich. (I33ca7)
  • Implementierung von PointerInteropModifier, der die Möglichkeit, MotionEvents zu empfangen und mit Compose zu interagieren als Implementierung von Android View. (Ieb08c)
  • Der eingestellte Tag-Modifikator wurde entfernt. Verwenden Sie stattdessen die Layout-ID. (Idaa05, b/162023919)
  • Die APIs für die Unterstützung von Rechts-nach-links wurden aktualisiert. LayoutDirectionAmbient wurde hinzugefügt, um die Layoutrichtung zu lesen und zu ändern. Modifier.rtl und Modifier.ltr wurden entfernt. (I080b3)
  • Das Zuschneiden von Pfaden in Vektorgrafiken wird unterstützt (Ie16c9, b/158188351)
  • Modifier.layout() wurde hinzugefügt, mit dem Sie bequem einen benutzerdefinierten Layoutmodifikator erstellen können (I73b69, b/161355194).
  • Eine neue AndroidView API wurde hinzugefügt und die vorhandenen wurden eingestellt. (I5bcfd)
  • Modifier.plus wurde eingestellt. Verwenden Sie stattdessen "Modifier.then". „Dann“ ein stärkeres Signal für die Reihenfolge hat, während gleichzeitig die Eingabe von Modifier.padding().background() + anotherModifier unterbunden wird, wodurch die Kette unterbrochen wird und schwerer zu lesen ist (Iedd58, b/161529964).
  • [Zusammenfassung]ComposeView-Unterklassen für das Hosten von Compose hinzufügen in einer Ansichtshierarchie. (I46357)
  • Row und Column sind jetzt erheblich Inline-Funktion und reduziert den Aufwand. (I75c10)
  • SubcomposeLayout hinzugefügt. Es handelt sich um ein Low-Level-Primitive, mit dem die untergeordneten Elemente während der Messung zusammengefügt werden können, wenn wir einige Werte verwenden möchten, die erst später während des Messwerts für die Unterstrukturzusammensetzung verfügbar sind. WithConstraints wird beispielsweise nicht mit SubcomposeLayout implementiert. (I25cc8)
  • SemanticsNode.positionInRoot wurde hinzugefügt, um die Position eines SemanticsNode relativ zum Stamm der Compose-Hierarchie (Icdf26, b/161336532)
  • MotionEvents wurden vollständig übergeben von Android bis hin zu Compose und auf Android übertragen. (I14be8, b/158034713)
  • „Drop-down-Pop-up“ wurde entfernt. (I00430)
  • Pop-up-Position in ausgeschnittenen Displays wurde fixiert. (Idd7dd)
  • Bedienungshilfen-Aktion hinzufügen, um TextLayoutResult abzurufen (I9d6e6)
  • RemeasurementModifier wurde hinzugefügt. kann das Layout synchron erneut gemessen werden. Im Allgemeinen benötigen Sie dies nie, da die Neumessung/das Layout automatisch erfolgt. Wir verwenden sie jedoch beim Scrollen in LazyColumnItems. (I5f331, b/160791058)
  • Entfernen Sie getLineEllipsisOffset/getLineEllipsisCount. Verwenden Sie getLineVisibleEnd/getLineEnd/isLineEllipsize. (I85aa2)
  • Füge als Best Practice einige Markierungen/Anmerkungen hinzu. (I66b20)
  • werden in TextLayoutResult weitere Zeilen-APIs angezeigt. (I79bd2)
  • Integrierte Vektorkonverter zur Umwandlung von integrierten Einheiten sind jetzt über Foo.VectorConverter zugänglich. z.B. Dp.VectorConverter, Color.VectorConverter Float.VectorConverter usw. (I3e273)

Fehlerkorrekturen

  • Umfassende API-Fehler beheben (I077bc) <ph type="x-smartling-placeholder">
      </ph>
    1. Nicht verwendete OffsetBase-Schnittstelle entfernen
    2. Richtet die Offset- und IntOffset-Klassen so aus, dass eine einheitliche API-Oberfläche haben,
    3. Benennen Sie IntOffset.Origin in IntOffset.Zero um. für Konsistenz mit der Offset API
    4. Die nativeCanvas-Methode wurde aus Canvas verschoben um Kunden bei der Erstellung eigene Canvas-Instanzen
    5. EmptyCanvas-Stub-Klasse zum Refaktorieren erstellt DrawScope darf kein Null-Parameter sein, lateinit und Sicherstellen, dass das Feld keine Null-Zulässigkeit aufweist
    6. ClipOp-Enums wurden in Pascal Case umbenannt
    7. FilterQuality-Enums wurden in Pascal Case umbenannt
    8. StrokeJoin-Enums wurden in Pascal Case umbenannt
    9. PointMode-Enums wurden in Pascal Case umbenannt
    10. PaintingStyle-Enums wurden in Pascal Case umbenannt
    11. PathFillType-Enums wurden in Pascal Case umbenannt
    12. StrokeCap-Enums wurden in Pascal Case umbenannt
    13. Die DrawCache-Implementierung wurde entfernt Lateinit-Parameter verwenden
    14. DrawScope wurde so aktualisiert, dass die verzögerte Delegierung nicht mehr verwendet wird. für die internen Parameter „fillPaint“ und „strokePaint“
    15. Das zusammensetzbare Bild wurde aktualisiert, um die Verwendung von Box zu vermeiden für weniger Aufwand
    16. Outline-Klasse wurde aktualisiert und enthält jetzt @Unveränderliche Annotationen.
    17. PathNode wurde mit @Unveränderlichen Annotationen aktualisiert für jede Pfadanweisung
    18. Die Vektorunterzusammensetzung wurde aktualisiert, um redundante Elemente zu entfernen. Bedingte Prüfungen auf Gleichheit, da die Schnittstelle „Compose“ bereits verwendet wird sie
    19. Verworfene Konstruktormethoden für Rect-Companions zugunsten von Funktionskonstruktoren
    20. Aktualisierte Brush-Klassen und Funktionskonstruktoren mit @Unveränderliche und @Stable APIs
    21. VertexMode-Enum wurde auf PascalCase aktualisiert
    22. Die DrawScope selectPaint-Methode wurde auf bedingt aktualisiert. Strichparameter für die Farbe überschreiben, geändert
    23. Größe aktualisiert, um destruktive API hinzuzufügen, umbenennen "Nicht spezifiziert" in "Nicht angegeben" geändert und nicht verwendete Methoden entfernt
  • Aktualisierter Verbrauch der Compose BlendMode API um korrekt zwischen den BlendModes des Android-Frameworks und PorterDuff, je nach API-Ebene. Einführung der BlendMode#isSupported API zum Handeln als Funktionsabfrage verwenden, um festzustellen, ob der BlendMode auf dem Gerät unterstützt wird, bevor es verwendet wird. (I0ef42)
  • LazyItemScope wurde für den Parameter „itemContent“ von Lazy-Listen hinzugefügt. Sie bietet Modifikatoren zum Füllen der maximalen Größe des übergeordneten Elements. Dies löst den Anwendungsfall, in dem das Element den Darstellungsbereich ausfüllen soll und die reguläre Modifier.fillMaxSize()-Methode nicht funktioniert, da das Element mit Grenzen für unendlich gemessen wird. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture wurde entfernt. Verwenden Sie Stattdessen SemanticsNodeInteraction.performGesture. (Id9b62)
  • LazyColumnItems wurde in LazyColumnFor umbenannt. LazyRowItems wurde in LazyRowFor umbenannt (I84f84).
  • foundation.shape.corner-Paket wurde auf foundation.share reduziert (I46491, b/161887429)
  • AndroidComposeTestRule wurde in createAndroidComposeRule umbenannt. (I70aaf)
  • TextLayoutResult wurden weitere APIs hinzugefügt. (Id7e04)
  • Material FilledTextField wurde in TextField umbenannt und die grundlegende TextField wurde in BaseTextField umbenannt, damit die einfachste gewünschte API leicht zu finden und zu verwenden ist (Ia6242, b/155482676).
  • "Modifier.drawBackground" wurde in "Modifier.background" umbenannt (I13677).

Version 0.1.0-dev15

22. Juli 2020

androidx.compose.ui:ui-*:0.1.0-dev15 wurde veröffentlicht. Version 0.1.0-dev15 enthält diese Commits.

Abhängigkeiten aktualisieren

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

API-Änderungen

  • FocusModifier wird zugunsten von Modifier.focus, Modifier.focusRequester und Modifier.focusObserver eingestellt. FocusState und FocusdetailState wurden zugunsten von FocusState2 eingestellt (I46919, b/160822875, b/160922136).
  • Ein Modifikator wurde hinzugefügt, um Veränderungen des Fokuszustands zu beobachten. (I05866, b/160924455, b/160923326)
  • Es wurde ein Modifikator hinzugefügt, um Fokusänderungen anzufordern (I8dd73, b/161182057, b/160924778).
  • Verschieben Sie das Symbolleisten-Menü an die gewünschte Position, um die Optionen zum Kopieren, Ausschneiden und Einfügen richtig anzuzeigen. (ID3955)
  • Für Einzelwert-Semantikeigenschaften wird jetzt ein Aufrufstil verwendet. Beispiel: „Semantik {hidden = true}“ wird jetzt geschrieben als: semantics { hidden() } (Ic1afd, b/145951226, b/145955412)
  • Modifier.focus wurde hinzugefügt, der FocusModifier ersetzt. (Ib852a, b/160924778)
  • Fügen Sie FloatingToolbar für die TextField-Auswahl hinzu. (Ie8b07)
  • Es wurde eine experimentelle API-Anmerkung für die API zur Schlüsseleingabe hinzugefügt (I53c0a).
  • Es wurde eine experimentelle API-Anmerkung für alle Focus-bezogenen APIs hinzugefügt (I53b24, b/160903352).
  • FocusState2 wurde hinzugefügt und ersetzt FocusdetailState (I0a3ba, b/160822595).
  • ExperimentalFocus wurde hinzugefügt, eine @OptIn-Anmerkung für die Focus API. (I1544b, b/160820961)
  • Es wurde eine IntBounds-Einheitenklasse hinzugefügt, die Ganzzahl-Pixelgrenzen aus dem Layout darstellt. Die API von PopupPositionProvider wurde für die Verwendung aktualisiert. (I0d8d0, b/159596546)
  • Applier erfordert jetzt eine Clear()-Methode für die Entsorgung Kompositionen (Ibe697)
  • KeyEvent wurde eingestellt und durch KeyEvent2 (I68730) ersetzt
  • Für Test-Finder wurde das optionale Flag „useUnmergedTree“ hinzugefügt. (I2ce48)
  • Experimentelle LayoutNode-API erstellt (I4f2e9)
  • Kopiermethoden für verschiedene Inline-Klassentypen, einschließlich:

    • Offset
    • Größe
    • Radius
    • Bewegung
    • TransformOrigin

    • Eingestellte Methode für das Companion-Objekt "Size.copy" Bevorzugung der Kopiermethode der Instanz (Ife290, b/159905651)

  • Pop-ups, Dialogfelder und Menüs übernehmen jetzt das kontextbezogene MaterialTheme (Ia3665, b/156527485).

  • TextDirection wurde in ResolvedTextDirection umbenannt (I3ff38).

  • Der Layout-Richtungsparameter wurde aus dem Messblock der Layout()-Funktion entfernt. Die Layoutrichtung ist jedoch innerhalb des Callbacks über das Messungsbereichsobjekt verfügbar (Ic7d9d).

  • Auswahlgriffe zur Wiederverwendung refaktorieren. (I420e0)

  • Anklickbar wurde entfernt. Modifier.clickable verwenden (I84bdf)

  • TestTag und Semantik wurden gelöscht. Verwenden Sie stattdessen Modifier.testTag und Modifier.semantics (I15ff0, b/158841414).

  • Vor dieser Änderung hat das Compiler-Plug-in Aufrufe an Konstruktoren innerhalb einer @Composable-Funktion nicht triviale abgefangen, wenn ein (I5205a, b/158123804) vorhanden war.

  • „Modifier.tag“ wurde in „Modifier.layoutId“ umbenannt, um eine Verwechslung mit „Modifier.testTag“ zu vermeiden. (I995f0)

  • Die von Placeable#get(AlignmentLine) zurückgegebenen Int-Positionen der Ausrichtungszeile sind jetzt nicht null. Wenn die abgefragte Ausrichtungszeile fehlt, wird „AlignLine.Unspecific“ zurückgegeben. (I896c5, b/158134875)

  • Der zusammensetzbaren AndroidView-Funktion wurde ein Modifikatorparameter hinzugefügt. (I48a88, b/158746303)

  • Semantics() wurde eingestellt. Verwenden Sie stattdessen Modifier.semantics(). (I72407, b/158841414)

  • Fügen Sie die zusammensetzbare Funktion viewModel() hinzu, um ViewModel ähnlich wie in Activity oder Fragment (I5fdd1) zu erstellen oder bereits vorhandene ViewModel-Modelle zu erstellen.

  • Verwendung von IntPx durch Int.- IntPxPosition ersetzt mit IntOffset. "IntPxSize" wurde durch "IntSize" ersetzt. (Ib7b44)

  • Um die Conversion-Raten Anzahl der Klassen, die für Größeninformationen, standardisieren bei Verwendung der Klasse „Size“ von PxSize. Dies bietet die Vorteile einer Inline-Klasse an, um eine lange um 2 Gleitkommawerte zu packen, als Gleitkommazahlen dargestellt. (IC0191)

  • Um die Conversion-Raten Anzahl der Klassen, die für wie Positionierungsinformationen, bei Verwendung der Offset-Klasse von PxPosition. Dies bietet die Vorteile einer Inline-Klasse an, um eine lange um 2 Gleitkommawerte zu verpacken, die x darstellen und Y-Offsets, dargestellt als Gleitkommazahlen. (I3ad98)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter. Vollständige Px-Klasse gelöscht (I3ff33)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I086f4)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (Id3434)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I97a5a)

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

  • Die standardmäßige No-op-Implementierung von ParentDataModifier#modifyParentData wurde entfernt. Dies entsprach eigentlich der gar keiner Implementierung der Schnittstelle. (I0deaa)

  • Zuvor eingestellte ScaleFit-Version als entfernt. Verwenden Sie stattdessen ContentScale. (Ifbc5b)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I19d02)

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

  • Das verworfene LayoutTag() wurde entfernt. Verwenden Sie stattdessen „Modifier.tag()“. Die eingestellte Funktion „Modifier.matchParent()“ wurde entfernt. Verwenden Sie stattdessen „Modifier.matchParentSize()“. (If8044)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (I57bff)

  • „modifier.semantics“ wurde nicht mehr eingestellt, um die Verwendung von übergeordneten Komponenten zu ermöglichen. (I4cfdc)

  • Konsolidierte CanvasScope-Implementierungen Jetzt gibt es nur DrawScope und ContentDrawScope CanvasScope wurde in DrawScope umbenannt. DrawScope aktualisiert, um Dichte zu implementieren und LayoutDirection Die abgeleitete DrawScope-Klasse in ContentDrawScope wurde gelöscht Painter und PainterModifier wurden aktualisiert kein RTL-Attribut mehr da DrawScope dies bereits ohne sie manuell anzugeben (I1798e).

  • DoubleTapGestenFilter jetzt unterscheidet „SingleTapTouchFilter“. über den Baum. (If92b1)

  • Ausrichtungs-API wurde aktualisiert und Unterstützung für die absolute Ausrichtung hinzugefügt (die im Rtl-Kontext nicht automatisch gespiegelt wird) (I38cd3).

  • Die DrawLayer-Modifikator-API wurde geändert: outlineShape wurde in Form umbenannt, hat den Standardwert für RectangleShape und kann jetzt keine Nullwerte annehmen. "clipToOutline" wurde in "Clip" umbenannt. „clipToBounds“ wurde entfernt, da das Element „clip == true“ mit RectangleShape ist (I7ef11, b/155075735)

  • Höhere Ebene aktualisiert APIs erstellen, die einen Canvas für CanvasScope. Dadurch wird Folgendes entfernt: die Notwendigkeit, dass die Verbraucher eigenen Paint-Objekten erstellen. Für Verbraucher, die benötigen weiterhin Zugriff auf einen Canvas, können sie die Erweiterung „drawCanvas“ verwenden, -Methode, die einen Callback des Problems liefert Zeichenbefehle mit der zugrunde liegenden Canvas (I80afd)

  • Die nachgestellte Lambda API mit Einschränkungen wurde geändert. Jetzt hat es anstelle von zwei Parametern einen Empfängerbereich, der zusätzlich zu den Einschränkungen und „layoutDirection“ die Eigenschaften „minWidth“, „maxWidth“, „minHeight“ und „maxHeight“ in dp bereitstellt (I91b9a, b/149979702).

  • LayoutModifier2 wurde in LayoutModifier umbenannt. (Id29f3)

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

  • Die Funktionen für intrinsische Messungen in Layout und LayoutModifier2 verfügen jetzt über einen IntrinsicMeasureScope-Empfänger, der nun eine intrinsische Abfrage-API mit implizit übernommener Layout-Richtung bereitstellt. (ID9945)

  • Untergeordnete Layout- und LayoutModifier-Elemente können mit einer anderen Layout-Richtung gemessen werden. (Ibd731)

  • Neu wurde Modifier.zIndex() hinzugefügt, um die Zeichenreihenfolge der untergeordneten Elemente innerhalb desselben übergeordneten Layouts zu steuern. Die Höheneigenschaft von DrawLayerModifier wurde in shadowElevation umbenannt und steuert nicht mehr die Zeichenreihenfolge. Die Reihenfolge der Parameter in DrawShadow wurde geändert: Die Höhe ist jetzt die erste und die Form ist die zweite. Die Standardform lautet RectangleShape. (I20150, b/152417501)

  • "onSizeChange" und "onPositionChange" im Inhaber entfernt. (I5c718)

  • Einschränkungen2 hinzugefügt, eine Kopie von unterstützt nur Werte für Int-Beschränkte anstelle von IntPx. IntPx wird entfernt und alle ganzzahligen Einschränkungen Pixel wie Android.

    • Hinzufügung von "IntSize", das IntPxSize irgendwann ersetzen wird. (I4b43a)
  • Die Ausrichtung kann mit beliebigen Werten instanziiert werden. 1D-Ausrichtungen wurden hinzugefügt. (Ia0c05)

  • „alignToSiblings“ akzeptiert jetzt „Measured“ anstelle von „Placeable“. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit wurde in ContentScale umbenannt
    • ContentScale wurde von UI-Graphics auf UI-Core umgestellt muss sich im selben Modul befinden wie das der API erstellen.
    • FillMaxDimension wurde in „Zuschneiden“ umbenannt
    • FillMinDimension wurde umbenannt in Fit
    • Fit wurde zur besseren Übereinstimmung in Inside umbenannt
    • ImageView.ScaleType-Entsprechungen
    • Es wurde eine Dokumentation hinzugefügt, aus der hervorgeht, dass die Kombination zuschneiden und Ausrichtung.Center erzielen dasselbe Ergebnis. wie ImageView.ScaleType.CENTER_CROP und Fit, mit der Option "Align.Center" verwendet wird, ImageView.ScaleType.FIT_CENTER. Die Verwendung von "Innen" mit "Align.Center" erreicht Ergebnis als ImageView.ScaleType.CENTER_INSIDE
  • Rtl-Unterstützung für Zeichenmodifikatoren. (I0aaf9)

  • Veröffentlichung einer API zum Aufblähen von Android Views aus XML. Weitere Informationen finden Sie in der ViewInCompose-Demo. (I42916)

  • DrawModifier API verbessern:

    • Der Empfängerumfang für „draw() ContentDrawScope“ wurde erstellt.
    • Alle Parameter fürdraw() wurden entfernt.
    • DrawScope hat dieselbe Oberfläche wie der frühere CanvasScope.
    • ContentDrawScope verfügt über die Methode „drawContent()“ (Ibaced, b/152919067).
  • PositionInParent und boundsInParent für LayoutCoordinates wurden hinzugefügt. (Icacdd, b/152735784)

  • „DawLayerModifier“ und „drawLayer()“ sind jetzt standardmäßig „clipToBounds“. und „clipToOutline“ auf „false“. (I0eb8b, b/152810850)

  • LayoutResult wurde in MeasureResult umbenannt. (Id8c68)

  • LayoutModifier2 wurde hinzugefügt, ein neues API zum Definieren von Layoutmodifikatoren. eingestellter LayoutModifier (If32ac)

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

  • Unterstützung für TranslationX/Y-Properties hinzugefügt der Anzeigeliste der Zeichenbefehle für einem bestimmten Layer. Dies ist nützlich, um Inhalte als Reaktion auf Animationen oder Touch-Ereignisse. (I8641c)

  • Die Parameter pivotX und pivotY wurden hinzugefügt. zu Layer APIs, um Rotation und Skalierung zu unterstützen um einen bestimmten Punkt auf einer Ebene (Icf7c3)

  • OnPositionedModifier und OnChildPositionedModifier hinzufügen um die zusammensetzbare Funktion „OnPositioned“ und „OnChildPositioned“ Funktionen. (I2ec8f)

  • Wir haben LayerModifier hinzugefügt, einen Modifikator, der Ein RenderNode für ein Layout wird hinzugefügt. Sie können damit Beschnitt, Deckkraft, Drehung, Skalierung und Schatten. Dadurch wird RepaintBoundary ersetzt. (I7100d, b/150774014)

  • Die Layoutrichtung wird vom übergeordneten Layoutknoten auf die untergeordneten Elemente übertragen. Modifikator für Layoutrichtung wurde hinzugefügt. (I3d955)

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

  • Erste Unterstützung für Rtl im Compose-Layout (Ia5519)

  • Density und DensityScope wurden in einer Schnittstelle zusammengeführt. Anstelle von „AmbientDensity()“ können Sie jetzt „DensityAmbient.current“ verwenden. Anstelle von mitDensity(density) nur mit(density) (I11cb1)

  • LayoutCoordinates geändert, um providedAlignmentLines zu erstellen ein Set anstelle einer Karte und haben LayoutCoordinates die Implementierung des get() verwenden, um einen Wert abzurufen. Dadurch wird es einfacher, für Modifikatoren, um einen oder mehrere Werte des Datasets ohne und erstellen für jeden Modifikator eine neue Sammlung. (I0245a)

  • LayoutCoordinates verfügt nicht mehr über eine Positionseigenschaft. Die ist bei der Berücksichtigung von LayoutModifiers, Rotation oder Skalierung. Stattdessen sollten Entwickler „parentCoordinates“ verwenden undchildToLocal(), um die Transformation aus einem LayoutCoordinate an ein anderes gesendet.

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

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

  • Es wurde eine CanvasScope API erstellt, die eine Canvas-Objekt zur Bereitstellung eines zustandslosen, deklarativen der Zeichen-API-Oberfläche. Transformationen sind enthalten vom eigenen Empfängerumfang und den Größeninformationen wird auch den entsprechenden Einsatzgrenzen zugeordnet. Es ist für den Nutzer nicht erforderlich, seinen eigenen Paint-Status beizubehalten. zum Konfigurieren von Zeichenvorgängen.

    • CanvasScopeSample sowie hat die Demo-App aktualisiert, sodass sie eine deklarative Grafik Demo (Ifd86d)
  • Nicht verwendete MaskFilter API entfernt da sie nur eingeschränkt genutzt und nicht optimiert sind. für Hardwarebeschleunigung in den meisten Anwendungsfällen (I54f76)

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

  • Alle Farbverwendungen, für die Nullwerte zulässig sind, in der API ersetzt durch keine Nullwerte zulässig und "Color.Unset" anstelle von "null" verwenden (Iabaa7)

  • Zusätzliches optionales Rechteck einfügen -Parameter zu ImagePainter, damit dieser Zeichnen eines Unterabschnitts des zugrunde liegenden Bild-Assets (I0ea9e)

  • "Farbe festlegen" wurde hinzugefügt, um einen nicht festgelegten Wert ohne Boxen Farben. (If901a)

  • Canvas.rotate und Canvas.scale-Erweiterungsmethoden, optionale Pivot-Koordinaten Transformationen. Diese Standardeinstellungen oben links im aktuelle Canvas-Übersetzung.

    Außerdem ist Canvas.rotateRad jetzt eine Erweiterungsmethode für Konsistenz (Ibaca6)

  • Erstellung einer PixelMap-API zur Unterstützung Abfragen von Pixelinformationen aus einem ImageAsset (I69ad6)

  • Umbenannt inFrameworkRect/toFrameworkRectF in toAndroidRect/toAndroidRectF entsprechend der Namenskonvention für Objektkonvertierungen zwischen Compose und Android Framework-APIs, auf denen sie basieren. Ebenfalls aktualisiert Dokumente zu diesen APIs (I86337)

  • VectorPainter API wurde hinzugefügt zu vorhandene Subcomposition API ersetzen für Vektorgrafiken zu erstellen. Ergebnis der Unterzusammensetzung ist ein VectorPainter-Objekt anstelle eines DrawModifier. Vorheriges DrawVector verworfen zusammensetzbaren Funktionen zugunsten von VectorPainter verwenden.

    Die Image(Painter) API wurde in PaintBox(Painter) umbenannt Eine mit Vektor zusammensetzbare Funktion, die sich wie die Bild zusammensetzbar, außer mit einem VectorAsset eines Image-Assets (I9af9a, b/149030271)

  • Umbenennung von Bild in ImageAsset, um den Unterschied zwischen den Bilddaten und der zukünftigen zusammensetzbaren Funktion für das Layout und die Zeichnungen besser zu unterscheiden _Body:Erweiterungsmethode auf android.graphics.Bitmap erstellt Bitmap.asImageAsset(), zum Erstellen einer Instanz eines Nützliches ImageAsset für die Kombination herkömmlicher Android- Anwendungsentwicklung mit dem Framework „Compose“ (Id5bbd)

  • TextDirection.Content wurde hinzugefügt (I48f36)

  • Der Operator TextDecoration.plus (I0ad1a) wurde hinzugefügt.

  • Force wird aus den Aufzählungswerten von TextDirectionAlgorithm (Icc944) entfernt

  • TextDirectionAlgorithm wurde in TextDirection (I75ce8) umbenannt

  • Implementiert „LongPressAndDrag“ für die Textfeldauswahl. (I17919)

  • AnnotatedString.getStringAnnotations hinzugefügt, die alle Annotationen innerhalb des Bereichs zurückgibt. (I1fa00)

  • Der Paketname für Locale und LocaleList wurde geändert von androidx.ui.text zu androidx.ui.intl (I8132c)

  • Der Cursor von TextField blinkt (Id10a7).

  • API-Änderung: AnnotatedString(builder: Builder) wurde in annotatedString(builder: Builder) umbenannt. (Ia6377)

  • API-Änderung: AnnotatedString.Item wurde in AnnotatedString.Range umbenannt. (I2d44d)

  • Benennen Sie AnnotatedString.Builder.addAnnotationString in addStringAnnotation um. (I5059e)

  • Softwaretastatur lässt sich jetzt mit SoftwareKeyboardController, bereitgestellt von onTextInputStarted Callback (I8dc44, b/151860051)

  • Plus-Operator für (Text/Paragraph/Span)Style hinzugefügt, der delegiert sie an die Funktion „merge()“. (Ia1add)

  • FontWeight.lerp rastet nicht mehr ein. Es ist immer noch eine Datenklasse. (I521c2)

  • Der FontWeight-Konstruktor ist jetzt öffentlich, er ist keine Datenklasse mehr. (Id6b1f)

  • Fügen Sie getLineStart, getLineEnd, getEllipsisOffset und getEllipsisCount zu TextLayoutResult (Ibc801) hinzu.

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

  • Nicht verwendete Klasse „Size“ entfernt da es eine doppelte Size-Klasse gibt, im UI-Geometrie-Modul, das konsumiert wird. (I1b602)

  • AdapterList, eine scrollbare Listenkomponente, die nur und erstellt die sichtbaren Elemente. Derzeit bekannte Probleme dass sie nur vertikal sind und nicht alle Fälle von Änderungen an seinen untergeordneten Elementen. (Ib351b)

  • Abstände, Rahmen, Form und Hintergrundparameter zu Box hinzufügen (I05027, b/148147281)

Fehlerkorrekturen

  • "onFocusChange"-Callback in Textfeldern wurde in "onFocusChanged" umbenannt (Ida4a1).
  • VerticalScroller und HoriziontalScroller wurden eingestellt. Verwenden Sie „ScrollableColumn“ und „ScrollableRow“, um das Spalten-/Zeilenverhalten und die Parameter zu integrieren, oder verwenden Sie „Modifier.verticalScroll“ und „Modifier.horizontalScroll“ für Ihr eigenes Element. ScrollerPosition wurde zugunsten von ScrollState eingestellt. (I400ce, b/157225838, b/149460415, b/154105299)
  • runOnIdleCompose umbenannt in runOnIdle (I83607)
  • Mehrere Test-APIs wurden umbenannt, um die Intuitivität zu verbessern. Alle Die APIs „findXYZ“ wurden in „onNodeXYZ“ umbenannt. Alle doXYZ APIs wurden umbenannt in PerformXYZ. (I7f164)
  • Die Benutzeroberfläche zum Erstellen kann jetzt in ViewGroups erstellt werden, ohne dass eine neue Komposition erforderlich ist. Ein Beispiel finden Sie unter ViewInteropDemo. (I9ab0b, b/160455080)
  • "sortWith" und "removeRange" wurden zu MutableVector hinzugefügt (Icccf7).
  • Implementieren Sie Ziehpunkte zum Ziehen, um die Auswahl für das Textfeld zu ändern. (I27032)
  • Shader-Inline-Klasse entfernt, die die NativeShader-Erwartungsklasse umschlossen NativeShader wurde in Shader umbenannt. Die umschlossene Shader-Inline-Klasse keine wertvollen Informationen zur API-Oberfläche hinzufügen. und war eine Inline-Klasse. Verwenden Sie daher den NativeShader . (I25e4d)
  • Refaktorierter PainterModifier dass wir keine Skalierung mehr auf Basis der Daten die gegebenen Einschränkungen und „ContentScale“ . Painter-Implementierungen ihre Zeichnungsinhalte auf Basis der gegebenen Größe den DrawScope, in den sie einzeichnen.

    Ein Problem wurde behoben, durch das der Cache von VectorPainter Bitmap wurde an ihre Standardgröße angepasst statt der vorgegebenen Größe.

    ImagePainter wurde aktualisiert, um seine Größe zu skalieren statt PainterModifier zu verwenden, dies für ihn zu tun. (I6ba90)

  • Übergeordnete withFrameNanos-Funktion für das Animations-Timing hinzufügen (Ie34c5)

  • Die Anmerkung „@Untracked“ wurde eingestellt. Durch @ComposableContract(tracked=false) ersetzen (Id211e)

  • androidx.ui.foundation.TextFieldValue und „androidx.ui.input.EditorValue“ wurde eingestellt. „TextField“, Zusammensetzbare Funktionen von FilledTextField und CoreTextField, bei denen wird dieser Typ ebenfalls nicht mehr unterstützt. Bitte verwenden Sie Stattdessen androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • Ein Problem wurde behoben, bei dem die Zeigereingabe einen Absturz verursachen würde, PointerInputFilters wurden über entfernt. Unterzusammensetzung beim Entfernen. Dieser Fehler wurde jetzt behoben. (I1f48b, b/157998762)

  • Ein Problem wurde behoben, durch das bei der Weiterleitung von Zeigereingabe verursacht einen Absturz, wenn PointerInputFilters über Unterzusammensetzung beim Entfernen. Dieser Fehler wurde jetzt behoben. (Iab398, b/157998762)

  • Refaktorierte Radiusklasse zu Inline-Klasse. Companion-Erstellung entfernt zugunsten des Funktionskonstruktors mit Standardparameter für den Umkreis der Y-Achse mit denen der obligatorischen x-axis radius.

    DrawScope.drawRoundRect für die Datenaufnahme aktualisiert nur einen Radius-Parameter statt zwei separater Gleitkommawerte für den Radius entlang von x und y Achse (I46d1b)

  • Die zusammensetzbare Funktion „Neu zusammensetzen“ ist keine nützliche Abstraktion mehr. Die Neuzusammensetzung sollte in der Regel als Ergebnis von MutableState-Zuweisungen erfolgen. Für alle anderen Bereiche wird empfohlen, die invalidate-Funktion zu verwenden, um eine Neuzusammensetzung des aktuellen Bereichs auszulösen. (Ifc992)

  • Verwendung der Px-Klasse in verschiedenen Erstellen von Klassen als Teil des großen Refaktorierungsaufwand, nur auf Dp zurückzugreifen und primitive Typen für Pixelparameter (Iede0b)

  • Ändert die Strategie zur Codegenerierung des Compose-Compilers. Vor der Änderung hat der Compiler Aufrufe in zusammensetzbare Funktionen transformiert. Mit dieser Änderung transformieren wir jetzt den Text einer zusammensetzbaren Funktion und lassen die Aufrufsite (meistens) unverändert.

    Das bedeutet, dass die meiste Logik der Kommunikation mit der Compose-Laufzeit am Anfang des Funktionstexts und nicht auf der Aufrufseite stattfindet.

    Die Änderung sollte mit der Quelle kompatibel sein, wenn Sie den Editor verwenden. Die meisten Nutzer des Editors sollten aufgrund dieser Änderung keinen Code aktualisieren müssen.

    Um diese Arbeit zu unterstützen, wurde die JVM-Signatur aller zusammensetzbaren Funktionen geändert. Eine zusammensetzbare Funktion, die einen einzelnen Parameter akzeptiert, wird in eine Funktion umgewandelt, die drei Parameter akzeptiert. Die zusätzlichen Parameter sind der Composer, eine „Schlüssel“-Ganzzahl. Eine Bitmasken-Ganzzahl, die zur Weitergabe von Metadaten durch Aufrufe verwendet wird.

    „Compose“ wandelt jetzt auch Standardargumente in eine zusammensetzbare Funktion um. Dies geschieht, ohne eine zusätzliche synthetische Standardüberlastung der Funktion selbst einzuführen, sodass diese Änderung dazu führt, dass weniger Funktionen definiert werden.

    Bekannte beabsichtigte Verhaltensänderungen, die sich daraus ergeben:

    1. Einige Anrufe werden an der Stelle übersprungen, an der sie vorher nicht gekommen wären
    2. Zusammensetzbare Ausdrücke in Standardargumentausdrücken werden jetzt korrekt abonniert und verarbeitet

    Im Rahmen dieser Arbeit wurden einige Optimierungen vorgenommen: 1. Das Ergebnis von Vergleichen von Parametern wird über die Aufrufgrafik an andere zusammensetzbare Funktionen weitergegeben. Dies führt zu weniger Vergleichen während der Laufzeit, verringert die Größe der Slottabelle und es werden häufiger zusammensetzbare Funktionen übersprungen, die zuvor nicht übersprungen wurden. 2. Parameter, die zum Zeitpunkt der Kompilierung als „statisch“ eingestuft werden, werden nicht mehr in der Laufzeit verglichen oder gespeichert. Dies reduziert die Anzahl der Vergleiche und verringert die Größe der Slot-Tabelle. 3. Die Ablaufstruktur des Funktionskörpers wird verwendet, um die Anzahl der generierten Gruppen zu minimieren. Dadurch wird die Größe der Slottabelle verringert und die Laufzeit reduziert 4. Nicht verwendete Weiterleitungs- und Empfängerparameter für Funktionen werden bei der Bestimmung der Überspringbarkeit der Funktion nicht berücksichtigt, wenn sie nicht innerhalb des Hauptteils der Funktion verwendet werden.

    Die meisten funktionsgefährdenden Änderungen betreffen APIs, auf die der Compiler direkt abzielt. Die typische Verwendung des Editors ist davon nicht betroffen: 1. Composer::startExpr wurde entfernt. 2. Composer::endExpr wurde entfernt. 3. Composer::call wurde eingestellt 4. Die Nicht-varargs-Überlasten von key wurden entfernt. Verwende ab sofort die vararg-Version. 5. Die Pivotal-Anmerkung wurde eingestellt. Du kannst key als Ersatz verwenden. 6. ScopeUpdateScope::updateScope wurde geändert und erwartet nun eine Function3-Funktion anstelle von Function1. 7. neustartableFunction und erneutstartableFunctionN wurden aktualisiert, um zusätzliche Kompilierungszeitparameter aufzunehmen. (I60756, b/143464846)

  • Die eingestellten LayoutAlign-Modifikatoren wurden entfernt. (I10877)

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

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

  • Ersetzen von ButtonStyle durch eigene Funktionen und entfernte Textüberlastung (Zeichenfolge). Informationen zur Nutzung finden Sie in den aktualisierten Beispielen. (If63ab, b/146478620, b/146482131)

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

  • Das Verhalten der Standardeinstellung „TextDirection“ wurde geändert. nach LayoutDirection. d.h., wenn LayoutDirection RTL ist, Standard Bei „TextDirection“ wird RTL verwendet. Zuvor war sie TextDirection.ContentOrLtr/Rtl (I4e803)

  • Fehlerkorrektur: Wenn Schriftstärke und -stil in einem AnnotatedString verschachtelt sind, wird der Text nicht richtig gerendert. (I77a9d)

  • Fügt häufig verwendete Parameter zu Text() hinzu. Wenn Sie derzeit einen lokalen Textstil erstellen, um eine kleine Anzahl dieser Parameter zu übergeben, z. B. Text(style = TextStyle(textAlign = TextAlign.Center)), können Sie die Parameter jetzt einfach direkt angeben: Text(textAlign = TextAlign.Center) (I82768).

  • Das Modul „ui-android-text“ wurde in „ui-text-android“ (I68cbe) umbenannt