UI di scrittura

I componenti fondamentali dell'interfaccia utente di scrittura erano necessari per interagire con il dispositivo, tra cui layout, disegno e input.
Aggiornamento più recente Release stabile Candidato per l'uscita Versione beta Release alpha
4 settembre 2024 1.7.0 - - 1.8.0-alpha01

Struttura

Compose è una combinazione di 7 ID gruppo Maven all'interno di androidx. Ogni gruppo contiene un sottoinsieme di funzionalità target, ciascuna con il proprio insieme di funzionalità note.

Questa tabella illustra i gruppi e i link a ciascun insieme di note di rilascio.

GruppoDescrizione
compose.animationCrea animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente.
compose.compilerTrasforma le funzioni @Composable e abilita le ottimizzazioni con un plug-in del compilatore Kotlin.
compose.foundationScrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estende le basi per creare i tuoi componenti di sistema di progettazione.
compose.materialCrea UI di Jetpack Compose con componenti Material Design pronti per l'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io.
compose.material3Crea UI di Jetpack Compose con Material Design 3 Components, la prossima evoluzione di Material Design. Material 3 include temi e componenti aggiornati, nonché funzionalità di personalizzazione di Material You, come il colore dinamico, ed è progettato per essere coerente con il nuovo stile visivo e la nuova UI di sistema di Android 12.
compose.runtimeComponenti di base di base del modello di programmazione e della gestione dello stato di Compose, nonché del runtime principale per il targeting del plug-in Compose Compiler.
compose.uiI componenti fondamentali dell'interfaccia utente di scrittura erano necessari per interagire con il dispositivo, tra cui layout, disegno e input.

Dichiarazione delle dipendenze

Per aggiungere una dipendenza su Compose, devi aggiungere il Repository Maven di Google al tuo progetto. Consulta il Repository Maven di Google per ulteriori informazioni.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

Alla moda

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"
    }
}

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.

Crea un nuovo numero

Consulta la documentazione di Issue Tracker per ulteriori informazioni.

Versione 1.8

Versione 1.8.0-alpha01

4 settembre 2024

Viene rilasciato androidx.compose.ui:ui-*:1.8.0-alpha01. La versione 1.8.0-alpha01 contiene questi commit.

Versione 1.7

Versione 1.7.0

4 settembre 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0.

Modifiche importanti dalla versione 1.6.0

Le modifiche importanti della versione 1.7.0 sono descritte in questo post del blog.

Versione 1.7.0-rc01

21 agosto 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-rc01. La versione 1.7.0-rc01 contiene questi commit.

Cambiamenti rilevanti

  • Il modulo ui:ui ora forza il requisito di una versione minima di Foundation:foundation almeno 1.7.0-rc01 o successiva. Questo viene applicato per rimediare a un'incompatibilità di comportamento tra UI e base in relazione alle modifiche di NestedScrollSource che si sono verificate nelle prime fasi della versione 1.7.0-alpha01.

Versione 1.7.0-beta07

7 agosto 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta07. La versione 1.7.0-beta07 contiene questi commit.

Correzioni di bug

  • Le funzioni SemanticsNodeInteraction performTextReplacement, performTextInput e performTextClearance relative all'input di testo ora genereranno errori di asserzione quando vengono chiamate in sola lettura TextFields. (I4ae8f).

Versione 1.7.0-beta06

24 luglio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta06. La versione 1.7.0-beta06 contiene questi commit.

Versione 1.7.0-beta05

10 luglio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta05. La versione 1.7.0-beta05 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug per cui, se cambiava la tastiera software, TextField non accettava input dalla nuova tastiera finché lo stato attivo non viene perso e recuperato.
  • È stato risolto un problema per cui i tentativi di rendere persistenti i contenuti dei livelli causavano effetti collaterali indesiderati durante il rendering con contenuti SurfaceView.

Versione 1.7.0-beta04

26 giugno 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta04. La versione 1.7.0-beta04 contiene questi commit.

Correzioni di bug

  • Evita gli arresti anomali quando misuri righe di testo molto grandi (ad es.10. 000 caratteri) (8157ab)
  • Disattiva il supporto del rendering software per l'API GraphicsLayer. (35 ggd8)
  • Correzione di un arresto anomalo nella logica di persistenza del livello. (70b13e)
  • Il riutilizzo dell'ottimizzazione degli oggetti livello è stato ripristinato perché causava problemi di rendering. (70b13e)

Versione 1.7.0-beta03

12 giugno 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta03. La versione 1.7.0-beta03 contiene questi commit.

Versione 1.7.0-beta02

29 maggio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta02. La versione 1.7.0-beta02 contiene questi commit.

Modifiche alle API

  • SemanticsProperties.Editable è stato rinominato in IsEditable e cambia SemanticsPropertyReceiver.editable in un val isEditable. Ora la proprietà è un valore booleano ed è sempre specificata da campi di testo. (I8acd8)
  • Rinomina il parametro di benchmark di accessibilità. (I3d440)
  • API aggiornata per la definizione degli stili dei link: TextLinkStyles ora fa parte del costruttore LinkAnnotation e del metodo AnnotatedString.fromHtml (I90b2b). È stato rimosso anche TextDefaults dal materiale (I5477b)

Correzioni di bug

  • Il nome LayoutCoordinates.introducesFrameOfReference è stato rinominato in LayoutCoordinates.introducesMotionFrameOfReference per rispecchiare meglio il suo scopo. Funzione correlata rinominata per calcolare le coordinate in base al flag. (I3a330)

Versione 1.7.0-beta01

14 maggio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-beta01. La versione 1.7.0-beta01 contiene questi commit.

Modifiche alle API

  • performCustomAccessibilityActionLabelled è stato rinominato in performCustomAccessibilityActionWithLabel e performCustomAccessibilityActionWhere in performCustomAccessibilityActionWithLabelMatching. (I5387f)
  • AnnotatedString.hasEqualsAnnotations ora è hasEqualAnnotations (I685c0)
  • È stata aggiornata l'API per ricevere link con temi Material nel testo. In particolare, sono stati rimossi i metodi da TextDefaults per la creazione di LinkAnnotations a tema e l'analisi dell'HTML con link a tema. È stata invece aggiunta una classe TextLinkStyles che consente di definire lo stile dei link come parametro del Testo componibile. (I31b93)

Correzioni di bug

  • Corregge casi d'uso aggiuntivi durante l'aggiunta dinamica di modificatori di input del puntatore durante gli eventi 63e1504

Versione 1.7.0-alpha08

1° maggio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha08. La versione 1.7.0-alpha08 contiene questi commit.

Modifiche alle API

  • Aggiunge il supporto per implementazioni di forme modificabili. Ora Shape#createOutline è osservato all'interno dei livelli grafici, quindi la lettura dei valori di stato all'interno causerà invalidazioni quando lo stato cambia, consentendo animazioni delle forme più efficaci. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation rinominato in introducesFrameOfReference. Tieni presente che ora ha l'effetto opposto, il che significa che, per impostazione predefinita, la maggior parte degli LayoutCoordinates introduce un frame di riferimento e, solo quando è sottoposto a manipolazione diretta, la proprietà sarà falsa. Per eseguire query sulla posizione solo su quelle che introducono un frame di riferimento, utilizza positionInLocalFrameOfReference(...). Oppure positionInLocalLookaheadFrameOfReference da un LookaheadScope. (Ifc5f7).
  • LookaheadScope API sono state rese stabili (I21507)
  • Modifica l'azione lambda per getScrollViewportLength in base al feedback del consiglio delle API. (Ibc74a)
  • Aggiornate le API outline GraphicsLayer in modo che utilizzino parametri in virgola mobile anziché int. Rimossi UnsetOffset/UnsetSize IntSize valori sentinella a favore di costanti non specificate già esistenti sulle classi in linea Offset e dimensioni basate su numero in virgola mobile (I2fb03, b/333863462)
  • Quando inserisci l'input del mouse durante i test, MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick() e MouseInjectionScope.longClick() ora accettano un parametro button: MouseButton per renderli più applicabili a tutti. Il valore predefinito è MouseButton.Primary per tutti i metodi. (I31a23, b/190493367, b/261439695)
  • onClicked rinominato in onClick all'interno di LinkInteractionListener. (Iaa35c).
  • Rinomina TextInclusionStrategy.isInside in isIncluded. Imposta il tipo restituito da Paragraph/MultiParagraph#getRangeForRect() come non null. (I51f26)

Correzioni di bug

  • È stato corretto il problema di acquisizione di screenshot lunghi per i contenitori a scorrimento con reverseScrolling=true. (I7c59c)

Contributo esterno

  • È stato aggiunto il supporto per il precaricamento degli elementi nell'elemento LazyLists nidificato (ad es. LazyColumn che esegue il rendering di LazyRows nidificato). Questa modifica dovrebbe ridurre le interruzioni di frame durante lo scorrimento per questi LazyLists. L'impostazione predefinita di implementazione è il precaricamento dei primi due elementi nidificati, ma questo comportamento può essere controllato dalle nuove API LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) e LazyListPrefetchStrategy#onNestedPrefetch. (I51952)

Versione 1.7.0-alpha07

17 aprile 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha07. La versione 1.7.0-alpha07 contiene questi commit.

Modifiche alle API

  • ClickableText è contrassegnato come deprecato. Per aggiungere link al testo, crea un AnnotatedString con un LinkAnnotation corrispondente al tuo link e passa questo AnnotatedString al testo componibile. (I34d4b, b/323346994)
  • Presenta ViewConfiguration.HandwritingGestureLineMargin per i gesti di scrittura a mano libera. Supporto del gesto JoinOrSplit per BasicTextField (Ie6e13, b/325660505)
  • FocusProperties.enter e FocusProperties.exit non sono più sperimentali. FocusDirection.Enter e FocusDirection.Exit non sono più sperimentali. FocusRequester.Cancel non è più sperimentale (I461a1, b/261564106)
  • Quando esegui query sulle coordinate del layout, ora puoi utilizzare l'argomento excludeDirectManipulationOffset per escludere l'offset impostato dai layout principali che hanno posizionato i propri elementi secondari utilizzando Placeable.PlacementScope.withDirectManipulationPlacement. Analogamente, un layout che cambia spesso la posizione degli elementi secondari può ora posizionarli utilizzando withDirectManipulationPlacement (come l'opzione Scorri, implementata per impostazione predefinita). In questo modo le animazioni basate su approachLayout possono essere più intuitive, avendo ora l'opportunità di differenziare quale offset animare e cosa applicare direttamente quando si decide di animare il loro approccio. (I60ec7)
  • Il flag funzionalità per gli screenshot lunghi è stato rimosso. (I28648, b/329128246)
  • Ora LazyColumn mostrerà correttamente le intestazioni fisse negli screenshot lunghi. (I8d239, b/329296635)
  • Le origini di trascinamento e scorrimento di NestedScroll verranno sostituite da UserInput e SideEffect per adeguarsi alla definizione estesa di queste origini che ora includono animazioni (effetto collaterale), rotellina del mouse e tastiera (UserInput). (I40579)
  • ApproachLayoutModifierNode e Modifier.approachLayout ora sono stabili, con i nuovi isMeasurementApproachInProgress() e isPlacementApproachInProgress() che sostituiscono rispettivamente i vecchi isMeasurementApproachComplete() e isPlacementApproachComplete().
  • Modificatore intermediateLayout deprecato rimosso. (I3e91c).
  • Rinomina GraphicsLayer#buildLayer per registrare in modo da rispecchiare i metodi start/endRecording delle API supportate da Displaylist come RenderNode e Picture.
  • Aggiornamento di rememberGraphicsLayer per l'utilizzo di rememberObserver. (I312c1, b/288494724, b/330758155)
  • L'elemento UrlAnnotation è deprecato. Usa il criterio LinkAnnotation.Url. Se utilizzi i temi Material, utilizza l'oggetto TextDefaults per creare l'annotazione con la tematizzazione Material (I8d180, b/323346545)
  • Per i link di testo è stata attivata l'opzione di stile con stato premuto oltre allo stile normale, con passaggio del mouse e elemento attivo (I5f864, b/139312671)
  • String.parseAsHtml rinominato in AnnotatedString.Companion.fromHtml. (I43dcd)
  • Sono stati aggiunti argomenti di stile (linkStyle, focusedLinkStyle, hoveredLinkStyle) e un listener di interazione tramite link al metodo parseAsHtml. Durante l'analisi della stringa con tag HTML con i tag <a>, il metodo genera un LinkAnnotation.Url per ogni tag di questo tipo e trasmette gli oggetti di stile e il listener di interazione tramite link a ogni annotazione. (I7c977)
  • LinkAnnotation ora accetta gli argomenti di stile basati sullo stato e un LinkInteractionListener. Aggiungi questa annotazione a AnnotatedString per ottenere un link ipertestuale. Se trasmetti focusedState e/o hoveredState, puoi definire l'configuration visivo per i link quando vengono selezionati e/o passi il mouse sopra. (I81ce4, b/139312671)
  • Per ImeOptions.hintLocales non è più possibile specificare un valore null. Se vuoi trasmettere un elenco di impostazioni internazionali vuoto, utilizza LocaleList.Empty. (Ic5bc4)

Correzioni di bug

  • Gestisce correttamente i dati degli eventi di input storici non validi o danneggiati (ignora i dati di offset non validi).
  • Corregge gli eventi imprevisti del puntatore quando un modificatore di input del puntatore viene aggiunto dinamicamente prima di un altro modificatore di input del puntatore durante un flusso di eventi di input del puntatore attivo (ad esempio, tra un invio al passaggio del mouse e un'uscita al passaggio del mouse [mouse/stilo]).

Versione 1.7.0-alpha06

3 aprile 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha06. La versione 1.7.0-alpha06 contiene questi commit.

Nuove funzionalità

  • Aggiunto il metodo parseAsHtml per le stringhe con stili applicati: consente di convertire in AnnotatedString una stringa contrassegnata con tag HTML. Tieni presente che non tutti i tag sono supportati, ad esempio non potrai ancora visualizzare elenchi puntati. (I84d3d, I30626, b/139326648)
  • È stato implementato il supporto sperimentale per gli screenshot lunghi nei contenitori di scorrimento di Compose utilizzando l'API Android ufficiale (ScrollCaptureCallback). Questa funzionalità è sperimentale e al momento potrebbe non gestire correttamente tutti i casi. Per questo motivo, al momento è disattivato per impostazione predefinita. Per attivare la funzionalità, imposta il flag ComposeFeatureFlag_LongScreenshotsEnabled su true. (I2b055, b/329296471)

Modifiche alle API

  • fun ClipEntry.getMetadata() modificato in val ClipEntry.clipMetadata. (I50155)
  • Rimosse le funzioni ClipboardManager.getClipMetadata e ClipboardManager.hasClip. Usa clipEntry.getMetadata() per leggere i metadati della voce del clip corrente. Controlla anche il risultato di ClipboardManager.getClip, se è nullo o meno per capire se negli appunti è presente un clip corrente. (I50498)
  • Ora puoi passare GraphicsLayer oggetti in funzioni placeable.placeWithLayer() (I1b22f)
  • ClipboardManager.setClip ora accetta null per poter cancellare gli appunti. (I7d2e9).
  • Aggiunta di ID risorsa per assistenza su come nascondere le viste utilizzate come dettagli di implementazione negli strumenti di creazione (I99531)
  • È stato aggiunto il metodo di sospensione GraphicsLayer#toImageBitmap per supportare il rendering dei contenuti di una bitmap in un GraphicsLayer. Si tratta di un'operazione di rendering con accelerazione hardware per il livello API 22 o versioni successive (incluso), che supporta oltre il 99% di tutti i dispositivi Android. Nel livello API Android 21, viene eseguito il rendering software. (I9e114)
  • Metodo di supporto per convertire un RectF di Android in ComposeRect (I39925, b/325660505)
  • Tutti i parametri KeyboardOptions ora hanno un valore non specificato per impostazione predefinita. Metodo KeyboardOptions.merge aggiunto.
  • Il valore KeyboardOptions.autoCorrect è stato rinominato in autoCorrectEnabled e lo è stato reso null, dove null indica che non è stato specificato alcun valore. (Ia8ba0, b/295951492)
  • La variante BasicTextField(state) e BasicSecureTextField ora usano KeyboardActionHandler anziché KeyboardActions per elaborare le azioni eseguite dalla tastiera software. (I58dda)

Versione 1.7.0-alpha05

20 marzo 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha05. La versione 1.7.0-alpha05 contiene questi commit.

Nuove funzionalità

  • Introduci la nuova API GraphicsLayer per registrare comandi di disegno in un elenco di visualizzazione, nonché proprietà aggiuntive che influiscono sul rendering dell'elenco visualizzato. In questo modo viene creato un confine di isolamento per dividere una scena complessa in parti più piccole che possono essere aggiornate singolarmente senza ricreare l'intera scena. Le trasformazioni effettuate in un GraphicsLayer possono essere eseguite senza registrare nuovamente l'elenco di visualizzazione. A differenza di Modifier.graphicsLayer, GraphicsLayer consente il rendering dei contenuti componibili altrove ed è utile nei casi d'uso animati, in cui è previsto il rendering dei contenuti in scene diverse.

Modifiche alle API

  • GraphicsLayer.draw(Canvas) non è più un'API pubblica. Usa invece la funzione di estensione DrawScope.drawLayer(GraphicsLayer) per disegnare il livello. (I7a7c0)
  • Suddividi restrictedConstraints() in due metodi: fitPrioritizingWidth() e fitPrioritizingHeight() (I6d7fd)
  • È stato introdotto lo stub HardwareCanvas per l'utilizzo di Android L (I1c3b5, b/288494724)
  • Aggiorna il framework Compose per esporre una composizione GraphicsContext locale oltre ad aggiornare le implementazioni del ruolo Proprietario, DelegateableNode e drawWithCache Modificatore per esporre l'accesso all'GraphicsContext per l'accesso con ambito, che eseguirà automaticamente la pulizia delle istanze GraphicsLayer quando i modificatori verranno rimossi. (I64a2f, b/288494724)
  • Hai introdotto InterceptPlatformTextInput per aiutare a scrivere test relativi all'IME di basso livello e altri casi d'uso di IME di basso livello. L'API PlatformTextInputTestOverride è stata deprecata. (I862ed, b/322680547)
  • È stata aggiunta la funzione di estensione GraphicsLayer.setOutline(Outline). (Ib81f4)
  • Introduci il costruttore della funzione GraphicsContext per creare una fabbrica per creare istanze GraphicsLayer (Ib98d6, b/288494724)
  • API GraphicsLayer esposta per offrire agli sviluppatori una flessibilità definita nell'acquisizione di comandi di disegno che possono essere utilizzati per disegnare altrove e anche applicare diversi effetti visivi al risultato finale. (I80245, b/288494724)
  • Introduci l'elemento Paragraph#getRangeForRect, che restituisce un intervallo di testo coperto da una determinata area del rettangolo. (Iee516, b/325660505)
  • Rimossa l'override sperimentale di BasicText con argomento onLinkClicked. In futuro seguirà un'API sostitutiva per il supporto dei link ipertestuali. (I107d5)

Correzioni di bug

  • È stata aggiunta la definizione API prevista/effettiva dell'GraphicsLayer per supportare l'acquisizione e la riproduzione di comandi di disegno con trasformazioni e effetti visivi di composizione facoltativi. Illustra l'interfaccia GraphicsContext per contenere le dipendenze grafiche, inclusa la creazione e la gestione di istanze GraphicsLayer. (I4a8d6, b/288494724)
  • È stato risolto un problema di interoperabilità con la ricerca dello stato attivo 1D in cui lo stato attivo rimaneva bloccato all'interno di un elemento ComposeView incorporato tra le altre viste. (I08fd4)

Contributo esterno

  • LocalLifecycleOwner è stata spostata dall'interfaccia utente di Compose a lifecycle-runtime-compose in modo che le sue API helper basate su Compose possano essere utilizzate al di fuori della UI di Compose. Ringraziamo Jake Wharton per il suo contributo. (I6c41b, b/328263448)
  • Esponi in modo coerente le proprietà dei valori in virgola mobile di tutti i sottotipi di allineamento basati su bias. (I69f0f, b/328088992)

Versione 1.7.0-alpha04

6 marzo 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha04. La versione 1.7.0-alpha04 contiene questi commit.

Modifiche alle API

  • Supporta la funzionalità di scrittura a mano libera con stilo per BasicTextField2 sui dispositivi successivi ad Android U. (I002e4).
  • In questo CL aggiungeremo l'azione semantica GetScrollViewportLength in modo da poter trasferire al sistema di accessibilità le informazioni sui componenti di cui si fa scorrere la scrittura. Questo CL applica anche l'utilizzo di questa proprietà negli elenchi a scorrimento di base. (Ic5fa2).
  • FocusRequester.createRefs ora è stabile (I4d92c, b/261436820)
  • È stato introdotto DelegatableNode.requireView() per consentire ai nodi di modifica di ottenere l'attuale View di Android senza leggere una composizione locale. (I40768)
  • Nuova API Path.reverse() per invertire la direzione di un percorso (I36348)
  • L'elemento hintLocales è stato aggiunto a KeyboardOptions per fornire a TextFields la possibilità di suggerire IME per impostazioni internazionali specifiche per preimpostare una lingua preferita.
  • Esponi la proprietà platformLocale da Locale che restituisce l'oggetto piattaforma sottostante, ad esempio java.util.Locale. (I921c6)

Versione 1.7.0-alpha03

21 febbraio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha03. La versione 1.7.0-alpha03 contiene questi commit.

Modifiche alle API

  • Ti presentiamo ContextualFlowRow e Migliorata FlowRow/Column con MaxLines ed Overflow. Siamo entusiasti di annunciare i miglioramenti apportati alle funzionalità sperimentali FlowRow e FlowColumn, che ora includono il supporto per maxLines e overflow, insieme al debutto di ContextualFlowRow e ContextualFlowColumn. Questo aggiornamento è stato progettato per fornire componenti con prestazioni ottimali, dove ContextualFlow* è perfetto per un numero elevato di elementi che utilizzano una configurazione maxLines ridotta e una dinamica +N per vedere più pulsanti, mentre FlowRow e FlowColumn sono perfetti per un numero ridotto di elementi, meno di 100. Importante: per mantenere il comportamento esistente in FlowRow o FlowColumn in cui tutti gli elementi sono composti, indipendentemente dal fatto che rientrino nel limite massimo dell'asse trasversale, imposta overflow su FlowRowOverflow.Visible o FlowColumnOverflow.Visible durante l'inizializzazione. Esplora ContextualFlowRowSample e FlowRowSample per vedere alcuni esempi di queste nuove funzionalità in azione. (Ib9135, b/293577082)
  • Aggiungi la proprietà semantica di maxTextLength da impostare nei campi di testo che filtrano il numero massimo consentito di caratteri. (I24d9f, b/170648072)
  • Il wrapper Modifier.inspectable è stato deprecato. Questa API creerà più invalidazioni del modificatore del necessario, pertanto ne sconsigliamo l'utilizzo. Consigliamo agli sviluppatori di implementare il metodo inspectableProperties() su ModifierNodeElement se vogliono esporre le proprietà di modifica agli strumenti. (Ib3236)
  • Nuovo costruttore per PopupProperties che consente il controllo completo sui flag WindowManager.LayoutParams. (Ibb33e, b/312485503)
  • DelegatableNode.requireLayoutCoordinates() introdotto come modo per ottenere un valore LayoutCoordinates corrente di Modifier.Node senza dover sostituire onPlaced e memorizzare personalmente le coordinate in una proprietà. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates introdotto come modo per ottenere un valore LayoutCoordinates corrente di Modifier.Node senza dover sostituire onPlaced e memorizzare personalmente le coordinate in una proprietà. (Iaebaa)
  • BasicTextField2 e le relative API in androidx.compose.foundation.text2 pacchetto vengono spostate in androidx.compose.foundation.text. (I9f635)
  • È stata aggiunta una nuova API ApproachLayoutModifierNode per supportare la creazione di una logica di approccio personalizzato in un nodo modificatore esplicito. È stata inoltre aggiunta una nuova API sperimentale DeferredTargetAnimation per le animazioni il cui target è sconosciuto al momento della creazione dell'istanza. (I60745)
  • Nuove API Path per eseguire query sulla direzione di un percorso ed estrarre i contorni da un Path. (I63d04)
  • PathHitTest e Path.contains(Offset) aggiunti per verificare se Path contiene un punto specifico. (I3b218)
  • TextLayoutResult ora espone il metodo getLineBaseline(lineIndex). Ciò consente di leggere la base di riferimento di una riga arbitraria di testo oltre alle proprietà di convenienza esistenti firstBaseline e lastBaseline. (Ide4e8, b/237428541)
  • È stato aggiunto un metodo per confrontare solo le annotazioni di due AnnotatedStrings. (I32659)

Correzioni di bug

  • È stato risolto un problema di compatibilità con le versioni precedenti con SemanticsPropertyReceiver.performImeAction e SemanticsActions.PerformImeAction. (ID0528, b/322269946)

Versione 1.7.0-alpha02

7 febbraio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha02. La versione 1.7.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stato risolto un problema di compatibilità binaria con SemanticsPropertyReceiver.performImeAction. (I65865, b/322269946)
  • Il costruttore PopupProperties che utilizza un parametro usePlatformDefaultWidth non è più sperimentale. (I8f8d2).
  • È stato aggiunto un sovraccarico di ComposeTestRule.waitUntil che accetta una descrizione stringa della condizione nel messaggio di timeout. (I9413e)
  • Nuova API semantica unset() per rimuovere le proprietà semantiche aggiunte nella stessa catena di modificatori. Nuova proprietà semantica isOpaque. (I8c583, b/317966058, b/246056649)
  • originalEventPosition rimosso dal metodo di copia nell'API pubblica di PointerInputChange. (I7bead)

Correzioni di bug

  • È stato corretto un bug di accessibilità che consente di fare clic su schede e pulsanti di opzione diversi dalla selezione. (I2181c)
  • Ora VelocityTracker avrà la correzione per aggiungere i punti per impostazione predefinita. La correzione può comunque essere disattivata impostando VelocityTrackerAddPointsFix su false in caso di problemi. (Ib3877, b/269487059)
  • È stata corretta l'incompatibilità binaria con le versioni precedenti in TextStyle e ParagraphStyle. (I179f0, b/320819734)

Contributo esterno

  • È stato aggiunto un nuovo costruttore DialogProperties senza parametri specifici della piattaforma. (I45829)
  • È stato aggiunto un nuovo costruttore PopupProperties senza parametri specifici della piattaforma. (I9a038)

Versione 1.7.0-alpha01

24 gennaio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.7.0-alpha01. La versione 1.7.0-alpha01 contiene questi commit.

Modifiche alle API

  • ClipboardManager è stato espanso aggiungendo ClipEntry e ClipMetadata per supportare contenuti arbitrari, come le immagini.
  • Aggiunge l'API DeviceConfigurationOverride a ui-test per consentire l'accesso in locale il comportamento dei contenuti sottoposti a test, ad esempio per specificare una dimensioni, impostazioni internazionali, direzione del layout, scala dei caratteri o tema.

Versione 1.6

Versione 1.6.8

12 giugno 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.8. La versione 1.6.8 contiene questi commit.

Correzioni di bug

  • Sono state risolte le incoerenze nel ridimensionamento dei caratteri quando la scala è inferiore a quella della tabella definita dal valore più basso. In questo caso, ora eseguiamo l'interpolazione tra la scala lineare 1x e la tabella definita più bassa, in modo che la dimensione del carattere aumenti in modo monotonico con l'aumento delle scale. (Icbae3)

Versione 1.6.7

1° maggio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.7. La versione 1.6.7 contiene questi commit.

Versione 1.6.6

17 aprile 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.6. La versione 1.6.6 contiene questi commit.

Correzioni di bug

  • Corregge un raro arresto anomalo di BasicTextField.

Versione 1.6.5

3 aprile 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.5. La versione 1.6.5 contiene questi commit.

Versione 1.6.4

20 marzo 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.4. La versione 1.6.4 contiene questi commit.

Versione 1.6.3

6 marzo 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.3. La versione 1.6.3 contiene questi commit.

Versione 1.6.2

21 febbraio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.2. La versione 1.6.2 contiene questi commit.

Versione 1.6.1

7 febbraio 2024 Viene rilasciato androidx.compose.ui:ui-*:1.6.1. La versione 1.6.1 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema di compatibilità con le versioni precedenti con SemanticsPropertyReceiver.performImeAction e SemanticsActions.PerformImeAction. (Ie0bb2, b/322269946)
  • I layout ora emettono un errore durante la misurazione quando viene restituita una dimensione insolitamente grande. Questo tipo di errore si verifica normalmente quando la misurazione utilizza direttamente i vincoli massimi senza verificare il valore Constraints.Infinity. Il controllo aiuterà gli sviluppatori a rilevare problemi con le dimensioni errate del layout, invece che con un layout che lo contiene. (I339a9)

Versione 1.6.0

24 gennaio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.0. La versione 1.6.0 contiene questi commit.

Versione 1.6.0-rc01

10 gennaio 2024

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-rc01. La versione 1.6.0-rc01 contiene questi commit.

Correzioni di bug

  • Implementazione di grafica vettoriale ottimizzata per migliorare le prestazioni riducendo al minimo le ricomposizioni aggiuntive.

Versione 1.6.0-beta03

13 dicembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-beta03. La versione 1.6.0-beta03 contiene questi commit.

Nuove funzionalità

  • Ora è possibile scollegare un LayoutCoordinates senza che il nodo venga scollegato. Evitalo in Componi Layout Inspector (If693)

Correzioni di bug

  • PlatformImeOptions è ora una classe concreta anziché un'interfaccia. (If40a4).
  • Sono state corrette le ricomposizioni extra downstream causate dalla fornitura di nuovi valori da parte di LocalSoftwareKeyboardController e LocalTextInputService ogni volta che una radice viene ricomposta. (I42190, b/310510985)

Versione 1.6.0-beta02

29 novembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-beta02. La versione 1.6.0-beta02 contiene questi commit.

Versione 1.6.0-beta01

15 novembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-beta01. La versione 1.6.0-beta01 contiene questi commit.

Modifiche alle API

  • Il modificatore DragAndDropTarget ora accetta esplicitamente DragAndDropTarget ricevente e dispone di una funzione lambda per attivare una sessione di trascinamento. Ora sono disponibili due funzioni di fabbrica per un DragAndDropModifierNode. Una per ricevere i trasferimenti e un'altra per il trasferimento dei dati (I69481)
  • maximumFlingVelocity aggiornato per essere rappresentato come in virgola mobile. Documentazione aggiornata per essere più chiara sull'unità maximumFlingVelocity. (I8adc7)
  • Il nome onDragAndDropStart nella fabbrica di DragAndDropModifierNode è stato rinominato acceptDragAndDropTransfer.acceptsDragAndDropTransfer è stato aggiunto al Modificatore dragAndDropTarget per accettare le modifiche da una sessione di trascinamento. Questa funzione lambda restituisce un DragAndDropTarget utilizzabile se è interessato a una sessione di trascinamento. Altre funzioni lambda per l'elaborazione degli eventi di trascinamento sono state sostituite da queste. È stata aggiunta una funzione di fabbrica DragAndDropTarget per ricevere da sessioni di trascinamento (Iebf3a)
  • Rimosso DragAndDropInfo come tipo DragAndDropModifierNode.drag ora accetta parametri per transferData, dimensione della decorazione e decorazione a trascinamento DrawScope lambda

    DragAndDropTarget offre metodi per determinati eventi di trascinamento anziché essere un singolo metodo astratto

    onDragAndDropEvent nella funzione di fabbrica per un DragAndDropModifierNode è stata rinominata in onDragAndDropStart per comunicare meglio che il DragAndDropTarget fornito è valido solo per una determinata sessione di trascinamento

    DragAndDropEventType è stato rimosso (I645b1)

  • PlatformTextInputModifierNode.runTextInputSession rinominato in establishTextInputSession. (I03cd0)

  • Migliora i nomi delle API dei nodi attraversabili in modo da renderli più comprensibili. (Ia4474)

  • Sostituisci OriginalText entro il giorno TextSubstitution. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession rinominato in runTextInputSession. (Ie9c6b).

  • Gli elementi secondari di SubcomposeLayout (e i layout come LazyColumn basati su questo elemento) che vengono conservati per essere riutilizzati in futuro sono considerati disattivati. Per testare questi nodi, è stata introdotta una nuova API di test assertIsDeactivated(). Le altre API di test filtreranno i nodi disattivati per impostazione predefinita. (I2ef84, b/187188981)

  • FocusDirection.In e FocusDirection.Out rimossi utilizzano invece FocusDirection.Enter e FocusDirection.Exit (I2f660)

  • Le API Material SwipeToReveal (per carte e chip) ora si basano su un'API basata su slot (come consigliato da Compose) anziché su istanze basate su classi di dati per creare questi slot. Questa è una modifica che provoca un errore, consulta la demo e il codice campione per esempi su come utilizzare la nuova API. (Ia8943)

  • Il costruttore FontStyle(int) è deprecato. Usa FontStyle.Normal o FontStyle.Italic. (I66610)

  • Interfaccia FontScalable rinominata in FontScaling (Ie804a)

Correzioni di bug

  • SoftwareKeyboardController.show() non mostrerà più la tastiera software se l'editor di testo non è attivo. (I2165a, b/301477279)
  • Gli eventi chiave su hardware per le chiavi che non hanno ricevuto un evento Blocco nella stessa vista di scrittura ora verranno ignorati. (Ib37b4, b/305518328)
  • Aggiungi il supporto del renderer per Sweep Gradient in ArcLine. (I4d5bb)
  • Implementa gli stessi valori e il codice hash per PageSize.Fixed. (Ie3ede, b/300134276)
  • Correggere un problema di compatibilità binaria con la modifica degli elementi di Windows (Iee695)
  • Rimuovi lo strato interno del materiale per chip/tasto Material3, poiché in questo caso i microbenchmark mostrano prestazioni migliori. (I55555)
  • I TestDispatcher superati come test da effectContext a Compose verranno ora utilizzati per creare il test e i frame orologi. (Ia7178)

Versione 1.6.0-alpha08

18 ottobre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha08. La versione 1.6.0-alpha08 contiene questi commit.

Modifiche alle API

  • Modifier.dragAndDrawSource è stato rinominato onDrawDragShadow lambda in drawDragDecoration e DragAndDropInfo il parametro size è stato rinominato in dragDecorationSize. (Id0e30, b/303904810)
  • Presenta SemanticsNodeInteraction.isDisplayed() e SemanticsNodeInteraction.isNotDisplayed() per verificare se un nodo corrispondente è visibile o meno senza che venga utilizzato. (I2c196, b/302100809)
  • È stato introdotto un valore Unspecified speciale per i campi TextAlign, TextDirection, Hyphens e LineBreak di ParagraphTextStyle in sostituzione di null. Poiché queste classi sono classi in linea, sostituendo "nullable" con "Non specificato", evitiamo il pugilato di tipo primitivo. Costruttori, getter e altri metodi in TextStyle e in stile paragrafo sono stati aggiornati in modo da accettare i parametri indicati come tipi non null. (I4197e, b/299490814)
  • Aggiungi un sovraccarico di GoogleFont per la lettura di un GoogleFont da XML. (If8f59).
  • LoremIpsum PreviewParameterProvider è stato impostato come corso aperto. (I41bf5, b/266918816, b/300116360)

Correzioni di bug

  • FontFamilyResolver ora utilizza Dispatchers.Main per le coroutine di gestione della cache. (Ie8dd9)
  • Ora AndroidViewBinding rimuove in modo sincrono Fragment istanze gonfiate includendo un FragmentContainerView nel tuo layout come parte del suo onRelease utilizzando commitNow (invece di commit usato in precedenza), risolvendo così i problemi con il metodo di Modifica dal vivo relativo alla sostituzione della composizione in caso di modifiche. (I58fbf)

Versione 1.6.0-alpha07

4 ottobre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha07. La versione 1.6.0-alpha07 contiene questi commit.

Modifiche alle API

  • PlatformTextInputMethodTestOverride introdotto per la scrittura di test per editor di testo personalizzati. (ID159b)
  • Aggiunge il modificatore dragAndDropSource per avviare sessioni di trascinamento e dragAndDropTarget per la ricezione da sessioni di trascinamento. (Ib7828, b/286038936)
  • Aggiunte raccolte ColorList e ColorSet che evitano le allocazioni. (I744bd)
  • È stato aggiunto il flag temporaneo DisableNonLinearFontScalingInCompose per disattivare il ridimensionamento dei caratteri non lineari. Imposta DisableNonLinearFontScalingInCompose = true nei test se hai bisogno di tempo per eseguire la pulizia. Questo flag verrà rimosso in Compose 1.6.0-beta01. (Ic9486)

Correzioni di bug

  • Analisi dei drawables vettoriali XML ottimizzata. (Ibb015)

Versione 1.6.0-alpha06

20 settembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha06. La versione 1.6.0-alpha06 contiene questi commit.

Modifiche alle API

  • Ottimizzazioni aggiuntive alle icone Material. (I3e08d)
  • Aggiunge la possibilità di attraversare l'albero dei modificatori verso l'alto o verso il basso per trovare nodi simili. (I2d234).
  • È stato aggiunto il callback onRestoreFailed() al modificatore focusRestorer() (Ie1d43)
  • Aggiunte annotazioni Androidx a varie API grafiche per specificare ColorInt, FloatRange, IntRange, Size e altre ancora. (Id65c8, b/290950582)
  • Aggiungi showSystemUi=true alla definizione di PreviewScreenSizes (Ib61d3)

Cambiamenti del comportamento

  • Scrivi ora utilizza la scalabilità dei caratteri non lineare per una migliore leggibilità e accessibilità. Quando viene usato il ridimensionamento del carattere > 100% nelle impostazioni di sistema, le dimensioni del testo piccolo aumentano normalmente, mentre quelle già grandi aumenteranno di poco. Inoltre, l'altezza delle linee definita in SP verrà regolata automaticamente per rimanere proporzionale all'altezza desiderata della scala al 100%. Per ulteriori informazioni, consulta le best practice per la scalabilità dei caratteri. (I11518)

Versione 1.6.0-alpha05

6 settembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha05. La versione 1.6.0-alpha05 contiene questi commit.

Modifiche alle API

  • Attiva l'acquisizione dei contenuti in AndroidComposeViewAccessibilityDelegateCompat. (Ib2969)
  • Le velocità di scorrimento nei componenti della vista come ScrollView e RecyclerView sono limitate a ViewConfiguration.ScaledMaximumFlingVelocity. Compose ora contiene la propria versione di maximumFlingVelocity, che ora si applica a Draggable. (Ibf974).
  • Aggiunge lo scaffolding iniziale per supportare le API di trascinamento della piattaforma. (If84ce)
  • Aggiungi deviceId in RotaryScrollEvent (Iba3bf)
  • È stata aggiornata l'API ui-tooling Devices per includere i dispositivi più recenti (Ib25b4)

Versione 1.6.0-alpha04

23 agosto 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha04. La versione 1.6.0-alpha04 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un metodo per disattivare ReusableComposition, rimuovendo le osservazioni ma mantenendo i nodi in posizione. La composizione disattivata può essere riattivata chiamando il numero setContent. (Ib7f31)
  • Aggiungi l'interfaccia ReusableComposition per la gestione del ciclo di vita e il riutilizzo delle sottocomposizioni. (I812d1, b/252846775)
  • Modifier.focusGroup è stato promosso alle API stabili. (I7ffa3)
  • Aggiunte annotazioni Androidx a varie API grafiche per specificare ColorInt, FloatRange, IntRange, Size e altre ancora. (I70487, b/290950582)
  • È stata aggiornata l'API ColorFilter per includere tipi di sottoclassi concrete per una migliore ispezionabilità dei parametri. (I5fe29)
  • Introduci la libreria wear-tooling-preview per elencare i dispositivi di usura validi che possono essere utilizzati per le anteprime dell'interfaccia utente (Ib036e)
  • È stata creata l'interfaccia FontScalable per gestire la parte del ridimensionamento dei caratteri nell'interfaccia Densità. (I2cf3f)

Versione 1.6.0-alpha03

9 agosto 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha03. La versione 1.6.0-alpha03 contiene questi commit.

Modifiche alle API

  • Nuovo tipo di transizione entrata/uscita che scala i contenuti in base alle dimensioni del contenitore animato durante i comandi di entrata e uscita esce dall'animazione. LookaheadScope Il divertimento e l'interfaccia componibili ora sono stabili. (Ifb2ce).
  • Aggiunto il supporto per la configurazione di privateImeOptions (Idb772)

Correzioni di bug

  • Ora PopupPositionProvider.calculatePosition aggiornerà automaticamente la posizione del popup quando lo stato letto nel calcolo viene modificato. (I676a1, b/292257547)
  • Campi di testo corretti che mostrano la tastiera e possono essere modificati quando il criterio readOnly è impostato su true. È stato inoltre corretto il problema di visualizzazione della tastiera quando il valore di readOnly viene modificato da vero a falso durante lo stato attivo. (I34a19, b/246909589)
  • Applicazione estesa delle asserzioni globali nei test dell'interfaccia utente. (I1f90d)

Versione 1.6.0-alpha02

26 luglio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha02. La versione 1.6.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta un'interfaccia di Service locator che può essere implementata dagli implementatori di Composizione e che consente l'implementazione di Composizione che delega a un altro servizio di delegato della composizione le ricerche della composizione originale. Questa opzione non deve essere chiamata Directy e viene utilizzata per consentire la creazione di API sperimentali nel runtime che possono essere trovate da versioni con wrapping del compositore, come nel caso del modulo UI. (I296b9)
  • L'API PlatformTextInput* è stata completamente riprogettata. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController e LocalSoftwareKeyboardController non sono più sperimentali. Ora anche LocalSoftwareKeyboardController è un CompositionLocal vero e proprio. (I4c364).
  • I campi LookaheadLayout e LookaheadLayoutScope sono stati ritirati per alcune release e ora vengono rimossi. Le API sostitutive sono LookaheadScope che possono funzionare con qualsiasi layout. (I12ac3)
  • È stato aggiunto SemanticsNodeInteraction.requestFocus come modo più comodo e rilevabile per richiedere l'attenzione nei test. (Ie8722).
  • Aggiungi API sperimentali per la registrazione di asserzioni globali da usare nei test dei framework in futuro. (I12d77)

Correzioni di bug

  • Ora la prima chiamata del callback update di AndroidView verrà differita fino al collegamento della vista, invece di essere eseguita quando viene applicata la composizione che introduce il AndroidView. Questo corregge un bug per cui il callback update non veniva invalidato se uno stato letto veniva modificato immediatamente da un effetto. (Ie9438, b/291094055)

Versione 1.6.0-alpha01

21 giu 2023

Viene rilasciato androidx.compose.ui:ui-*:1.6.0-alpha01. La versione 1.6.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Supporto lookahead in LazyList. In questo modo LazyList nel pass lookahead può ignorare qualsiasi animazione (ad es. animazione del posizionamento dell'elemento, AnimatedVisibility e così via) e calcolare la dimensione e la posizione di lookahead per tutti gli elementi secondari. Dopo il passaggio lookahead, gli elementi secondari di LazyList potrebbero animarsi in modo indipendente rispetto alla realtà come mostrato nel pass lookahead.

Modifica del comportamento: includeFontPadding ora è false per impostazione predefinita in Compose

Ora includeFontPadding è false per impostazione predefinita (21d806) in Scrivi.

includeFontPadding è un attributo precedente che consente di stabilire se includere o meno una spaziatura interna aggiuntiva nella prima e nell'ultima riga del testo per includere eventuali caratteri che possono estendersi sopra o sotto le basi del testo.

L'aggiornamento di questa versione di Compose modificherà il modo in cui tutti i testi vengono visualizzati nell'interfaccia utente rimuovendo la spaziatura interna aggiuntiva nella prima e all'ultima riga di ogni testo visualizzato.

A seconda dei requisiti dell'interfaccia utente e delle metriche relative ai caratteri che utilizzi, le modifiche dovrebbero essere minime. Tuttavia, potresti riscontrare blocchi come: - Test di screenshot non funzionanti. Correggi la UI, se necessario, e rigenera le immagini finali. - Il testo è leggermente disallineato. Rimuovi eventuali spaziature interne escluse personalizzate o aggiungine altre, se necessario.

Puoi attivare includeFontPadding utilizzando PlatformTextStyle per ogni testo:

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

Puoi attivare includeFontPadding per tutti i tuoi testi configurando gli stili Materiale. Tieni presente che i nomi dei parametri variano tra M2 e M3.

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

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

Per scoprire di più su Compose includeFontPadding, consulta la documentazione per gli sviluppatori e questo post del blog.

Se riscontri problemi/bug relativi a questa modifica, segnala un bug utilizzando lo strumento Issue Tracker.

Modifiche alle API

  • Supporto InputConnection#requestCursorUpdates (I0c69b)
  • FocusRequester.saveFocusedChild e FocusRequester.restoreFocusedChild aggiunti (Ic557e, b/272302679, b/275157318)
  • Aggiungi il tipo ResourceResolutionException per aggregare gli elementi lanciabili generati durante il tentativo di caricare gli asset bitmap con una descrizione del percorso dell'asset che non è stato possibile caricare. (I19f44, b/230166331, b/278424788)
  • Accessibilità ottimizzata per prestazioni e allocazioni di memoria. (Iede48)
  • Sono state aggiunte proprietà e azioni semantiche per supportare la traduzione del testo. (I4a6bc).
  • Nuova proprietà in IntrinsincMeasureScope e relative implementazioni (ad es. MeasureScope) per indicare se la valutazione corrente è un passaggio lookahead. (I7a812)
  • È stata aggiornata l'API DrawScope per introdurre la possibilità di eseguire il retargeting del rendering in un'area di lavoro diversa con densità/direzione layout e dimensioni alternative.
  • È stato aggiornato DrawContext per supportare la configurazione della densità e della direzione del layout, nonché per rendere il canvas configurabile. (Ie1f9b, b/225408150)
  • È stato aggiunto Paragraph#fillBoundingBoxes per calcolare i riquadri di delimitazione dei caratteri. (If30ee)
  • È stato aggiunto un insieme di MultiPreviews comuni (Ia5a27)

Correzioni di bug

  • È stata aggiunta l'interfaccia FocusTargetModifierNode che può essere utilizzata per creare un FocusTarget personalizzato. (I9790e)
  • I parametri fallback* sul costruttore TextMeasurer sono stati rinominati in default*. (I940a5)
  • SemanticsPropertyReceiver.performImeAction è stato rinominato in onImeAction e SemanticsActions.PerformImeAction in OnImeAction. (I8e841).
  • Aggiunge la rotellina per distinguere lo scorrimento del mouse da un trascinamento nello scorrimento nidificato (più precisamente, in NestedScrollConnection). (Ie57e4).
  • Aggiunta l'API asComposePaint per sostituire toComposePaint mentre l'oggetto restituito aggrega il android.graphics.Paint originale (I22b4c)
  • Ritira SemanticsProperties.imeAction e sostituiscilo con un nuovo parametro in SemanticsActions.performImeAction. (I4a587).
  • Aggiunto il supporto per la selezione tramite mouse. La selezione basata sul tocco si espanderà per parola e si restringerà per carattere. (Ic0c6c, b/180639271)
  • I metodi Paragraph che utilizzavano per generare AssertionError per gli offset fuori intervallo ora generano IllegalArgumentException, come fa MultiParagraph. (I549d3, b/243338896)

Versione 1.5

Versione 1.5.4

18 ottobre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.4. La versione 1.5.4 contiene questi commit.

Versione 1.5.3

4 ottobre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.3. La versione 1.5.3 contiene questi commit.

Correzioni di bug

  • (b/301209788) A volte TextField applicava erroneamente i comandi precedenti durante lo stato attivo e l'inserimento dell'input coreano, causando la perdita di caratteri.

Versione 1.5.2

27 settembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.2. La versione 1.5.2 contiene questi commit.

Correzioni di bug

  • Aggiunta una soluzione alternativa per gli arresti anomali quando si accedeva all'API Accessibility Scorrimento dal thread in background.
  • Correggi i nodi scollegati che vengono aggiunti all'albero della semantica.

Versione 1.5.1

6 settembre 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.1. La versione 1.5.1 contiene questi commit.

Correzioni di bug

  • Campi di testo corretti che mostrano la tastiera e possono essere modificati quando il criterio readOnly è impostato su true. È stato inoltre corretto il problema di visualizzazione della tastiera quando il valore di readOnly viene modificato da vero a falso durante lo stato attivo. (I34a19, b/246909589)

Versione 1.5.0

9 agosto 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0. La versione 1.5.0 contiene questi commit.

Versione 1.5.0-rc01

26 luglio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-rc01. La versione 1.5.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato risolto il problema che si verificava quando l'elemento SubcomposeLayout viene utilizzato all'interno di movableContentOf().

Versione 1.5.0-beta03

28 giugno 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-beta03. La versione 1.5.0-beta03 contiene questi commit.

Correzioni di bug

  • È stata aggiunta l'interfaccia FocusTargetModifierNode, che può essere utilizzata per creare un FocusTarget personalizzato. (Ifb1d6).
  • È stato risolto un problema relativo ai componibili di finestre di dialogo e popup che causava il ridimensionamento della finestra secondaria come previsto quando usePlatformDefaultWidth=true. (I112ee)

Versione 1.5.0-beta02

7 giugno 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-beta02. La versione 1.5.0-beta02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'API asComposePaint per consentire l'utilizzo in Compose di un'istanza android.graphics.Paint

Correzioni di bug

  • Aggiunta l'API asComposePaint per sostituire toComposePaint mentre l'oggetto restituito aggrega il android.graphics.Paint originale (I22b4c)

Versione 1.5.0-beta01

24 maggio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-beta01. La versione 1.5.0-beta01 contiene questi commit.

Modifiche alle API

  • Allocazioni rimosse nelle ricomposizioni, nelle animazioni a colori e in AndroidComposeView (Ib2bfa)
  • Aggiunge il divertimento CacheDrawModifierNode() per consentire la delega (Icf8f9)
  • Introduzione della proprietà isLookingAhead, accessibile da MeasureScope, per osservare i risultati in anteprima e influenzare il passaggio principale, se necessario. (Ibf4c3).
  • Nuova proprietà semantica traversalIndex, un numero in virgola mobile utilizzato per riordinare i nodi in TalkBack attraversal (i valori più bassi vengono precedenti). (I9a81b, b/186443263)
  • Ridenominazione della proprietà semantica isContainer in isTraversalGroup (I121f6)
  • ColorProducer ora ha un operator fun invoke anziché produce (I4a9a2)
  • Aggiungi l'API transform Path per applicare trasformazioni di traslazione/scalabilità/rotazione agli oggetti del percorso. (I23434, b/233772232)
  • Il metodo di ColorProducer è denominato produce. (I78bde)
  • Rinomina toFrameworkColorSpace in toAndroidColorSpace (I4f547)
  • Rinomina ColorLambda in ColorProducer. (I73b1a)
  • Illustrare le API per convertire i tipi di spazio colore Android e Compose. (Ie7db4, b/279979665)
  • È stato aggiunto un parametro di colore a BasicText per consentire di animare o impostare in modo efficiente il colore del testo. (Iffd88, b/246961787)
  • TextRange.constrain rinominato in TextRange.coerceIn. (I31be2).
  • È stato aggiunto il valore TextStyle.merge(...) ottimizzato con l'elenco completo dei parametri. (Iad234, b/246961787)
  • Stabilizzate molte API di testo che includono Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) e MultiParagraph.paint(Brush). (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding non è deprecato. Il nostro intento originale era quello di rimuovere il campo, ma i feedback dimostrano che gli sviluppatori hanno bisogno di questa opzione di configurazione. Di conseguenza, rimuovendo il ritiro dal campo (I98e96, b/277703184)
  • Metodo TextRange.constrain pubblico aggiunto. (I97912)
  • Ora gli UrlAnnotation in AnnotatedString possono essere aperti tramite servizi di accessibilità come TalkBack. (If4d82, b/253292081)
  • È stata aggiunta l'azione semantica InsertTextAtCursor per i campi di testo. (I11ed5)
  • Il costruttore LineHeightStyle.Alignment(topRatio) viene promosso ad API stabile. (I79c32, b/261565383)
  • TextMeasurer e le API correlate non sono più sperimentali. (I74647, b/261581753)
  • È stata aggiunta l'azione semantica PerformImeAction per richiamare l'azione IME sui nodi dell'editor di testo. (Ic606f, b/269633506)
  • Le API PlatformTextInput non sono più sperimentali per Android. (I668eb)
  • nome del parametro del valore per Enum.valueOf modificato (Ia9b89)
  • Altre eccezioni generate dall'enum valueOf (I818fe)
  • È stata introdotta una nuova API PlatformTextInputAdapter di basso livello per creare implementazioni di input di testo personalizzate che comunicano direttamente con le API della piattaforma. (I58df4)
  • È stato aggiunto il parametro BlendMode ai metodi DrawScope.drawText, Paragraph.paint e MultiParagraph.paint per supportare diversi algoritmi di combinazione quando si disegna testo su Canvas. (I57508)
  • Rinomina Font.MaximumAsyncTimeout in Font.MaximumAsyncTimeoutMillis. Solo rinomina. (I07af5)
  • Valori DPI aggiornati di @Preview dispositivi di riferimento (Id6151, b/254528382)
  • Aggiungi i parametri brush e alpha a BasicText per consentire di animare o impostare in modo efficiente il pennello di testo.
  • Definisci i tipi lambda senza scatola per Float, Doppio, Lungo, Int, Short in :ui:ui-unit (I6f18d, b/246961787)

Correzioni di bug

  • Rimosse più allocazioni nel monitoraggio della velocità del puntatore (I26bae)
  • Allocazioni ridotte nella gestione di layout e input del puntatore (I5333a)
  • Ottimizza l'utilizzo della memoria vettoriale e il rendering dei primi frame (I2f3c6)
  • Allocazioni rimosse quando si disegnano linee e punti con Canvas (I9f535)
  • Aggiungi documenti per AndroidFont.fontVariationSettings (I7d9e2)

Contributo esterno

  • Prestazioni migliorate e riduzione delle allocazioni nelle API Vector (I906cb)

Versione 1.5.0-alpha04

10 maggio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-alpha04. La versione 1.5.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Modifier.Node miglioramenti delle deleghe È stata aggiunta una funzionalità migliorata di delega ad altre istanze Modifier.Node da un DelegatingNode. Questa operazione può essere eseguita con le API delegate e undelegate. Prima di questa modifica, ogni API del nodo delegato doveva essere delegata esplicitamente al nodo delegato. Dopo questa modifica, le interfacce dei nodi verranno delegati in modo implicito, a meno che DelegatingNode non le esegua esplicitamente l'override. (67352bc)

Modifiche alle API

  • Presenta NestedScrollModifierNode, un NestedScroll Modifier.Node a cui può essere delegata. (I69513)
  • Sono stati aggiunti i parametri onReset e onRelease al componibile AndroidViewBinding, eseguendo il mirroring del componibile AndroidView e attivando il supporto per il riutilizzo della visualizzazione con ViewBinding. (I00b1e, b/276802519)
  • È stata aggiornata l'API Compose Path per supportare le operazioni di riavvolgimento e per i casi d'uso di manipolazione frequente del percorso con un riutilizzo più rapido. (I7b797)
  • È stato aggiunto il valore TextStyle.merge(...) ottimizzato con l'elenco completo dei parametri. (Iad234, b/246961787)
  • Stabilizzate molte API di testo che includono Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush) e MultiParagraph.paint(Brush). (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding non è deprecato. Il nostro intento originale era quello di rimuovere il campo, ma i feedback dimostrano che gli sviluppatori hanno bisogno di questa opzione di configurazione. Di conseguenza, rimuovendo il ritiro dal campo (I98e96, b/277703184)

Correzioni di bug

  • È stata corretta la regressione per cui la tastiera non veniva visualizzata per i campi di testo all'interno di finestre di dialogo non create dal componibile Dialog. (I82551, b/262140644)

Versione 1.5.0-alpha03

19 aprile 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-alpha03. La versione 1.5.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Nuovo comportamento predefinito per SubcomposeLayout in LookaheadScope: SubcomposeLayouts che non hanno aree condizionali (ad es. TabRow, Scaffold, BoxWithConstraints e così via) ora funzionano bene con le animazioni lookahead.

Modifiche alle API

  • Il nuovo criterio intermediateMeasurePolicy predefinito che riutilizza il criterio di misurazione della tessera lookahead consente a SubcomposeLayout sottotipi senza aree condizionali come Scaffold, TabRow e BoxWithConstraints di funzionare con lookahead per impostazione predefinita. (ID84c8)
  • Il ricompositore creato per una finestra Android ora bloccherà solo le chiamate a withFrameNanos anziché a tutta la composizione quando riceverà una notifica ON_STOP. Ciò significa che le finestre associate alle attività interrotte continueranno a ricomporsi per le modifiche dei dati, ma le animazioni, o qualsiasi altro chiamante di withFrameNanos, bloccheranno. (Id9e7f, b/240975572)
  • Modifica motionEventSpy in stabile. (Ic5ec4, b/261560988)
  • Metodo TextRange.constrain pubblico aggiunto. (I97912)
  • PlatformTextStyle.includeFontPadding non è più deprecato per incoraggiare gli sviluppatori a usare questa API di compatibilità per cambiare e testare l'impostazione includeFontPadding (false). (I98e96, b/277703184)

Versione 1.5.0-alpha02

5 aprile 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-alpha02. La versione 1.5.0-alpha02 contiene questi commit.

Modifiche alle API

  • Nuova API SubcomposeLayout che richiede un criterio di misura intermedia aggiuntiva per gestire la logica di misura/layout durante le animazioni basate su lookahead. (I017d3)
  • PointerInput è ora lazy e utilizza Modifier.Node per migliorare le prestazioni (scopri di più sul cambiamento di comportamento minore). (15dab9)
  • Modifica le API sperimentali in stabili con gli eventi chiave. (I9c7d8, b/261566839, b/261567368)
  • Modifica le API sperimentali in stabili in PointerInputChange. (I1b543, b/261560988, b/261565762, b/261565749)
  • Aggiunge un modo per creare un'istanza di un SuspendingPointerInputModifierNode per implementazioni Modifier.Node più complesse. (Ic4933)
  • Ora gli UrlAnnotation in AnnotatedString possono essere aperti tramite servizi di accessibilità come TalkBack. (If4d82, b/253292081)
  • È stata aggiunta un'API per intercettare i tasti hardware prima che vengano inviati alla tastiera software (I4f4c6, b/186800395)
  • È stata aggiunta l'azione semantica InsertTextAtCursor per i campi di testo. (I11ed5)
  • Ora le azioni di test correlate al testo (ad es. performTextInput) richiederanno direttamente lo stato attivo, utilizzando l'azione semantica, anziché fare clic sul campo. (I6ed05)

Correzioni di bug

  • Le azioni di test del testo ora richiedono l'attivazione dei campi di testo. (Iab328)

Versione 1.5.0-alpha01

22 marzo 2023

Viene rilasciato androidx.compose.ui:ui-*:1.5.0-alpha01. La versione 1.5.0-alpha01 contiene questi commit.

Modifiche alle API

  • Modifier.intermediateLayout ora non richiede un LookaheadScope esplicito. Il blocco di misurazione in intermedioLayout ha Intermediate MeasureScope come ricevitore, che fornisce i comodi CoroutineScope, LookaheadScope e MeasureScope.(Ibe2e5)
  • LookaheadLayout è stato sostituito da LookaheadScope, che non è più un layout. In questo modo, i contenuti chid in un LookaheadScope possono essere controllati direttamente dal MeasurePolicy del publisher principale. (Ibe2e5)
  • Aggiunge Modifier.Node#coroutineScope per consentire ai nodi Modificatore di avviare le coroutine. (I76ef9)
  • Consenti a Modifier.Nodes di leggere ComposizioneLocals implementando l'interfaccia ComposeLocalConsumerModifierNode. (Ib44df)
  • Propagazione della classe @ritirata alla proprietà. (I882d1)

Versione 1.4

Versione 1.4.3

3 maggio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.3. La versione 1.4.3 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema per cui AndroidView potrebbe non essere impostato correttamente quando utilizzato con determinati modificatori. (I4dc77, b/274797771)
  • È stato corretto un bug della ricerca 2D Focus che interessava i menu di DropDown (b/276811828)
  • È stato corretto un bug nelle proprietà di entrata/uscita dell'elemento attivo personalizzato che eseguiva il blocco invio/uscita solo la prima volta che veniva richiamata la lambda (b/277234245)
  • È stata corretta una regressione nel sistema dello stato attivo che causava un arresto anomalo durante la lettura di focusProperties. (b/271324781, b/274897776)

Versione 1.4.2

19 aprile 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.2. La versione 1.4.2 contiene questi commit.

Correzioni di bug

  • È stato risolto un problema per cui AndroidView non riutilizzava correttamente i propri modificatori, causando potenzialmente comportamenti e arresti anomali imprevisti. (Ib67ee, b/275919849)
  • È stata corretta la regressione per cui la tastiera non veniva visualizzata per i campi di testo all'interno di finestre di dialogo non create dal componibile Dialog (I82551, b/262140644)

Versione 1.4.1

5 aprile 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.1. La versione 1.4.1 contiene questi commit.

Correzioni di bug

  • Corregge un problema con ParentDataModifier che non interessa AndroidView (b/274797771)

Versione 1.4.0

22 marzo 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

  • È stata aggiunta una nuova API PinnableContainer che consente di bloccare gli elementi dell'elenco lazy in modo che non vengano spostati quando vengono fatti scorrere oltre i limiti. Ad esempio, Modifier.focusable() utilizza questo meccanismo per bloccare l'elemento attualmente selezionato. (Ib8881, b/259274257, b/195049010)
  • Il sistema di messa a fuoco viene riscritto utilizzando le nuove API sperimentali Modifier.Node. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/2518151815181515151815151515183}10}b/247716483)
  • Aggiunta nella proprietà semantica di IsContainer sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379)
  • È stato aggiunto un nuovo ruolo di accessibilità DropdownList. Può essere utilizzato per replicare il comportamento di TalkBack quando imposta android.widget.Spinner. (I177e5, b/236159001)
  • Se vuoi, ora puoi utilizzare PlatformTextStyle(emojiSupportMatch) per disattivare l'elaborazione del supporto delle emoji per un singolo paragrafo. (Ia7100, b/139326806)
  • I test della UI di Android Compose ora eseguiranno passaggi del layout per ogni frame durante l'esecuzione dei frame per diventare inattivi (ad esempio tramite waitForIdle). Ciò potrebbe influire sui test che asseriscono su singoli frame di animazioni di layout. (I8ea08, b/222093277)
  • È stato aggiunto il valore TextMotion sperimentale a TextStyle per definire il testo come Static(default) o animato. Utilizza TextMotion.Animated se il testo verrà ridimensionato, tradotto o ruotato tramite animazione. (I24dd7)

Versione 1.4.0-rc01

8 marzo 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-rc01. La versione 1.4.0-rc01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un sovraccarico di funzione componibile AndroidView, che accetta il parametro onReset. Consente di riutilizzare le istanze View quando il relativo nodo nella composizione viene eliminato e riutilizzato in modo compatibile. Questo è particolarmente utile per le visualizzazioni LazyRows e LazyColumns. (I3f10d, b/230099236)
  • È stata introdotta una nuova API PlatformTextInputAdapter di basso livello per creare implementazioni di input di testo personalizzate che comunicano direttamente con le API della piattaforma. (I58df4)

Correzioni di bug

  • L'azione semantica SetText di BasicTextField ora aggiornerà il buffer di testo utilizzando lo stesso percorso di codice degli aggiornamenti dell'IME e delle funzioni di test (ad es. performTextReplacement).
  • Le funzioni di test del testo performTextClearance, performTextReplacement e performTextSelection ora utilizzano SemanticsActions. (I0807d, b/269633168, b/269624358)

Versione 1.4.0-beta02

22 febbraio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-beta02. La versione 1.4.0-beta02 contiene questi commit.

Modifiche alle API

  • È stata rimossa l'API modifierElementOf(). Estendi direttamente da ModifierNodeElement. (I2256b)
  • È stato aggiunto un nuovo callback Modifier.Node.onReset() che ti consente di reimpostare alcuni stati locali per gestire correttamente la richiesta quando verrà riutilizzato Layout (ad esempio come elemento di LazyColumn). È stato corretto FocusTargetModifierNode per reimpostare correttamente lo stato attivo. (I65495, b/265201972)
  • È stato aggiunto il parametro BlendMode ai metodi DrawScope.drawText, Paragraph.paint e MultiParagraph.paint per supportare diversi algoritmi di combinazione quando si disegna testo su Canvas. (I57508)

Correzioni di bug

  • È stato migliorato l'algoritmo dell'ordine di priorità dell'accessibilità, ad esempio le barre superiore/inferiore vengono lette, rispettivamente, per prima e per ultima cosa (74e9c5)

Versione 1.4.0-beta01

8 febbraio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-beta01. La versione 1.4.0-beta01 contiene questi commit.

Modifiche alle API

  • PinnableContainer.PinnedHandle.unpin() è stato rinominato release() (I4667a)
  • Aggiunte waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists e waitUntilDoesNotExist come API sperimentale a ComposeTestRule, estendendo l'API waitUntil per accettare qualsiasi matcher e numero di nodi. Consulta ComposeTestRule per ulteriori informazioni. (Ifa1b9, b/226934294)
  • Rinomina Font.MaximumAsyncTimeout in Font.MaximumAsyncTimeoutMillis. (I07af5)
  • GoogleFont.Provider.AllFontsListUri rimosso e collegato tramite link in ktdoc. (I16f29)

Correzioni di bug

  • Aggiungi documenti per AndroidFont.fontVariationSettings (I7d9e2)

Versione 1.4.0-alpha05

25 gennaio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-alpha05. La versione 1.4.0-alpha05 contiene questi commit.

Modifiche alle API

  • Sono stati introdotti nuovi sovraccarichi sperimentali per la funzione runComposeUiTest e le funzioni create*ComposeRule che accettano i parametri CoroutineContext. Il contesto verrà utilizzato per la composizione di test e per eventuali chiamate LaunchedEffect e rememberCoroutineScope() nella composizione. (I10614, b/265177763)
  • Aggiunta di una nuova API per monitorare la velocità monodimensionale (If5a82)
  • FocusRequester ora è contrassegnato come @Stable. (I580ee)
  • Rimuovi un'annotazione sperimentale dal costruttore DialogProperties che utilizza un parametro usePlatformDefaultWidth. (Ic4048)
  • Aggiunta funzione alla posizione e alla tangente del calcolo a una distanza su un percorso - con PathMeasure.getPosition() e PathMeasure.getTangent() (I3b47c)
  • È stato rimosso il setter pubblico esposto per errore il giorno PlatformParagraphStyle. (I07f47)
  • Più tipo/nullabilità di funzioni in linea/deprecate e nascoste (I24f91)
  • Aggiungi AnnotatedString.hasStringAnnotations per eseguire una query per le annotazioni con zero allocazioni. (I94dfe, b/246960758)
  • È stato aggiunto un nuovo sovraccarico per la funzione TextMeasurer.measure che accetta String come testo. (I47b2d, b/242705342)
  • Le API LineBreak e Hyphens in TextStyle sono passate allo stato stabile. (Ic1e1d).

Contributo esterno

  • I metodi notifyFocusedRect in TextInputSession e TextInputService non sono più deprecati. (I23a04, b/262648050)

Versione 1.4.0-alpha04

11 gennaio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-alpha04. La versione 1.4.0-alpha04 contiene questi commit.

Nuove funzionalità

  • È stata aggiunta una nuova API PinnableContainer che consente di bloccare gli elementi dell'elenco lazy in modo che non vengano spostati quando vengono fatti scorrere oltre i limiti. Ad esempio, Modifier.focusable() utilizza questo meccanismo per bloccare l'elemento attualmente selezionato. (Ib8881, b/259274257, b/195049010)
  • Il sistema di messa a fuoco viene riscritto utilizzando le nuove API sperimentali Modifier.Node. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/2518151815181515151815151515183}10}b/247716483)
  • Aggiunta nella proprietà semantica di IsContainer sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379)
  • Aggiunto nuovo ruolo di accessibilità DropdownList. Questa opzione può essere utilizzata per replicare il comportamento di TalkBack's quando imposti android.widget.Spinner. (I177e5, b/236159001)
  • Se vuoi, ora puoi utilizzare PlatformTextStyle(emojiSupportMatch) per disattivare l'elaborazione del supporto delle emoji per un singolo paragrafo. (Ia7100, b/139326806)
  • I test della UI di Android Compose ora eseguiranno passaggi del layout per ogni frame durante l'esecuzione dei frame per diventare inattivi (ad esempio tramite waitForIdle). Ciò potrebbe influire sui test che asseriscono su singoli frame di animazioni di layout. (I8ea08, b/222093277)
  • È stato aggiunto il valore TextMotion sperimentale a TextStyle per definire il testo come Static(default) o animato. Utilizza TextMotion.Animated se il testo verrà ridimensionato, tradotto o ruotato tramite animazione. (I24dd7)

Modifiche alle API

  • Argomento maxSize: IntSize sostituito in drawText con size: Size per essere in linea con altre funzioni DrawScope. Il criterio size è impostato su Size.Unspecified per impostazione predefinita e non dovrebbe modificare il comportamento predefinito precedente. (Icd27d)
  • Rimosso il costruttore di caratteri sperimentale obsoleto. (I8a724, b/261435386)
  • La classe di dati degli strumenti UI Group ora ha un campo, isInline, che indica se il gruppo riguarda una chiamata a una funzione componibile in linea. Se isInline è true, la chiamata è a una funzione componibile in linea. Tuttavia, il valore potrebbe essere falso per le chiamate a funzioni componibili inline provenienti da moduli compilati con una versione del plug-in del compilatore Composer che non genera le informazioni della funzione inline. (Idb846)
  • Trasformazione in stabili di alcune API precedentemente sperimentali
  • L'API Rotary Scorri Event è ora stabile (I42ad3, b/261561229)
  • L'API FontVariation è ora stabile (I8779f, b/241016309)
  • Tutti i costruttori Font() ora sono API stabili (I5948b, b/261435386)
  • DeviceFontFamilyName ora è stabile (I8b640, b/261435386)
  • Il costruttore AndroidFont con variationSettings è ora un'API stabile e può essere utilizzato per creare nuovi tipi di descrittori dei caratteri. (I5adcc, b/261565807)
  • L'API createFontFamilyResolver ora è stabile. Questa opzione può essere utilizzata per individuare le eccezioni non rilevate durante il caricamento asincrono dei caratteri. (Ibb481, b/261435386)
  • L'API Font.loadingStrategy ora è stabile. (I5937c, b/261435386)
  • L'API GoogleFont ora è stabile. (Ic90b0, b/261435386)
  • Ora TextUnit(float, TextUnitType) è un'API stabile. (I90c84, b/261561612)
  • Ora pluralStringResource è un'API stabile. (I09849, b/261439703)

Versione 1.4.0-alpha03

7 dicembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-alpha03. La versione 1.4.0-alpha03 contiene questi commit.

Modifiche alle API

  • Rimozione di ExperimentalComposeUiApi da PointerIcon (I23af8)
  • Presenta le azioni di accessibilità della pagina: PageUp, PageDown, PageLeft, PageRight. Tieni presente che queste funzionalità sono disponibili solo dall'API 29. (Ida4ab)
  • Visualizzazione parametro rememberNestedScrollConnection aggiornata dalla vista principale alla vista host. (Ia5200)
  • È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento dei predecessori. (I2ba9d, b/203141462)
  • Utilizzato in Clickable per ritardare correttamente le interazioni con la pressione, quando i gesti potrebbero diventare eventi di scorrimento.
  • È stato corretto il problema di Clickables che non ritardava correttamente le eco, se utilizzato all'interno di un Scrollable ViewGroup.
  • Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
  • CompositingStrategy.Always è stato rinominato in Offscreen per indicare che il rendering di graphicsLayer verrà sempre eseguito in un buffer intermedio (I47dc1)
  • Il sovraccarico del layout con più aree di contenuti è ora stabile (I10566, b/248294649)
  • Sono state aggiunte nuove API sperimentali PerfettoTrace.record {} e PerfettoTraceRule per acquisire le tracce Perfetto (note anche come tracce di sistema) nell'ambito di un test, al fine di ispezionare il comportamento e le prestazioni dei test. (I3ba16)
  • Nei test dell'interfaccia utente che utilizzano una regola di composizione, le continuazioni riprese durante i callback withFrameNanos non verranno inviate fino al termine dell'esecuzione di tutti i callback frame. Questo corrisponde al comportamento di Compose quando viene eseguito normalmente. Tuttavia, i test che si basano sul comportamento precedente potrebbero non riuscire. Ciò dovrebbe interessare solo il codice che chiama direttamente withFrameNanos o withFrameMillis e ha una logica esterna al callback passato a quelle funzioni che potrebbero dover essere spostate all'interno dei callback. Consulta le modifiche relative al test dell'animazione in questo CL per degli esempi.
  • È stato aggiunto il parametro facoltativo onPerformTraversals: (Long) -> Unit al costruttore TestMonotonicFrameClock e alla funzione di fabbrica per eseguire il codice dopo i callback withFrameNanos, ma prima di riprendere i chiamanti coroutine. (Idb413, b/254115946, b/222093277, b/255802670)
  • Aggiunta EmojiCompat a Compose (Ibf6f9, b/139326806)
  • È stato aggiunto un nuovo parametro dello sfondo a @Preview per il supporto dei colori dinamici (I9f512)

Correzioni di bug

  • Ora le notifiche di applicazione degli snapshot vengono inviate al termine dell'applicazione delle modifiche in Recomposer. (Iad6c0, b/222093277)
  • Sono state introdotte modifiche in captureToImage per consentire l'acquisizione di screenshot multi-finestra. Questo è utile per i test di screenshot che utilizzano i popup di composizione. (I169c5)

Aggiornamenti delle dipendenze

  • L'UI di Compose e Compose Material ora dipendono dal Ciclo di vita 2.5.1. (I05ab0, b/258038814)

Versione 1.4.0-alpha02

9 novembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-alpha02. La versione 1.4.0-alpha02 contiene questi commit.

Modifiche alle API

  • GraphicsLayerScope aggiornato per esporre la dimensione attuale dell'elemento graphicsLayer. Questo è utile per calcolare le trasformazioni graphicsLayer in funzione della dimensione componibile. (If8c43,b/181387080)
  • CompositingStrategy introdotto per determinare quando utilizzare un livello di composizione fuori schermo per il rendering dei contenuti graphicsLayer. Mantenere automaticamente il comportamento predefinito che sfrutta internamente un livello se viene applicata una versione alpha o RenderEffect/Overscroll. Introdurrà sempre un buffer fuori schermo in cui ModulateAlpha eviterà di sfruttare un buffer fuori schermo e modula invece ciascuna delle istruzioni di disegno registrate all'interno di graphicsLayer. L'utilizzo di ModulateAlpha continuerà a sfruttare un buffer fuori schermo per RenderEffect/Overscroll (I25e82, b/256382834)
  • invalidateSubtree() è stato aggiunto a Modifier.Node per consentire l'annullamento di intere gerarchie per layout e disegno. (I4bd90)
  • Promuovi rememberNestedScrollInteropConnection a livello stabile. È stata introdotta la possibilità di passare una vista radice a rememberNestedScrollInteropConnection. In questo modo la visualizzazione personalizzata può reagire meglio ai vincoli dello scorrimento, soprattutto nelle visualizzazioni non standard (ad es. ModalBottomSheetDialog). (I9e107).
  • Aggiunta l'interfaccia ObserverNode che può essere utilizzata dalle implementazioni Modifier.Node che devono ricevere una notifica quando un valore letto in precedenza viene modificato (I5728b, b/247716483)
  • È stato aggiunto un nuovo costruttore a Paint che accetta un android.graphics.Paint nativo. È stata inoltre aggiunta una funzione di estensione toComposePaint() che converte un oggetto Paint nativo esistente in Compose Paint. (Ica91b)
  • Aggiungi un nuovo FontFamily.Resolver.resolveAsTypeface da usare su Android. (I8950b)
  • Aggiungi ToolingState per consentire agli strumenti di modificare gli stati interni di Composable (Ie6614)
  • Strumenti di refactoring per avere un supporto migliore per le nuove animazioni aggiunte (I8677b)
  • È stato aggiunto il parametro minLines in material e testo material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)

Versione 1.4.0-alpha01

24 ottobre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.4.0-alpha01. La versione 1.4.0-alpha01 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un nuovo metodo, awaitEachGesture(), per i rilevatori di gesti. Funziona in modo simile a forEachGesture(), ma i gesti di loop sui gesti operano interamente all'interno di AwaitPointerEventScope, in modo che gli eventi non vadano persi tra un'iterazione e l'altra.
  • forEachGesture() è stato ritirato a favore di awaitEachGesture() perché consente di perdere eventi tra un gesto e l'altro. (Iffc3f, b/251260206)
  • Ritiro del riciclo di oggetti accessibili in Androidx. Abbiamo riscontrato che le variazioni delle prestazioni sono trascurabili anche nelle versioni meno recenti supportate. (I0a961)
  • DrawStyle è stato aggiunto come attributo sperimentale a TextStyle e SpanStyle per consentire di tracciare il testo con contorni. (If24b8, b/155421273)
  • AnnotatedString.Builder ora implementa kotlin.text.Appendable. (I1a061, b/231030444)
  • Ora in AnnotatedString.Builder è disponibile un metodo append(AnnotatedString, start: Int, end: Int) per aggiungere la sottostringa di un elemento AnnotatedString e gli stili che si intersecano.
  • Parametro DrawStyle aggiunto alle funzioni di colorazione Paragraph e MultiParagraph per consentire di disegnare il testo con contorni. (Ic8102, b/155421273)

Contributo esterno

  • Grazie per vighnesh per aver aggiunto dispositivi TV alle anteprime (Ie15cd)

Versione 1.3

Versione 1.3.3

11 gennaio 2023

Viene rilasciato androidx.compose.ui:ui-*:1.3.3. La versione 1.3.3 contiene questi commit.

Correzioni di bug

  • Correzione di un problema che a volte si verificava su Android 9 mentre l'Attività salvava lo stato della visualizzazione Scrittura. (I0b755, b/260322832)

Versione 1.3.2

7 dicembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.2. La versione 1.3.2 contiene questi commit.

Correzioni di bug

  • Aggiornato per utilizzare Profobuf 3.21.8, che evita un avviso di sicurezza in protobuf-javalite:3.19.4 (CVE-2022-3171) (b/255545055)

Versione 1.3.1

9 novembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.1. La versione 1.3.1 contiene questi commit.

Versione 1.3.0

24 ottobre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

  • Nuova suite API sperimentale LookaheadLayout (che abilita comportamenti di animazione precedentemente impossibili)
  • Nuova suite API sperimentale Modifier.Node (alternativa con prestazioni più elevate a Modifier.composed)
  • Supporto migliorato per gli insiemi di finestre.
  • Imposta lo stato attivo sul supporto per D-pad e tastiera hardware nei LazyList.
  • L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp (modifica del comportamento che provoca un errore per alcuni sistemi di progettazione personalizzati – razionale nelle note di rilascio beta01)
  • Molti miglioramenti di minore entità delle API
  • Molte correzioni di bug e miglioramenti delle prestazioni

Versione 1.3.0-rc01

5 ottobre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-rc01. La versione 1.3.0-rc01 contiene questi commit.

Modifiche alle API

  • Sono stati aggiunti nuovi trattini sperimentali delle API per supportare il trattino automatico nel testo (Iaa869)

Correzioni di bug

  • Per impostazione predefinita, i caratteri DeviceFontFamilyName non configureranno le impostazioni delle varianti wght e ital, ma utilizzeranno l'impostazione della piattaforma per i caratteri Typeface caricati. (Ia7a6d, b/246989332)
  • Correzione della perdita di memoria di LazyColumn: onModifierLocalsUpdated non veniva chiamato con il valore predefinito al momento del riutilizzo dei modificatori (b/230168389)

Versione 1.3.0-beta03

21 settembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-beta03. La versione 1.3.0-beta03 contiene questi commit.

Modifiche alle API

  • Aggiungi opzioni per personalizzare l'interruzione di riga nel testo. (I86907)
  • Argomento size:IntSize modificato con constraints: Constraints nel metodo TextMeasurer.measure per supportare vincoli di larghezza minima. (I37530, b/242707525)

Correzioni di bug

  • L'API BackHandler di AndroidX Activity ora funziona all'interno di un componibile Dialog. (I35342)

Versione 1.3.0-beta02

7 settembre 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-beta02. La versione 1.3.0-beta02 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un sovraccarico sperimentale per Layout che accetta un elenco di più lambda di contenuti componibili, il che consente di inserire i parametri misurabili sulle minacce in differenti contenuti lambda (Ic1b4e)

Modifiche alle API sperimentali Focus:

  • FocusDirection.In e FocusDirection.Out sono deprecati e sostituiti da FocusDirection.Enter e FocusDirection.Exit. (Ia4262, b/183746982)
  • Sono state aggiunte due nuove proprietà dello stato attivo in entrata e in uscita per specificare un comportamento personalizzato per FocusManager.moveFocus(Enter) e FocusManager.moveFocus(Exit). (I5f3f9, b/183746982)
  • Ora puoi utilizzare FocusRequester.Cancel per annullare uno spostamento dello stato attivo. FocusRequester.Cancel può essere utilizzato in una qualsiasi delle seguenti proprietà dello stato attivo: su, giù, sinistra, destra, successiva, precedente, inizio, fine, Invio e uscita. (Ib300f)

Versione 1.3.0-beta01

24 agosto 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-beta01. La versione 1.3.0-beta01 contiene questi commit.

Refactoring dei nodi di modifica

Il livello che gestisce le istanze Modifier/Modifier.Element e coordina il loro comportamento su LayoutNodes è stato sottoposto a importanti refactoring. Allo stato attuale, si tratta di un refactoring che non ha interessato l'API pubblica di nessuno dei molti modificatori in Compose e può essere visto come una modifica solo per l'implementazione. Nonostante ciò, si tratta di un cambiamento importante per vari motivi. (Ie4313)

Riepilogo delle modifiche

Le API Modifier.Node sperimentali aggiunte forniscono un'astrazione che consente di mantenere lo stato su un'istanza che verrà conservata per il ciclo di vita del nodo di layout e verrà allocata per nodo e utilizzo del Modifier.Element corrispondente che l'ha prodotto.

In termini generali, questa astrazione fornisce un meccanismo alternativo per produrre modificatori stateful senza fare affidamento sui meccanismi dell'API Modifier.composed.

Rischio

Questa modifica è strettamente compatibile con le versioni binarie con le release precedenti ed è pensata per essere compatibile con le versioni precedenti in termini di comportamento osservabile, quanto più pratico e ragionevole. Detto questo, sono pochi i sottosistemi di composizione che questo refactoring non ha toccato ed è probabile che il comportamento sia cambiato in modi che non erano stati trattati dai nostri test e che non sono ancora stati trovati e risolti.

Esegui l'upgrade a questa release con cautela. Se ritieni che si sia verificato un problema, non esitare a comunicarcelo.

API sperimentali

Sono state aggiunte varie API sperimentali, tutte relative al nuovo concetto di "Nodo di modifica". I nodi di modifica vengono creati

  • 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

Modifica del comportamento che provoca un errore

L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.

L'elevazione massima supportata per le finestre di dialogo e i popup di composizione è stata ridotta da 30 dp a 8 dp. Questa modifica interessa le finestre di dialogo e i popup personalizzati dell'interfaccia utente e dei materiali. Questa modifica è stata apportata per mitigare un bug di accessibilità sulle versioni di Android precedenti alla S e per garantire che i servizi di accessibilità all'interno di queste finestre siano in grado di interagire con i contenuti all'interno della finestra di dialogo o del popup.

Questa modifica ti interesserà solo se stai creando un'implementazione di finestre di dialogo o popup personalizzate con un'elevazione impostata su livelli superiori a 8 dp. Valuta la possibilità di abbassare l'elevazione della finestra di dialogo o del popup. Se devi rifiutare questo nuovo comportamento, puoi creare una finestra di dialogo o un popup con l'impostazione dell'elevazione desiderata. Questa opzione è sconsigliata perché l'accessibilità potrebbe risentirne negativamente ed è compito dello sviluppatore garantire che la parte inferiore della finestra di dialogo o del popup sia interattiva e leggibile dai servizi di accessibilità.

Modifiche alle API

  • Risolto un problema per cui painterResource non si aggiornava alle modifiche alla configurazione (I58e73, b/228862715)
  • rememberTextMeasurer non richiede più i parametri FontFamily.Resolver, Density o LayoutDirection. Utilizza il costruttore TextMeasurer per fornire valori personalizzati per questi parametri. (Ia1da3).
  • Proprietà DialogProperties.decorFitsSystemWindows aggiunta per consentire alle finestre di dialogo di supportare WindowInsets. (I57742, b/229378542)
  • I costruttori di caratteri sono stati ripristinati al file kotlin originale per mantenere la compatibilità binaria. Nessuna modifica rispetto all'ultima release stabile. (Ieb2f3)
  • Rimosso l'operatore non necessario da diverse definizioni di uguale. Questa operazione non ha alcun effetto. (I6c309)
  • FontVariation.Setting è un'interfaccia protetta che consente l'utilizzo di API di blocco in futuro. (I11021, b/143703328)
  • Aggiungi CompositionGroup.findParameters a SlotTree.kt. In questo modo, gli strumenti possono recuperare i parametri per un CompositionGroup senza dover analizzare l'intera tabella slot. (I124fe)

Versione 1.3.0-alpha03

10 agosto 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-alpha03. La versione 1.3.0-alpha03 contiene questi commit.

Modifiche alle API

  • LayoutCoordinates.findRootCoordinates() è ora pubblico (I7fa37, b/204723384)
  • È stata aggiunta un'API sperimentale per recuperare LayoutCoordinates in PlacementScope. Questo consente agli sviluppatori di sapere dove posizionare il layout corrente rispetto alla sua posizione. (I5482b, b/238632578)
  • È stato aggiunto LayoutCoordinates.transformFrom per ottenere la trasformazione Matrix da LayoutCoordinates a un altro. (Ic5ab1, b/238632578)
  • L'elemento SemanticsModifier.id è stato deprecato e l'ID semantico è stato invece spostato in LayoutInfo.semanticsId. (Iac808, b/203559524)
  • Ora Resource Fonts supporta l'impostazione delle impostazioni di variazione dei caratteri (API 26 e versioni successive). (I900dd, b/143703328)
  • Supporto dei caratteri variabili in DeviceFontFamilyNameFont (Ic1279, b/143703328)
  • I costruttori dei caratteri ora accettano un elenco di FontVariation.Setting per la configurazione di caratteri variabili sui dispositivi O+. (I11a9d, b/143703328)
  • Aggiungi l'API FontVariation per definire e utilizzare caratteri variabili. (I3c40c, b/143703328)
  • Ora il costruttore LineHeightStyle.Alignment è pubblico (sperimentale) (I4bbbe, b/235876330)
  • Il paragrafo è ora previsto|effettivo e definito per Android e computer. (Id387e, b/239962983)
  • L'interfaccia Paragarph è ora sigillata. Non esiste un caso d'uso per la creazione di sottoclassi di paragrafi. Ti consigliamo di contattarci se questa modifica ti interessa. (If5247, b/239962983)
  • L'annotazione sperimentale è stata rimossa da PlatformTextStyle e LineHeightStyle. (I64bef)
  • Ritira TextInputService.show|hideSoftwareKeyboard. Usa invece SoftwareKeyboardController nel codice dell'app e TextInputSession nel codice di gestione IME. (I14e4c, b/183448615)
  • Aggiunta di una nuova API per i tipi di animazione esistenti (I26179)

Correzioni di bug

  • È stato aggiunto @RequiresPermission alle API che richiedono la concessione dell'autorizzazione POST_NOTIFICATIONS su SDK 33 e versioni successive. (Ie542e, b/238790278)

Versione 1.3.0-alpha02

27 luglio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-alpha02. La versione 1.3.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta una nuova proprietà PointerInputChange#pressure per recuperare la pressione. (I45a5e, b/205164819)
  • È stato aggiunto rememberTextMeasurer per creare e ricordare facilmente TextMeasurer istanze nella composizione. (I8d66e)
  • Rect, RoundRect e MutableRect ora supportano la sintassi Kotlin in per chiamare la funzione contains. (Ie42b0, b/238642990)
  • Rimuovi le funzioni non necessarie da KeyInjectionScope, poiché possono essere facilmente implementate con parti più semplici dell'API. Le funzioni che sono state rimosse includono pressKeys, keysDown e keysUp. (I81d77)
  • costante e nomi dei parametri sottoposti a refactoring in KeyInjectionScope per includere il suffisso "Millis" dove le unità di tali costanti e parametri sono millisecondi. (Iabef5)
  • Metodo toStringForLog() aggiunto a EditCommand per facilitare la risoluzione dei problemi di modifica del testo. (I53354, b/228862731)
  • È stata aggiunta la funzione di estensione drawText in DrawScope per consentire di disegnare testo con più stili su componibili e modificatori che operano su DrawScope come Canvas e drawBehind. (I16a62, b/190787898)
  • Introduci una nuova API sperimentale chiamata TextMeasurer che consente il calcolo arbitrario del layout del testo in modo da creare risultati identici a BasicText, indipendentemente dal runtime di Compose. (I17101)
  • Aggiungi mapTree a SlotTree.kt. In questo modo, gli strumenti possono esaminare SlotTree senza creare prima una copia in memoria come fa AsTree. Layout Inspector consente di migliorare il rendimento di circa fattore 10. (I5e113).
  • L'anteprima di Compose è stata modificata in modo da archiviare i file di output binari, per consentire agli sviluppatori di scrivere e riutilizzare le annotazioni MultiPreview dalle librerie. (I85699, b/233511976)

Correzioni di bug

  • Quando aggiungi eventi InputEventChange al tracker Velocity, considereremo ora i delta anziché le posizioni, per garantire che la velocità venga calcolata correttamente per tutti i casi anche se l'elemento target si muove (Icea9d, b/216582726, b/223440806, b/227709803)
  • Correggi gli errori NPE causati da AnnotatedString.toUpperCase in presenza di annotazioni. (I0aca2, b/210899140)

Versione 1.3.0-alpha01

29 giugno 2022

Viene rilasciato androidx.compose.ui:ui-*:1.3.0-alpha01. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche alle API

  • Nuovo elemento LookaheadLayout che supporta un pass lookahead prima della misura/del layout effettivi. In questo modo è possibile eseguire un precalcolo del layout in caso di modifiche, mentre la misura/il layout post-lookahead può utilizzare la dimensione/posizione precalcolata per animare le dimensioni e le posizioni verso il target. SubcomposeLayouts non sono ancora supportati, ma lo saranno in una release futura. (I477f5)
  • Aggiungi il parametro alpha facoltativo alla versione Pennello di TextStyle e SpanStyle per modificare l'opacità dell'intero Text. (Ic2fac, b/234117635)
  • Sono stati introdotti il tipo di annotazione UrlAnnotation e i metodi associati per supportare il supporto dei link TalkBack in AnnotatedString. (I1c754, b/231495122)
  • Spostamento della funzionalità dell'utilità in runtime (I4f729)

Correzioni di bug

Contributo esterno

  • È stata aggiunta una nuova API WindowInfo.keyboardModifiers per osservarne lo stato all'interno delle funzioni componibili o tramite snapshotFlow (Icdb8a)

Versione 1.2

Versione 1.2.1

10 agosto 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.1. La versione 1.2.1 contiene questi commit.

Correzioni di bug

  • nullpointer corretto nel controllo (b/237987764)
  • È stata corretta l'eccezione di trasmissione delle classi durante la memorizzazione nella finestra di controllo (b/235526153)

Versione 1.2.0

27 luglio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0. La versione 1.2.0 contiene questi commit.

Modifiche importanti dalla versione 1.1.0

  • Miglioramenti nell'attraversamento dello stato attivo:

    • Lo scorrimento orientato allo stato attivo degli elenchi Lazy ora funziona utilizzando la nuova API principale BeyondBoundsLayout
    • Nuove API di personalizzazione del comportamento in FocusOrder e FocusProperties
    • Comportamento migliorato con la tastiera fisica o il telecomando della TV
  • Nuove API per:

    • Rivestimenti di finestre
    • Primitive di base per animazioni basate su gesti, infinite e di layout
    • Funzionalità di GraphicsLayer, tra cui RenderEffect
  • Molte correzioni di bug e miglioramenti delle prestazioni

Versione 1.2.0-rc03

29 giugno 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-rc03. La versione 1.2.0-rc03 contiene questi commit.

  • Nessuna modifica dalla versione 1.2.0-rc02.

Versione 1.2.0-rc02

22 giugno 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-rc02. La versione 1.2.0-rc02 contiene questi commit.

Versione 1.2.0-rc01

15 giugno 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-rc01. La versione 1.2.0-rc01 contiene questi commit.

Modifiche alle API

  • Le interfacce nelle librerie di scrittura vengono ora create utilizzando i metodi predefiniti dell'interfaccia jdk8 (I5bcf1)
  • Sono state aggiunte funzioni di ordine superiore a KeyInjectionScope per iniettare pressioni dei tasti mentre gli altri tasti vengono premuti o attivati. Queste funzioni includono withKeysDown, withKeysToggled e così via. Sono state aggiunte anche proprietà per verificare se un determinato tasto meta è inattivo, ad esempio isCtrlDown per verificare se uno dei due tasti di controllo è stato premuto. Consulta KeyInjectionScope per la documentazione su ciascuna funzione. (I9f6cd, b/229831515)
  • È stato introdotto un OverscrollEffect sperimentale per consentire gli effetti di scorrimento dell'overscroll personalizzati, oltre ai sovraccarichi Modifier.scrollable che lo accettano.
  • La funzionalità LocalOverScrollConfiguration sperimentale è stata spostata da foundation.gesture al pacchetto di base e rinominata LocalOverscrollConfiguration (If19fb, b/204650733)
  • Rinomina runComposeUiTestWithoutActivity {} in runEmptyComposeUiTest {} per allinearlo a createEmptyComposeRule() (I6fed7)

Versione 1.2.0-beta03

1 giugno 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-beta03. La versione 1.2.0-beta03 contiene questi commit.

Modifiche alle API

  • pressKeyTimes, isCapsLockOn e amici aggiunti a KeyInjectionScope. Inoltre, l'API ora supporta pattern di inserimento combinati con mouse e tastiera, ad esempio il clic con un pulsante del mouse con un tasto meta premuto. (I4c8da, b/229831515)
  • È stato aggiunto il supporto sperimentale per l'inserimento di eventi chiave. Utilizza performKeyInput per inviare eventi chiave o inviali tramite la proprietà key di MultiModalInjectionScope durante un gesto di immissione multimodale con performMultiModalInput. Vedi KeyInjectionScope per la documentazione dell'API. (Ic5000, b/229831515)
  • Aggiungi un nuovo GoogleFont.Provider.AllFontsListUri per recuperare la sorgente internet canonica di Google Fonts supportata da Android.
  • Migliora i messaggi di errore che vengono restituiti quando il caricamento di GoogleFonts non riesce in fase di scrittura. (I0416c)

Correzioni di bug

  • Quando aggiungi eventi InputEventChange al tracker di velocità, prendiamo in considerazione ora i delta anziché le posizioni. Ciò garantisce che la velocità venga calcolata correttamente per tutti i casi anche se l'elemento target si muove (I51ec3, b/216582726, b/223440806, b/227709803)
  • L'impostazione Show Layout Bounds verrà applicata ai componibili subito dopo averla attivata/disattivata dal riquadro delle impostazioni rapide, senza dover uscire e rientrare nell'attività. (I843d5, b/225937688)
  • La ricerca delle stringhe di accessibilità non attiva il caricamento dei caratteri. In precedenza, cercava di caricare i caratteri per StyleSpans, causare arresti anomali se FontFamily.Resolver fosse stato sovrascritto. (I4609d)
  • Se premi il tasto Canc in avanti quando il cursore si trova alla fine di un campo di testo, non si verificherà più l'arresto anomalo.
  • DeleteSurroundingTextCommand e DeleteSurroundingTextInCodePointsCommand ora richiedono che gli argomenti del costruttore siano non negativi. (Ica8e6, b/199919707)

Versione 1.2.0-beta02

18 maggio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-beta02. La versione 1.2.0-beta02 contiene questi commit.

Modifiche alle API

  • Riutilizzo delle funzionalità in altri tipi di anteprima (I19f39)

Correzioni di bug

  • Il nome ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer è stato rinominato DisposeOnDetachedFromWindowOrReleasedFromPool per riflettere meglio quando avviene lo smaltimento, anziché semplicemente quando non avviene. (If15ca).

Versione 1.2.0-beta01

11 maggio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-beta01. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • Questa è la prima versione beta della 1.2.

Modifiche alle API

  • Aggiunta di BeyondBoundsInterval sperimentali che possono essere utilizzate dalle implementazioni personalizzate di LazyList quando impongono il layout degli elementi oltre i limiti visibili (Ifabfb, b/184670295)
  • Le versioni con chiave di Modifier.composed ora sono API stabili (Ie65e4, b/229988420)
  • È stata semplificata l'API rememberNestedScrollConnection per utilizzare le informazioni locali di composizione per acquisire le informazioni della vista corrente (I67ca7)
  • Ora l'annotazione @ComposableTarget e le annotazioni contrassegnate da @ComposableTargetMarker possono essere utilizzate nell'ambito dei file con il prefisso @file. L'utilizzo di un'annotazione di destinazione nell'ambito del file farà in modo che il compilatore presuma che tutte le funzioni componibili nel file siano destinate all'applicatore associato. Ad esempio, l'utilizzo di @file:UiComposable dichiara che tutte le funzioni @Composable hanno come target l'applicatore dell'interfaccia utente di Compose. Una funzione che deve scegliere come target un altro applicatore deve fornire esplicitamente l'annotazione dell'indicatore target per l'applicatore desiderato. (I40804)
  • Introduzione di una nuova API sperimentale, indipendente dalla piattaforma, di test: interface ComposeUiTest e fun runComposeUiTest(block: ComposeUiTest.() -> Unit), che possono essere utilizzati per eseguire i test dell'interfaccia utente di Compose senza bisogno di TestRule. Per eseguire un test senza un ComposeTestRule, supera il test come lambda per runComposeUiTest e usa i metodi e i membri nell'ambito del destinatario ComposeUiTest, che sono gli stessi di ComposeContentTestRule.

    I valori interface AndroidComposeUiTest e fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) specifici per Android sono aggiunto per fornire l'accesso all'attività sottostante, come AndroidComposeTestRule. Per un controllo ancora maggiore, puoi creare un'istanza class AndroidComposeUiTestEnvironment tu.

    L'implementazione desktop è class DesktopComposeUiTest, ma non Al momento vengono offerte funzioni di esecuzione specifiche per computer.

    È possibile eseguire la migrazione di un test da ComposeTestRule a ComposeUiTest in questo modo (esempio per Android). Da:

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

    A:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • Per ora, ComposeContentTestRule e ComposeTestRule non si estendono da ComposeUiTest, il che significa che le funzioni di estensione su ComposeUiTest non possono ancora essere chiamate nell'interfaccia di TestRule. Quando ComposeUiTest passerà all'API stabile, ComposeContentTestRule e ComposeTestRule verranno modificati per estendersi da ComposeUiTest. (Ib4e90)

  • LineHeightBehavior è stato rinominato LineHeightStyle

  • LineVerticalAlignment è stato rinominato LineHeightStyle.Alignment

  • La ridenominazione di LineHeightTrim è stata rinominata LineHeightStyle.Trim

  • I valori predefiniti del costruttore da LineHeightStyle sono stati rimossi (I582bf, b/181155707)

  • Brush è stato aggiunto a TextStyle e SpanStyle per fornire un modo per disegnare testo con colori a gradiente. (I53869, b/187839528)

  • trimFirstLineTop, trimLastLineBottom attributi di LineHeightBehavior modificato in una singola enum: LineHeightTrim. LineHeightTrim hanno valori di 4 stati definiti da due booleani: FirstLineTop, LastLineBottom, entrambi e nessuno (Ifc6a5, b/181155707)

  • LineHeightBehavior aggiunto a TextStyle e ParagraphStyle. LineHeightBehavior consente di stabilire se applicare l'altezza della riga all'inizio e alla fine della prima riga. Definisce anche l'allineamento della linea nello spazio fornito da TextStyle(lineHeight).

    Ad esempio, è possibile ottenere un comportamento simile a quello di CSS definisce tramite LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).

  • Le configurazioni trimFirstLineTop, trimLastLineBottom funzionano correttamente solo quando includeFontPadding è impostato su false. (I97332, b/181155707)

  • Le funzioni PlatformParagraphStyle.lerp e PlatformSpanStyle.lerp sono state modificate per essere di primo livello (I9a268)

Correzioni di bug

  • La documentazione di PointerInputChange::copy ora indica correttamente che si tratta di una copia superficiale. (I182f5)
  • Supporta i puntini di sospensione quando l'altezza è limitata e non si adattano a tutte le righe di testo (Ie528c, b/168720622)
  • Opzione includeFontPadding predefinita attivata. È possibile disattivare includeFontPadding utilizzando l'attributo TextStyle.platformTextStyle. Nel prossimo futuro modificheremo il comportamento predefinito, tuttavia, fino a quel momento, questo ci consentirà di integrare meglio i miglioramenti dell'altezza della riga (aosp/2058653) e di risolvere i TextField problemi di ritaglio. (I01423, b/171394808)

Contributo esterno

  • Ora MouseInjectionScope.scroll(delta = someDelta) è invertito su Android se scorriamo in verticale (se delta è positivo, scorrerà verso il basso) (Ifb697, b/224992993)

Versione 1.2.0-alpha08

20 aprile 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha08. La versione 1.2.0-alpha08 contiene questi commit.

Modifiche alle API

  • Le funzioni pluralStringResource sono state contrassegnate come sperimentali per consentire all'evoluzione di supportare una migliore internazionalizzazione in futuro. (If24e4).
  • Paragrafo e MultiParagraph accettano ora il parametro Vincoli. Il superamento di Constraints.maxHeight è un'operazione nulla al momento, ma consentirà di fare alcuni calcoli in futuro, come l'ellisse in base all'altezza. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() ora accetta una classe personalizzata di tipo MutableSet che non consente l'aggiunta di nuovi elementi al suo interno. (Icd314)
  • PointerIcon ora è un'interfaccia @Stable (I9dafe)
  • Il consumo parziale (posizione OR giù) è stato deprecato in PointerInputChange. Puoi utilizzare consume() per applicare completamente la modifica. Puoi utilizzare isConsumed per determinare se qualcun altro ha utilizzato in precedenza la modifica.
  • PointerInputChange::copy() ora crea sempre una copia superficiale. Significa che le copie di PointerInputChange verranno consumate una volta che una delle copie è stata utilizzata. Se vuoi creare un elemento PointerInputChange non associato, utilizza invece il costruttore. (Ie6be4, b/225669674)
  • Attiva l'interoperabilità dello scorrimento nidificato tra Compose e View in direzione Compose > Vista. Ciò significa che un publisher principale di scrittura potrà ricevere delta di scorrimento nidificati da una visualizzazione scorrimento nidificata. (If7949, b/174348612)
  • Nuovo SemanticsProperty testTagsAsResourceId, che può essere utilizzato per rendere conforme Compose ai test di UIAutomator progettati per il sistema di visualizzazione. (I39c20)
  • Visualizza tutte le ponderazioni disponibili per i caratteri di sistema su Android quando utilizzi FontFamily.SansSerif. All'interno dell'API 21-28, verranno utilizzati nomi dei caratteri di fallback come Sans Serif-medium. Si tratta di una modifica del comportamento, in quanto in precedenza erano supportati solo i pesi 400 e 700 nell'API 21-28. (I380fe, b/156048036, b/226441992)
  • Gli insegnanti di paragrafo e multiparagrafo hanno riordinato gli argomenti posizionali prima di quelli facoltativi. (Idafaa)
  • AndroidFont ora utilizza typefaceLoader come parametro costruttore. (I2c971).

Versione 1.2.0-alpha07

6 aprile 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha07. La versione 1.2.0-alpha07 contiene questi commit.

Modifiche alle API

  • È stata aggiunta la nuova funzione Snapshot.withoutReadObservation { ... }. Consente agli utenti di eseguire la funzione lambda passata senza iscriversi alle modifiche dei valori di stato letti durante questo blocco. Potresti trovarlo utile nei casi d'uso quando vuoi trarre vantaggio dalla scrittura/lettura sicura in thread basata su snapshot, ma vuoi poter leggere il valore senza causare ricomposizioni o rimisurazioni non necessarie. (I9f365, b/214054486)
  • La proprietà di estensione consumeWindowInsets di ComposeView consente agli sviluppatori di disattivare il consumo di Android WindowInsets. In questo modo ComposeViews separati nella gerarchia possono essere applicati WindowInsets senza interferire tra loro. (I0ef08, b/220943142)
  • È stato aggiunto KeyboardType.Decimal come alternativa a Keyboard.Number per includere specificamente il separatore decimale nell'IME. (Iec4c8, b/209835363)
  • PointerEventType.Scroll e PointerEvent.scrollDelta sono ora API stabili (I574c5, b/225669674)
  • Attiva l'interoperabilità dello scorrimento nidificato tra View e Compose per le classi View che collaborano. Ciò significa che Compose ora è in grado di inviare delta di scorrimento a un elemento principale View (che collabora). (I5d1ac, b/174348612)
  • Aggiornamento di FontFamily.Resolver per integrare l'impostazione di accessibilità del testo in grassetto a livello di sistema (I6c1e7)
  • Font(AssetManager, String, ...) è deprecato, sostituito con Font(String, AssetManager, ...). Questa è un'API sperimentale. (I1c7a4)
  • Se vuoi, aggiungi un nuovo descrittore dei caratteri Font(DeviceFontFamilyName) per cercare i caratteri installati dal sistema durante le catene di fallback dei caratteri. (I30468, b/219754572)
  • È stata aggiunta una configurazione temporanea della compatibilità per includeFontPadding in TextStyle/ParagraphStyle. includeFontPadding può essere modificato tramite TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). Questa è un'opzione di configurazione temporanea per abilitare la migrazione e verrà rimossa. (If47be, b/171394808)
  • Aggiungi l'estensione GoogleFont.Provider.isAvailableOnDevice per ricevere assistenza per il debug. (I64e31)
  • Aggiungi il costruttore GoogleFont.Provider da utilizzare con @ArrayRes (Ic5ee1, b/225984280)
  • Compose GoogleFont ora si chiama Font(GoogleFont), mentre l'API rimane stabile. (I125f2)

Correzioni di bug

  • È stato aggiunto il controllo della pelucchi al materiale/scaffold per garantire che venga utilizzata la spaziatura interna interna (Ifb111)

Versione 1.2.0-alpha06

23 marzo 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha06. La versione 1.2.0-alpha06 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'azione semantica RequestFocus per richiedere lo stato attivo sul target attivabile. (I17b71)
  • Aggiornamento dell'analisi dei drawable vettoriali per supportare il mirroring automatico per invertire i contenuti di un VectorPainter se il layout corrente è RTL. (I79cd9, b/185760237)
  • I colori ombra/ambient sono stati aggiornati come parametri finali di Modifier.graphicsLayer per la compatibilità API (I3f864, b/160665122)

  • Sono state aggiunte implementazioni predefinite per il colore ombra/ambient in GraphicsLayerScope per garantire modifiche costanti all'API

  • È stata aggiunta l'ora dell'evento agli eventi RSB (Ief8ae)

  • FocusOrder è stata unita a FocusProperties e focusProperties() ora ha tutte le funzionalità di focusOrder(). FocusOrder e focusOrder() sono stati deprecati. focusOrder() che accetta un focusRequester deve essere sostituito con un modificatore focusRequester() in combinazione con focusProperties(). In questo modo i modificatori possono avere una separazione più forte dei problemi. (I601b7)

  • L'upgrade di RecyclerView e Compose ora comporta prestazioni di scorrimento molto migliori per le visualizzazioni RecyclerView con le visualizzazioni di Compose come elementi secondari.

  • Aggiungi ViewCompositionStrategy.Default come mezzo per recuperare la strategia predefinita integrata

  • Aggiungi ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer, che è la nuova strategia predefinita e gestisce correttamente i container in pool come RecyclerView. (If7282)

  • Aggiunto il supporto per l'annotazione delle classi di annotazioni con @Preview come primo passaggio per l'aggiunta della funzionalità Multipreview. Queste annotazioni potrebbero essere utilizzate per annotare metodi componibili o altre classi di annotazione, che potrebbero poi essere considerate annotate indirettamente con l'@Anteprima specificata. (I12eff)

  • Dispositivi di riferimento aggiunti all'elenco Dispositivi per @Anteprima (I071c9)

Correzioni di bug

  • Sono state aggiornate le API Vector Graphics per utilizzare l'annotazione componibile corretta @VectorComposable anziché @UiComposable (I942bc).
  • Rimuovi in linea incrociata da AnnotatedString.Builder.withStyle (If84d5)

Contributo esterno

  • Composer-ui: aggiungi le proprietà ambientShadowColor e spotShadowColor a GraphicsLayerScope (I1ba1a, b/160665122)
  • Le risorse plurali sono ora supportate tramite le funzioni pluralStringResource. (Ib2f23, b/191375123)

Versione 1.2.0-alpha05

9 marzo 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha05. La versione 1.2.0-alpha05 contiene questi commit.

Modifiche alle API

  • TextToolbar ora accetta gli argomenti lambda anziché ActionCallback. (Ib2eb9, b/197950089)
  • Nulla aggiornato nel core e appcompat per corrispondere a Tiramisu DP2 (I0cbb7)
  • L'interfaccia misurata ora espone la proprietà parentData (I3313f)
  • Modifier.onPlaced e l'interfaccia OnPlacedModifier sono ora stabile. (Ib5482)
  • Evviva! Ora la funzionalità di scrittura dell'animazione è supportata "Scala durata animazione" dalle Opzioni sviluppatore. (I5a4fc, b/161675988)
  • È stato aggiunto un modificatore di BeyondBoundsLayout locale (If8b51, b/184670295)
  • Testo: includeFontPadding ora è disattivato per impostazione predefinita. La vengono gestiti i problemi di ritaglio causati da includeFontPadding=false senza tagli nei testi lunghi. (I31c84, b/171394808)

Correzioni di bug

  • Ora ComposeContentTestRule.setContent lancerà un IllegalStateException se provi a impostare contenuti quando sono già presenti contenuti. (I888a5, b/199631334)
  • È stato corretto l'arresto anomalo causato dai contenuti degli appunti durante la lettura da appunti su Android. (I06020, b/197769306)
  • Migliora gli esempi di scorrimento RSB. (I6a596)

Contributo esterno

  • Aggiornamento per l'utilizzo di Kotlinx coroutines 1.6.0 (I3366d)

Versione 1.2.0-alpha04

23 febbraio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha04. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche alle API

  • Aggiunti ComposableTarget, ComposableTargetMarker e ComposableOpenTarget che consente di generare report sul tempo di compilazione del momento una funzione componibile è chiamata targeting di un'applicazione progettato per l'uso.

    Nella maggior parte dei casi le annotazioni possono essere dedotte del compilatore, quindi l'uso diretto di queste annotazioni dovrebbe essere . I casi che non possono essere dedotti includono la creazione e utilizzando un applicatore personalizzato, funzioni componibili astratte (come dell'interfaccia utente), campi o variabili globali lambda componibili (vengono dedotti parametri e variabili locali), o quando utilizzi ComposeNode o una funzione componibile correlata.

    Per applicazioni personalizzate, le funzioni componibili che richiamano ComposeNode o ReusableComposeNode devono aggiungere un ComposableTarget per la funzione e qualsiasi tipi di parametri lambda componibili. Tuttavia, è consigliabile per creare un'annotazione annotata con ComposableTargetMarker e poi l'annotazione contrassegnata anziché ComposableTarget direttamente. Un'annotazione componibile contrassegnato con ComposableTargetMarker equivale a ComposbleTarget con il nome completo dell'attributo come parametro dell'applicatore. Per un esempio dell'utilizzo ComposableTargetMarker vedi anroidx.compose.ui.UiComposable. (I38f11)

  • Font(resId, ...) ora supporta loadStrategy nell'API stabile. (Ief3d2)

  • Ora FontLoadingStrategy è un'API stabile. (I1ee35, b/174162090)

  • Supporto del caricamento asincrono dei caratteri nel testo (I77057, b/214587005)

  • Aggiungi l'API bridge per convertire l'elemento Font.ResourceLoader personalizzato in FontFamily.Resolver. (Ia0060)

Correzioni di bug

  • I valori FontFamily.Resolver specificati vengono passati alle sottocomposizioni come Popup.
  • I valori Font.ResourceLoader specificati vengono passati alle sottocomposizioni come Popup. (I48fa5)

Versione 1.2.0-alpha03

9 febbraio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha03. La versione 1.2.0-alpha03 contiene questi commit.

Modifiche alle API

  • notifyFocusedRect metodi in TextInputSession e TextInputService sono deprecati e non verranno chiamati. Utilizza le funzionalità di BringIntoViewRequester in alternativa. (Ia4302, b/192043120, b/216842427, b/178211874)
  • Data di presentazione: destroyDisplayListData sulla classe stub RenderNode (I1e659, b/216660268)
  • È stata aggiunta una nuova API che consente di premisurare gli elementi secondari di SubcomposeLayout che hai precomposto. (I857ea)
  • Aggiunta di movableContentOf che converte un componibile in un lambda che sposta lo stato e i nodi corrispondenti, in qualsiasi nuova posizione. Quando abbandona la chiamata precedente la composizione, lo stato viene temporaneamente conservato e, se viene richiesta una nuova alla lambda entra nella composizione, poi lo stato e nodi vengono spostati nella posizione della nuova chiamata. Se non sono presenti nuove chiamate aggiunto, lo stato viene rimosso definitivamente e ricorda che gli osservatori notificato.

    Se un lambda movableContentOf viene chiamato più volte nella stessa composizione, vengono creati un nuovo stato e nodi per ogni chiamata e, le chiamate escono dalla composizione e vengono attivate le nuove chiamate, lo stato viene spostato dalle prime chiamate in uscita a quelle in entrata nell'ordine in cui . Tutti gli stati non rivendicati dalle nuove chiamate vengono rimossi definitivamente. (Ib4850)

  • FontFamilyResolver è ora disponibile tramite LocalFontFamilyResolver.current

  • Hai aggiunto createFontFamilyResolver(context) e createFontFamilyResolver(context, coroutineScope) per crearne uno nuovo I resolver FontFamily non rientrano nell'utilizzo di scrittura.

  • Paragrafo e MultiParagrafo ora richiedono FontFamily.Resolver

  • TextLayoutResult.layoutInput.fontFamilyResolver ora contiene il resolver usato per questo layout, deprecato TextLayoutResult.layoutInput.resourceLoader perché non viene più utilizzata. (Id5a45, b/174162090)

  • Supporto per il caricamento asincrono e facoltativo dei caratteri, con opzione di riserva comportamento degli utenti. Questo percorso viene utilizzato da Text e TextField ed è esposto tramite Risolto con FontFamily

  • Supporto per il precaricamento dei caratteri tramite FontFamilyResolver.preload

  • FontFamilyResolver.setAsyncLoadContext consente di impostare il parametro contesto globale della coroutine utilizzato per caricare i caratteri asincroni. (I87fe8, b/174162090)

  • È stata aggiunta AndroidFont, una nuova API di basso livello per fornire nuovi tipi di descrittori di risorse per i caratteri su Android. Ad esempio, il caricamento di caratteri da un backend specifico per un'app, individuando facoltativamente i caratteri preinstallati sul dispositivo o caricando un carattere da una risorsa non fornita dal Fabbrica di caratteri.

  • L'API Font.ResourceLoaded è stata espansa per supportare le opzioni facoltative e asinc caricamento del tipo di carattere. Non è consigliabile che gli sviluppatori di applicazioni utilizzino questa dell'API. Per aggiungere nuovi tipi di caratteri, vedi AndroidFont.

  • La funzione di estensione di Font.AndroidResourceLoader consente costruzione di una Font.ResourceLoader al di fuori della composizione.

  • È stato aggiunto il parametro loadingStrategy ai caratteri basati sulle risorse per consentire Caricamento asincrono quando il carattere della risorsa fa riferimento al file XML dei caratteri scaricabili. (Ie5aea, b/174162090)

  • Il costruttore Typeface(FontFamily) è deprecato. Questo è stato utilizzata in precedenza per precaricare i caratteri, operazione che può richiedere fino a 10 secondi caratteri scaricabili. Con i caratteri scaricabili, questa chiamata potrebbe essere bloccata per 10 secondi. Usa invece FontFamilyResolver.preload.

  • L'API fontResource(FontFamily): Typeface è deprecata. Questo è stato utilizzata in precedenza per precaricare i caratteri, operazione che può richiedere fino a 10 secondi caratteri scaricabili. Usa invece FontFamilyResolver.preload (If8e7c, b/174162090)

  • Il costruttore SubcomposeLayoutState che accetta maxSlotsToRetainForReuse è ora deprecato. È disponibile invece un nuovo costruttore che accetta SubcomposeSlotReusePolicy: una nuova interfaccia che consente un controllo più granulare su quali slot devono essere conservati per il riutilizzo futuro. (I52c4d).

  • Espone le funzioni HSV e HSL in Color come non sperimentali tramite Google Cloud CLI o tramite l'API Compute Engine. Lo spazio colore Oklab è ora un'API pubblica. (I08fb6, b/180731008)

  • AndroidComposeTestRule.AndroidComposeStatement deprecato, che non è stata pensata per essere un'API pubblica e non ha fatto nulla per te in ogni caso. (Ibc46b)

  • Rinominazione della classe kt generata internamente (Ia0b9e, b/174162090)

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

  • Il caricatore globale dei caratteri ora si chiama FontFamilyResolver. (I4f773, b/174162090)

  • Usa un nuovo sistema di caricamento dei caratteri per desktop. (I9ce5c, b/174162090)

  • FontFamily.Resolver.resolve restituisce State<Any> (I4406c, b/174162090)

Correzioni di bug

  • I campi di testo verranno ora mantenuti sopra la tastiera quando attivo e appare la tastiera, quando la modalità di immissione ADJUST_PAN. (I8eaeb, b/190539358, b/192043120)
  • Il computer utilizza la composizione locale per FontFamily.Resolver
  • L'app desktop FontLoader è deprecata
  • Nuovo fabbrica di createFontFamilyResolver su computer (I6bbbb, b/174162090)
  • Il tipo di immissione da tastiera software non sfarfalla più durante la modifica lo stato attivo tra i campi di testo. (I1bf50, b/187746439)

Versione 1.2.0-alpha02

26 gennaio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha02. La versione 1.2.0-alpha02 contiene questi commit.

Modifiche alle API

  • Modifier.onRotaryScrollEvent() e Modifier.onPreRotaryScrollEvent() aggiunti per i dispositivi indossabili con un pulsante laterale rotante (I18bf5, b/210748686)
  • Aggiungi View.createLifecycleAwareRecomposer sperimentale dell'estensione (I0cde6)

Contributo esterno

  • PointerEvent.scrollDelta.y è ora invertito su Android (ora restituisce 1 anziché -1 se inclini la rotellina del mouse verso destra) (Ia9811)

Versione 1.2.0-alpha01

12 gennaio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.2.0-alpha01. La versione 1.2.0-alpha01 contiene questi commit.

Modifiche alle API

  • FontFamily.canLoadSynchronously deprecato. Questa proprietà ha nessun significato semantico. (Ica5ef)
  • Campo di identità aggiunto a CompositionData per la generazione ID invarianti in Layout Inspector. (Ic116e)
  • ID dispositivi Wear OS aggiunti all'elenco dei dispositivi in anteprima (I93232)

Aggiornamenti delle dipendenze

  • Ora dipende da Kotlin 1.6.10.

Versione 1.1

Versione 1.1.1

23 febbraio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.1.1. La versione 1.1.1 contiene questi commit.

Correzioni di bug

  • Correggi NullPointerException in androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • È stato corretto l'arresto anomalo causato dai contenuti degli appunti durante la lettura da appunti su Android. (I06020, b/197769306)
  • RTL fisso in LazyVerticalGrid (aosp/1931080, b/207510535)

Versione 1.1.0

9 febbraio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.1.0. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto stabile dell'effetto Overscroll per Android 12
  • Miglioramenti alle dimensioni del touch target
    • Tieni presente che, rispetto a Compose 1.0, i componenti Material amplieranno lo spazio di layout per rispettare le linee guida per l'accessibilità di Material relative alle dimensioni del touch target. Ad esempio, il touch target del pulsante si espanderà a una dimensione minima di 48 x 48 dp, anche se imposti le dimensioni del pulsante su un valore inferiore. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design e si ottiene un comportamento coerente se si combinano Visualizzazioni e Compose. Questa modifica garantisce inoltre che, quando crei la UI utilizzando i componenti Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
  • Supporto stabile per barra di navigazione
  • Consente di passare alcune API precedentemente sperimentali allo stato stabile
  • Supporto per versioni più recenti di Kotlin

Versione 1.1.0-rc03

26 gennaio 2022

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-rc03. La versione 1.1.0-rc03 contiene questi commit.

Correzioni di bug

  • Aggiornato per supportare Compose Material 1.1.0-rc03

Versione 1.1.0-rc01

15 dicembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-rc01. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug che causava la mancanza delle azioni di scorrimento per l'accessibilità (I7cbfb)
  • Ora anche SemanticsNodeInteraction.captureToImage() funzionerà anche se il criterio HardwareRenderer.isDrawingEnabled() è false, attivandolo per la durata della chiamata (Idf3d0)

Versione 1.1.0-beta04

1 dicembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-beta04. La versione 1.1.0-beta04 contiene questi commit.

Nuove funzionalità

  • Aggiornamento per essere compatibile con Kotlin 1.6.0

Modifiche alle API

  • È stato corretto il file null in androidx.core.view (I7078a, b/204917439)
  • Sono state aggiunte API sperimentali che consentono agli utenti di utilizzare PointerInputchange nel suo complesso o di verificare se è stato utilizzato o meno. (I2e59d).
  • Aggiunge il supporto per gli eventi rotellina di scorrimento del mouse nel livello dell'interfaccia utente. (Ia14eb, b/198214718)
  • Aggiungi sovraccarichi sperimentali di Modifier.composed che accettano le chiavi di confronto per l'uguaglianza e l'idoneità per saltare le ottimizzazioni. (Ice799, b/205851704)
  • Ora ComposeNotIdleException si estende da Exception di direttamente da Throwable. Ciò significa che le clausole catch che stavano catturando Exception potrebbero ora rilevare ComposeNotIdleException, dove prima non lo farebbero. (I9c217)

Correzioni di bug

  • È stato corretto il problema di spostamento degli handle del testo quando la visibilità dell'IME cambia. (I25f2e).

Versione 1.1.0-beta03

17 novembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-beta03. La versione 1.1.0-beta03 contiene questi commit.

Modifiche alle API

  • Aggiunto un nuovo modificatore Modifier.onPlaced per consentire posizionamento da osservare. Ulteriori modifiche a l'offset del modificatore secondario può essere calcolato in base la modifica di posizionamento osservata. (I558fd)
  • InjectionScope.flush() e InjectionScope.dispose(). Eliminazione di tutti gli eventi e smaltimento dei l'ambito ora si verifica alla fine del metodo perform*Input() chiamato come in precedenza. (I2bed8)
  • MultiModalInjectionScope.Touch e MultiModalInjectionScope.Mouse. Per inserire tocco e mouse per gesti multimodali, ora puoi utilizzare MultiModalInjectionScope.touch() e MultiModalInjectionScope.mouse(), entrambe accettano un token lambda che ha l'ambito del ricevitore di quella modalità. (Idde18)

Correzioni di bug

  • Il valore predefinito per durationMillis in TouchInjectionScope.swipeWithVelocity ora viene calcolato in modo che di scorrimento è possibile. (I19deb)

Versione 1.1.0-beta02

3 novembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-beta02. La versione 1.1.0-beta02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'API sperimentale BringIntoView che consente di inviare una richiesta ai genitori che scorrono per visualizzare un elemento (Ib918d, b/195353459)
  • Nuove API di animazione per gli strumenti di supporto. In particolare, per consentire l'analisi delle animazioni le loro configurazioni Transizioni. (I4116e)

Contributo esterno

  • Modifier.pointerHoverIcon aggiunto (I95f01)

Versione 1.1.0-beta01

27 ottobre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-beta01. La versione 1.1.0-beta01 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'API BringIntoView sperimentale che consente di inviare una richiesta ai genitori affinché scorrano per visualizzare un elemento (Ib918d, b/195353459)
  • Nuove API di animazione per gli strumenti di supporto. In particolare, per consentire l'analisi delle animazioni le loro configurazioni Transizioni. (I4116e)

Versione 1.1.0-alpha06

13 ottobre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha06. La versione 1.1.0-alpha06 contiene questi commit.

Modifiche alle API

  • Rimuovi ExperimentalComposeUiApi da ViewRootForInspector e LayoutInfo.ownerViewId (I5c2e3)
  • È stato aggiunto un sovraccarico senza figlio per Layout, con una maggiore efficienza (Ib0d9a)
  • InternalCompilerApi rimosso dai metodi Composer che sono deve essere denominato cross-module (I1aa0b)
  • SemanticsNodeInteraction.performSemanticsAction ora torna il SemanticsNodeInteraction su cui è stata chiamata la funzione. (I9e5db)
  • È stato aggiunto LocalInputModeManager ComposeLocal per rilevare TouchMode/NonTouchMode. (I6a83c, b/175899786)
  • Elemento viewConfiguration: ViewConfiguration aggiunto alla raccolta LayoutInfo per consentire ai consumatori di ottenere il valore corretto per cose come la pressione prolungata timeout. (I76ca6)
      .
    • Elemento viewConfiguration: ViewConfiguration aggiunto a InjectionScope per consentire ai test di regolare l'inserimento di input in base a come il timeout della pressione prolungata o la pressione del tocco.
    • La durata predefinita della pressione prolungata e del doppio tocco è stata modificata per entrambe input tocco e del mouse in base ai valori in InjectionScope.viewConfiguration.
  • Implementazione di ExposedDropdownMenu in base a ExposedDropdownMenuBox con TextField e DropdownMenu all'interno (If60b2)
  • IgnoraOnOutsideClick è stato aggiunto a PopupProprietà, in sostituzione di IgnoraOnClickOutside che è stato ritirato. La nuova proprietà riceve la posizione del clic e i limiti di ancoraggio, in modo da avere un controllo più preciso sulla necessità di richiamare onIgnoraRequest o meno. Ad esempio, questo può essere utile per evitare che gli ancoraggi vengano chiusi con i tocchi.
    • updateAndroidWindowManagerFlags è stato aggiunto a PopupProperties, che offre un controllo di basso livello sui flag trasmessi dal popup ad Android WindowManager. Il parametro di lambda saranno i flag calcolati dai valori PopupProperties che generano i flag WindowManager: ad es. attivabile. Il risultato di lambda saranno i flag finali che verranno passati ad Android WindowManager. Per impostazione predefinita, updateAndroidWindowManagerFlags lascia invariati i flag calcolati dai parametri. Questa API deve essere utilizzata con cautela, solo nei casi in cui il popup abbia requisiti di comportamento molto specifici. (I6e9f9)
  • Recomposer.state è stato deprecato e sostituito da Recomposer.currentState per cambiare il proprio tipo in StateFlow (Ic2ab3, b/197773820)
  • flush() e dispose() aggiunti a InjectionScope. Usale quando vuoi fare svuotare tutti gli eventi in coda immediatamente e quando che vogliamo eliminare, rispettivamente. (Ifb73a).
  • Aggiunto performScrollToNode(matcher: SemanticsMatcher) che fa scorrere un contenitore scorrevole fino ai contenuti corrispondenti un determinato matcher. (Ic1cb8)
  • Ora InjectionScope implementa Density, consentendoti di: puoi convertire facilmente tra px e dp in performTouchInput e negli amici. (I8fe1f)

Correzioni di bug

  • AndroidView ora propaga LocalLifecycleOwner e Local SavedStateRegistryOwner nella visualizzazione tramite ViewTreeLifecycleOwner e ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
  • Risolvere i problemi relativi alla gestione dello scorrimento da parte di Wear OS allo scopo di ignorare la barra di sfioramento di WearOS. (I9387e)
  • L'intervallo di tempo predefinito tra gli eventi di input inseriti è stato è cambiato da 10 ms a 16 ms. Questo potrebbe modificare il risultato dei test che eseguono gesti di input, ad esempio uno scorrimento specifico. (I829fd)

Versione 1.1.0-alpha05

29 settembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha05. La versione 1.1.0-alpha05 contiene questi commit.

Modifiche alle API

  • Aggiunto il supporto per le comunicazioni tra i modificatori (Id5467, b/198826874)
  • Sono stati aggiunti puntatori storici sperimentali a PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
  • density: Density e layoutDirection: LayoutDirection aggiunti a LayoutInfo. Ciò consente ai consumatori di LayoutInfo per interpretare le dimensioni e la posizione esposte in LayoutInfo correttamente. (I002f1)
  • Aggiunto il supporto sperimentale per l'inserimento di eventi del mouse. Utilizza le funzionalità di performMouseInput per iniziare a inviare eventi del mouse o inviare eventi del mouse tramite la proprietà Mouse di MultiModalInjectionScope durante una gesto di immissione multimodale con performMultiModalInput. Consulta: MouseInjectionScope per la documentazione dell'API disponibile. (Iaa4a8, b/190493367)

Correzioni di bug

  • Risolto il supporto dell'accessibilità per gli elementi scorrevoli (sia lenti sia lenti non lazy) rispetto allo scorrimento (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity migliorato. Adesso accetta una gamma più ampia di variabili di input e suggerirà modifiche alla input se non è possibile creare un gesto di scorrimento (I40fbe, b/182477143)

Versione 1.1.0-alpha04

15 settembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha04. La versione 1.1.0-alpha04 contiene questi commit.

Modifiche alle API

  • PointerEvent ora ha un PointerEventType per supportare gli eventi di passaggio del mouse. (I091fa)
  • Consenti agli elementi secondari di accettare l'input del puntatore al di fuori di limiti di input del puntatore padre. I genitori possono intercettare tali chiamate con una proprietà PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
  • performGesture e GestureScope deprecati, che hanno è stato sostituito da performTouchInput e TouchInjectionScope. (Ia5f3f, b/190493367)
  • Elemento touchBoundsInRoot aggiunto alla raccolta SemanticsNode che include le dimensioni minime del touch target affinché gli sviluppatori possono garantire che i touch target soddisfino i requisiti minimi di accessibilità. (I2e14b, b/197751214)
  • Ripeti l'implementazione dell'inspectable (I927bc, b/191017532)
  • Nome del parametro dell'inspectable modificato in modo che corrisponda al testo composto (I3a482, b/191017532)
  • performTouchInput e TouchInjectionScope sono stati introdotti come sostituzione per performTouchInput e TouchInjectionScope, registrazione la strada giusta per altre modalità (come il mouse).

    TouchInjectionScope ha gli stessi metodi di GestureScope, con il valore tranne movePointerTo e movePointerBy, che sono state rinominata in updatePointerTo e updatePointerBy. Tutti gli altri metodi sono le stesse.

    Il comportamento di TouchInjectionScope è quasi identico a GestureScope, con due piccoli dettagli:

    1. Quando si invia un evento negativo mentre i cursori erano stati spostati senza l'invio di un evento di spostamento (in altre parole, updatePointerTo() è stato ma non move(), seguito dal nome down()), la precedente l'implementazione fa avanzare l'orario dell'evento e invia un evento di spostamento prima di inviare l'evento "down". La nuova implementazione invia comunque sposta evento, ma non fa avanzare l'orario in questa specifica in questo scenario.
    2. Durante l'invio di un evento up mentre i cursori erano stati spostati senza inviando un evento di spostamento (simile a quanto sopra), l'implementazione precedente avanza l'orario dell'evento e invia un evento di spostamento prima di inviare il . La nuova implementazione non fa né le nuove posizioni i puntatori verranno visualizzati solo tramite l'evento "up".

    Infine, TouchInjectionScope introduce un nuovo metodo currentPosition(pointerId: Int) per ottenere la posizione corrente un determinato puntatore. (If1191, b/190493367)

Correzioni di bug

  • Consenti al clip di estendere i limiti del touch target oltre la regione del clip per scopi minimi del touch target. (I43e10, b/171509422)
  • Sui dispositivi Android 12 è stato aggiunto il supporto per l'overscroll allungato. (Iccf3c, b/171682480)

Versione 1.1.0-alpha03

1° settembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha03. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Compose 1.1.0-alpha03 è stata aggiornata per dipendere da Kotlin 1.5.30. (I74545)

Modifiche alle API

  • È stato aggiunto Modifier.inspectable per il wrapping di altri modificatori. (I1909b, b/191017532)
  • API BlurredEdgeTreatment aggiunta per semplificare la sfocatura dei casi d'uso combinazioni di flag di clip comunemente utilizzate e TileModes. La maggior parte dei casi d'uso prevede Consentire il rendering di contenuti sfocati al di fuori dei limiti dei contenuti originali e sfocando le regioni al di fuori di questi limiti con contenuti neri trasparenti o con contenuti tagliati ai limiti dei contenuti, campionando il bordo più vicino per kernel di sfocatura che si estendono oltre i contenuti limiti. (I6b4b7, b/166927547)
  • Aggiunto il supporto per RenderEffect in Compose per desktop. Introduzione di OffsetEffect e il modificatore di sfocatura come modo semplice introduce effetti visivi sfocati in una parte della gerarchia di composizione. (I0f6aa, b/166927547)
  • Introduzione dell'API RenderEffect che possono essere configurati facoltativamente un Modifier.graphicsLayer per modificare i contenuti del livello stesso. Questo può essere utilizzato per sfocare i contenuti di un e elementi componibili secondari all'interno di una composizione nella gerarchia. (I47c4d, b/166927547)
  • AwaitPointerEventScope ora è withTimeout() e conTimeoutOrNull() (I507f0, b/179239764, b/182397793)
  • Sono state aggiunte le dimensioni minime del touch target a ViewConfiguration per l'utilizzo nella semantica e nell'input del puntatore per garantire l'accessibilità. (Ie861c).
  • Aggiungere il supporto TileMode.Decal È utile per definire per gli effetti di rendering basati sulla sfocatura. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction e hasScrollToKeyAction sono ora API stabili (I142ae, b/178483889)
  • Aggiunto un metodo di test per ottenere i limiti troncati. (I6b28e)

Correzioni di bug

  • Metodo isBounded rimosso di BluredEdgeTreatment a favore di controllare esplicitamente se la forma è nullo. (I85d68)

Versione 1.1.0-alpha02

18 agosto 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha02. La versione 1.1.0-alpha02 contiene questi commit.

Modifiche alle API

  • PointerEvent ora supporta la lettura stato del pulsante del mouse e stato del tasto di modifica della tastiera. (I6310c, b/180075467)
  • Per i gesti inseriti ora l'ora di MainTestClock viene utilizzata come una fonte attendibile per il tempo. L'ora attuale per gli eventi inseriti in performGesture verrà inizializzato in base all'ora attuale del valore MainTestClock. (Ifb364, b/192064452)
  • Costruttore DpRect(DpOffset, DpSize) aggiunto (I2cf16, b/194219828)
  • È stata aggiunta la classe DpSize (I7abb1, b/194219828)

Correzioni di bug

  • File XML Vector Graphics aggiornato analizza per supportare ColorStateLists come proprietà della tinta radice su VectorDrawables. (I86915, b/195668138)

Versione 1.1.0-alpha01

4 agosto 2021

Viene rilasciato androidx.compose.ui:ui-*:1.1.0-alpha01. La versione 1.1.0-alpha01 contiene questi commit.

Modifiche alle API

  • RelocationRequester.bringIntoView ora accetta un rettangolo come parametro che ci consente di visualizzare una parte di un componibile (Ice2c5, b/194330245)
  • AnimatedImageVector e le API correlate si trovano ora nel nuovo Modulo androidx.compose.animation:animation-graphics. (I60873)
  • Aggiunto un modificatore sperimentale per gestire le richieste di trasferimento. (I65a97, b/178211874)
  • Introduzione dell'API BrushPainter per supportare il disegno di un pennello arbitrario all'interno di un pittore, come ColorPainter

    Aggiornamento dell'API Brush in modo che abbia una dimensione intrinseca parametro oggetto della query in BrushPainter (Ia2752, b/189466433)

  • Metodo DrawScope#drawImage aggiornato che utilizza i rect di origine e di destinazione per utilizzare un valore di FiltraQualità facoltativo . Ciò è utile per Pixel che deve essere pixelata quando viene ridimensionato per la grafica basata su pixel. BitmapPainter + Immagine componibile aggiornati per utilizzare anche un'istanza di filtro facoltativa parametro (Ie4fb0, b/180311607)

  • Aggiunto il metodo GestureScope.advanceEventTime per offrire di più controllo sulla tempistica degli eventi con un gesto (Ibf3e2)

Correzioni di bug

  • Per supportare meglio il concatenamento disegna modificatori, assicurati che l'implementazione Modifier.paint disegna contenuti. In precedenza, Modifier.paint era previsto per un nodo foglia in la catena di modificatori, tuttavia, così facendo si impedisce in modo che non sia configurato su un container componibile (ad es. box) o aggiungere altre decorazioni come Modifier.paint().border(). Utilizzando Modifier.paint richiamare drawContent dopo aver disegnato i contenuti pittore, abbiamo un comportamento più coerente in termini di comportamento con il pattern del modificatore. (Ibb2a7, b/178201337, b/186213275)
  • Le finestre di dialogo ora seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per ignorare questo comportamento. (Iffaed, b/192682388)
  • InfiniteAnimationPolicy spostato in :compose:ui (I5eb09, b/160602714)
  • Lo scorrimento tramite azioni semantiche per elenchi lenti e componenti di scorrimento regolare è ora animato (Id9066, b/190742024)

Versione 1.0

Versione 1.0.5

3 novembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.5. La versione 1.0.5 contiene questi commit.

Correzioni di bug

  • È stato corretto un arresto anomalo del monitoraggio delle istanze derivateStateOf. (aosp/1792247)

Versione 1.0.4

13 ottobre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.4. La versione 1.0.4 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornamento in base a Kotlin 1.5.31 eseguito

Versione 1.0.3

29 settembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.3. La versione 1.0.3 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornamento in base a Kotlin 1.5.30 eseguito

Versione 1.0.2

1° settembre 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.2. La versione 1.0.2 contiene questi commit.

Aggiornamento eseguito per supportare la release Compose 1.0.2. Compose 1.0.2 è ancora compatibile con Kotlin 1.5.21.

Versione 1.0.1

4 agosto 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.1. La versione 1.0.1 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornamento eseguito in modo da dipendere da Kotlin 1.5.21.

Versione 1.0.0

28 luglio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0. La versione 1.0.0 contiene questi commit.

Funzionalità principali di 1.0.0

Questa è la prima release stabile di Compose. Per ulteriori dettagli, consulta il blog ufficiale di Compose Release.

Problemi noti

  • Se utilizzi Android Studio Bumblebee Canary 4 o AGP 7.1.0-alpha04/7.1.0-alpha05, potresti riscontrare il seguente arresto anomalo:

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

    Per risolvere il problema, aumenta temporaneamente il valore minSdkVersion nel file build.gradle, impostandolo su 24 o più. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP 7.1. (b/194289155)

Versione 1.0.0-rc02

14 luglio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-rc02. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • Le finestre di dialogo ora seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per ignorare questo comportamento. (Iffaed, b/192682388)

Versione 1.0.0-rc01

1 luglio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-rc01. La versione 1.0.0-rc01 contiene questi commit.

Nuove funzionalità

  • Suddividi il modulo di strumenti UI in ui-tooling e ui-tooling-preview (Iefa28, b/190649014)

Modifiche alle API

  • FocusManager#moveFocusIn e FocusManager#moveFocusOut sperimentali deprecati (I227d7, b/170154986, b/186567354, b/168510304)
  • Canvas ora supporta un parametro contentDescription per accessibilità. (Ib547c).
  • useDefaultMaxWidth in PopupProperties è stato rinominato usePlatformDefaultWidth. (I05710)
  • Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
  • Aggiunto il supporto sperimentale per i colori HSV e HSL rappresentazioni grafiche. (Id7cf8, b/180731008)

Cambiamenti del comportamento

  • Scrivi @Preview ora fornisce un LocalActivityResultRegistryOwner che ti consente per visualizzare l'anteprima dei componenti componibili che utilizzano API come rememberLauncherForActivityResult() che dipendono esistenti per quel proprietario. (Ib13d1, b/185693006)
  • Scrivi @Preview ora fornisce un LocalOnBackPressedDispatcherOwner che ti consente per visualizzare l'anteprima dei componenti componibili che utilizzano API come BackHandler che dipendono da quel proprietario. (Ia1c05, b/185693006)

Correzioni di bug

  • InfiniteAnimationPolicy spostato in androidx.compose.ui:ui (I5eb09, b/160602714)
  • L'elemento AnimatedImageVector è stato temporaneamente rimosso per modificare la struttura del modulo. (I41906, b/160602714)

Versione 1.0.0-beta09

16 giugno 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta09. La versione 1.0.0-beta09 contiene questi commit.

Modifiche alle API

  • Modifica enum Role e LiveRegionMode in classi in linea con costruttore privato (Id1890)
  • KeyboardCapitalization viene convertita in una classe in linea. (Id5a1c)
  • Modifica HapticFeedbackType in una classe in linea. (I255ec)
  • Modifier.pointerInteropFilter è @ExperimentalComposeUiApi. (Iede6c)
  • TextAllinea, FontSynthesis e TextDirection sono ora in linea . (I212fe)
  • TextOverflow è cambiato in una classe in linea. (I433af)
  • FontStyle è ora una classe in linea. (I9e48b)

Correzioni di bug

  • Le costanti chiave sono @ExperimentalComposeUiApi per il momento. Consumo può dichiarare le costanti private prima della stabilizzazione. (Ia5d48)
  • Ora è possibile eseguire i test di Compose su Robolectric. Le seguenti Sono state identificate delle limitazioni:
    • Non esiste una bitmap nativa, quindi ImageBitmap() rimanda a un NullPointerException.
    • Non è presente alcun disegno, quindi captureToImage() attenderà a tempo indeterminato il successivo passaggio di estrazione (ovvero si blocca).
    • Poiché non è stato caricato alcun carattere, l'eventuale testo verrà misurato in modo errato. Tutti hanno un'altezza fissa di 20 px e una larghezza di 1 px.
    • ComposeTestRule.waitUntil {} non esegue il thread principale mentre è in attesa, il che lo rende di fatto uguale a ComposeTestRule.mainClock.advanceTimeUntil {}. Si prevede che in futuro verranno identificate altre limitazioni. (I284fa)

Regole del profilo aggiunte

In questa release vengono aggiunte regole di profilo ai seguenti moduli di scrittura (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.layout-base
  • androidx.compose.material
  • androidx.compose.materiale-eco
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • testo androidx.compose.ui.
  • testo androidx.compose.ui.
  • androidx.compose.ui.unit
  • androidx.compose.ui.util,

Che cosa sono le regole del profilo?

  • Le regole del profilo per una libreria vengono specificate in un file di testo baseline-prof.txt situato in src/main o nella directory equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza con metodi o classi nella libreria. La sintassi per queste regole è un soprainsieme del formato del profilo ART leggibile che viene utilizzato quando si utilizza adb shell profman --dump-classes-and-methods .... Queste regole possono avere come target metodi o classi.

  • Una regola del metodo avrà il seguente pattern:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Una regola della classe avrà il seguente pattern:

    <CLASS_DESCRIPTOR>
    
  • Qui <FLAGS> rappresenta uno o più caratteri H, S e P per indicare se questo metodo deve essere contrassegnato o meno come "A caldo", "Avvio" o "Post avvio".

  • <CLASS_DESCRIPTOR> è il descrittore della classe a cui appartiene il metodo scelto come target. Ad esempio, la classe androidx.compose.runtime.SlotTable avrà un descrittore Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> è la firma del metodo e include il nome, i tipi di parametri e i tipi restituiti del metodo. Ad esempio, il metodo fun isPlaced(): Boolean su LayoutNode ha la firma isPlaced()Z.

  • Questi pattern possono avere caratteri jolly (**, * e ?) in modo da avere una singola regola che comprende più metodi o classi.

A cosa servono le regole?

  • Un metodo con il flag H indica che si tratta di un metodo "hot" e devono essere compilati in anticipo.

  • Un metodo con il flag S indica che si tratta di un metodo chiamato all'avvio e che deve essere compilato in anticipo per evitare i costi della compilazione e dell'interpretazione del metodo al momento dell'avvio.

  • Un metodo con il flag P indica che si tratta di un metodo che viene richiamato dopo l'avvio.

  • Una classe presente in questo file indica che viene utilizzata durante l'avvio e deve essere preallocata nell'heap per evitare il costo del caricamento della classe.

Come funziona?

  • Le librerie possono definire queste regole che verranno pacchettizzate in artefatti AAR. Quando viene creata un'app che include questi elementi, queste regole vengono unite e le regole unite vengono utilizzate per creare un profilo ART binario compatto specifico per l'app. ART può quindi sfruttare questo profilo quando l'app viene installata sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione al fine di migliorare le prestazioni dell'applicazione, in particolare la prima esecuzione. Tieni presente che ciò non avrà alcun effetto sulle applicazioni di cui è possibile eseguire il debug.

Versione 1.0.0-beta08

2 giugno 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta08. La versione 1.0.0-beta08 contiene questi commit.

Modifiche alle API

  • L'enum NestedScrollSource è sostituita da una classe in linea. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true) è stato rinominato FocusManager.clearFocus(force = true) (Ia0c41)
  • Utilizzo di enum sottoposto a refactoring in classi in linea per evitare esaustivi quando affermazioni vengono aggiunti nuovi valori enum. (I2b5eb)
  • Rimuovi @ExperimentalComposeUiApi da PopupProperties. (I01fa6)
  • PointerType è stato modificato da enum a classe in linea (If5058)
  • ContentDescription e le proprietà semantiche del testo non sono più valori singoli ma elenchi. In questo modo è possibile unirli così come sono di concatenazioni. Abbiamo anche fornito API di test migliori per utilizzare questi modifiche (Ica6bf, b/184825850)
  • Modifier.focusModifier() è deprecato e sostituito da Modifier.focusTarget() (I6c860)
  • Modifier.onSizeChanged() e Modifier.onGloballyPositioned() non sono più funzioni in linea (I727f6, b/186109675)
  • L'enum KeyboardType è sostituita da una classe in linea. (I73045, b/187055290)
  • Enum FocusState sostituita con un'interfaccia FocusState (ICC1a, b/187055290)
  • L'enum ImeAction è sostituita da una classe in linea. (I18be5, b/187055290)
  • PlaceholderVerticalAlign viene convertito in una classe in linea. (If6290)
  • TextUnitType è ora una classe in linea. (I4cba9)
  • Le funzioni di AnnotatedString.withAnnotation sono ora ExperimentalTextApi anziché ExperimentalComposeApi. (I0cd0a)
      .
    • Il costruttore TextUnit con TextUnitType è ora ExperimentalTextApi anziché ExperimentalComposeApi.

Correzioni di bug

  • È stato corretto il bug introdotto nella versione beta07 in cui gli elementi LazyColumn/Row venivano visualizzati parzialmente dopo lo scorrimento (I8c9ac, b/188566058)
  • Ora detectDragGesures, detectVerticalGestures e detectHorizontalGestures utilizzeranno automaticamente il cambio di posizione, senza dover chiamare change.consumePositionChange nei callback onTrascina (I42fc4, b/185096350, b/187320697)
  • LayoutModifiers che forniscono le linee di allineamento sono stati fissi. È stato corretto un bug che impediva la nuova misurazione dell'elemento principale dopo il cambiamento delle linee di allineamento degli elementi secondari. (I4401f, b/174315652)
  • Modifier.onGloballyPositioned() è stato modificato per indicare le coordinate di questo modificatore nella catena di modificatori, non le coordinate del layout dopo l'applicazione di tutti i modificatori. Ciò significa che ora l'ordine dei modificatori influisce sulle coordinate indicate. (Ieb67d, b/177926591)

Versione 1.0.0-beta07

18 maggio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta07. La versione 1.0.0-beta07 contiene questi commit.

Modifiche alle API

  • È stata aggiunta l'interfaccia ViewRootForInspector per l'utilizzo in inspector (Ib70df)
  • SubcomposeLayoutState ora supporta l'impostazione del conteggio degli slot riutilizzabili. Il layout manterrà attivi fino a questo numero di slot anziché eliminarli per poter riutilizzare l'area la prossima volta che ne avremo bisogno di una nuova (Ieb981)
  • L'enum KeyEventType è sostituito da una classe in linea. (Id670a, b/187055290)
  • L'enum FocusDirection è sostituita da una classe in linea. (Ib6d03, b/187055290, b/184086802)
  • Introduce la possibilità di aumentare lo stato SubcomposeLayout che ti consente di precomporre i contenuti in slotId richiesto, il che consentirebbe il superamento della misura successiva poiché, una volta provato a eseguire la sottocomposizione con slotId specificato la prossima volta, non sarà necessaria alcuna composizione. (I42580, b/184940225)
  • Punto di manipolazione di selezione clip aggiunto (Iff80d, b/183408447)
  • Sono state rimosse le API non utilizzate relative al supporto Layout Inspector. (I2ac78).

Correzioni di bug

  • LazyColumn/Row ora manterrà attivi (non eliminati) fino a un massimo di 2 elementi visibili in precedenza (non eliminati) anche quando l'utente scorre già la pagina verso l'esterno. In questo modo il componente può riutilizzare le sottocomposizioni attive quando dovremo comporre un nuovo elemento che migliora le prestazioni di scorrimento. (Ie5555).
  • TextGeomerticTransform e TextDecoration su AnnotatedString verranno applicate come specificato. (I61900, b/184760917)

Versione 1.0.0-beta06

5 maggio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta06. La versione 1.0.0-beta06 contiene questi commit.

Modifiche alle API

  • Risolvi i conflitti con il gesto di navigazione (I1145e)
  • @ComposeCompilerApi non più @RequiresOptIn (Iab690)
  • Sono state aggiunte le API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017)
  • È stato aggiunto SemanticsActions.ScrollToIndex per scorrere un elenco con di elementi indicizzati a un elemento con un determinato indice e SemanticsProperties.IndexForKey per ottenere l'indice di un elemento di un elenco con oggetti chiave. Entrambe le azioni sono implementate da LazyList.
    • Aggiunto SemanticsNodeInteraction.performScrollToIndex che scorre un elenco fino all'indice specificato SemanticsNodeInteraction.performScrollToKey che scorre un elenco fino a con la chiave specificata. (I4fe63, b/178483889, b/161584524)
  • proprietarioViewId aggiunto a GraphiclayerInfo (I19f62)
  • Aggiunta di sovraccarichi di Font() per caricare i caratteri dagli asset, File e FileDescriptor (I5d382)
  • È stata aggiunta l'API Accessibility error che consente di contrassegnare un nodo contenente input non valido (I12997, b/180584804, b/182142737)
  • Sono stati aggiunti Font() sovraccarichi per caricare i caratteri dagli asset, File e FileDescriptor (I43007)
  • Supporto per il salvataggio di AnnotatedString in TextFieldValue.Saver. Data di aggiunta: addTtsAnnotation e le funzioni di utilità withAnnotation AnnotatedString.Builder (I8cbdc, b/178446304)
  • Aggiunta funzione costruttore TextUnit TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

Versione 1.0.0-beta05

21 aprile 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta05. La versione 1.0.0-beta05 contiene questi commit.

Modifiche alle API

  • FocusManager.moveFocus(In) e FocusManager.moveFocus(Out) sperimentali aggiunti (Ic5534, b/183746743)
  • È stata aggiunta l'API performTextInputSelection sperimentale (I2dcbb, b/178510628)
  • L'interfaccia InputEventCallback è deprecata. Non è stato possibile utilizzare l'interfaccia API pubblica; e non ne abbiamo fatto uso nella le API nel tuo codice. (I34a02, b/184003208)
  • TextLayoutResult/createTextLayoutResult deprecato personalizzata. Si tratta di una funzione pubblica inutilizzata che è stata aggiunta per i test. La funzione non esegue alcuna operazione utilizzabile per Scrivere API di testo. La funzione è stata deprecata e verrà in un secondo momento. (I80413)

Correzioni di bug

  • Corretto ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD, accessibilityActionScrollLeft accessibilityActionScrollUp accessibilityActionScrollRight e accessibilityActionScrollDown azioni di scorrimento per l'accessibilità. Invece di scorrere fino alla fine scorrevoli, ora scorrerà di una schermata nella direzione data. (Ieccb0)
  • I file AndroidManifest di ui-test-manifest e ui-tooling-data sono ora compatibili con Android 12 (I6f9de, b/184718994)

Versione 1.0.0-beta04

7 aprile 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta04. La versione 1.0.0-beta04 contiene questi commit.

Modifiche alle API

  • Rinomina hideSoftwareKeyboard e showSoftwareKeyboard su SoftwareKeyboardController rispettivamente a hide() e show().
    • Offrire l'interfaccia completa di ComposeLocal per LocalSoftwareKeyboardController, che consente di impostarlo (in particolare utile nei test) (I579a6)
  • È stata aggiunta l'API LiveRegion Accessibility. Se il nodo è contrassegnato come regione attiva, i servizi di accessibilità invia automaticamente una notifica all'utente riguardo alle modifiche (Idcf6f, b/172590946)
  • Viene introdotto TextOverflow.Visibile. (Ic8f89)

Correzioni di bug

  • È stato risolto il problema a causa del quale gli elementi di LazyColumn/LazyRow situati sui bordi venivano posizionati in modo errato dopo lo scorrimento rapido (Ie4d13, b/183877420)
  • AndroidViewBinding ora rimuove correttamente frammenti gonfiati tramite FragmentContainerView quando AndroidViewBinding viene rimosso dalla scrittura nella gerarchia. (Ib0248, b/179915946)
  • Ora AndroidViewBinding nidifica correttamente frammenti gonfiati tramite FragmentContainerView quando ComposeView si trova all'interno di un Fragment, problemi con il salvataggio e il ripristino dello stato di questi di grandi dimensioni. (I70eb0, b/179915946)
  • La funzionalità di scrittura di ViewBinding ora dipende Frammento 1.3.2 e ora mostra sempre frammenti gonfiati FragmentContainerView dopo le modifiche alla configurazione. (I0743d, b/179915946)

Versione 1.0.0-beta03

24 marzo 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta03. La versione 1.0.0-beta03 contiene questi commit.

Modifiche alle API

  • Controllo differito delle dipendenze ViewTree di ComposeView (I8dbbf, b/182466548)
  • Parametri facoltativi startX/endX e startY/endY aggiunti alle funzioni swipeUp/swipeDown/swipeLeft/swipeRight in GestureScope. (I49e2d, b/182063305)

Versione 1.0.0-beta02

10 marzo 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta02. La versione 1.0.0-beta02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta una nuova composizione locale in LocalSoftwareKeyboardController API per sostituire la precedente interfaccia SoftwareKeyboardController su Campo di testo. (I5951e, b/168778053)
  • È stata aggiunta una nuova composizione locale in LocalSoftwareKeyboardController API per sostituire la precedente interfaccia SoftwareKeyboardController su Campo di testo. (I84472, b/168778053)
  • Sono stati rimossi i seguenti SemanticsMatcher:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • Il seguente elemento (SemanticsMatchers) è stato contrassegnato come @SperimentaleAPI:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (Ia600c)
  • Sono stati aggiunti i seguenti SemanticsMatcher:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (I2f502)

Correzioni di bug

  • Applicare restrizioni sull'uso pubblico delle API sperimentali (I6aa29, b/174531520)
  • androidx.compose.ui:ui non dipende più da AppCompat o Fragment. Se usi ComposeView nella tua applicazione e utilizzi Fragment e/o AppCompat, assicurati di usare AppCompat 1.3+ / Fragment 1.3+: queste versioni sono necessarie per impostare correttamente i proprietari del ciclo di vita e dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)
  • Correzione del problema di rememberSaveable { mutableStateOf(0) } non funzionante quando veniva utilizzato all'interno di una destinazione di scrittura durante la navigazione. (I1312b, b/180042685, b/180701630)
  • È stata aggiunta una nuova composizione locale in LocalSoftwareKeyboardController API per sostituire la precedente interfaccia SoftwareKeyboardController su Campo di testo. (I658b6, b/168778053)
  • Risoluzione rara di NoSuchElementException in ComposeRootRegistry tearDownRegistry() (Iddce1)

Versione 1.0.0-beta01

24 febbraio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-beta01. La versione 1.0.0-beta01 contiene questi commit.

Questa è la prima versione di Compose 1.0.0 Beta.

Modifiche alle API

  • Il callback onStart è stato aggiunto a detectDragGestures (I67269, b/179995594)
  • I modificatori per la taglia intrinseca non sono più sperimentali. (I15744)
  • MeasureBlocks è stato rinominato in MeasurePolicy e si è trasformato in un'interfaccia divertente. Le API Layout sono state aggiornate / semplificate per utilizzare MeasurePolicy. (Icab48, b/167662468, b/156751158)
  • InteractionState è stato sostituito con [Mutable]InteractionSource
      .
    • Le interfacce sono responsabili dell'emissione / raccolta degli eventi di interazione.
    • Anziché trasmettere interactionState = remember { InteractionState() } a componenti come Button e Modifier.clickable(), utilizza interactionSource = remember { MutableInteractionSource() }.
    • Invece di: Interaction.Pressed in interactionState, devi utilizzare le funzioni di estensione su InteractionSource, ad esempio InteractionSource.collectIsPressedAsState().
    • Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare il flusso di interazioni. Per ulteriori informazioni, consulta la documentazione e gli esempi di InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Aggiungi l'interfaccia AccessibilityMananger LocalAccessibilityMananger in ComposeLocals (I53520)
  • Rimossi i metodi LayoutCoordinates deprecati. Usa la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
  • Typealias sostituiti da tipi sottostanti:
    • ColorStop è diventata Pair<Float, Color>
    • SpanStyleRange ora è "AnnotatedString.Range
    • ParagraphStyleRange è diventata AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation è diventata AnnotatedString.Range<String>
    • (I8dd1a)
  • È stata creata una nuova sessione TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
  • Posizionabile ora mostra la dimensione indicata, che rappresenta la dimensione in base alla quale il layout secondario è stato effettivamente misurato. Queste dimensioni potrebbero non rispettare i vincoli di misurazione. (Ib2729, b/172560206, b/172338608)
  • Aggiungi il modificatore selectGroup che consente di contrassegnare la raccolta di schede o pulsanti di opzione ai fini dell'accessibilità (Ie5c29)
  • defaultFactory per compositionLocalOf e Ora è obbligatorio staticCompositionLocalOf anziché facoltativo.

    Questa modifica rimuove un potenziale errore di tipo per i valori non nulli per i quali non è stato fornito un valore di fabbrica predefinito. In precedenza fornisce un riferimento nullo per un tipo non null.

    Per i tipi con valori null, valuta la possibilità di specificare { null } come valore predefinito fabbrica.

    Sconsigliamo di utilizzare locali con tipi non nulli a meno che è possibile fornire un valore predefinito ragionevole. Se non esiste un valore predefinito ragionevole, il lambda defaultFactory dovrebbe generare un'eccezione. Tuttavia, un'eccezione indica che i consumatori della zona avranno una dipendenza implicita fornita, che non viene applicata in base al sistema dei tipi. (Ifbd2a).

  • I metodi deprecati dai moduli UI sono stati rimossi (I646f6)

  • I modificatori di dimensione sono stati rinominati. Modifier.width/height/size è stato rinominato in requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize è stata rinominata in larghezza/altezza/dimensione. (I5b414).

  • L'utente Modifier.tapGestureFilter è stato rimosso. Usa invece il criterio Modifier.pointerInput { detectTapGestures(...) }. (I266ed, b/175294473)

  • è stato rimosso il consumo parziale dal sistema di input del puntatore. Il modo consigliato per coordinare il consumo parziale è Modifier.nestedscroll. (Ie9c9b).

  • L'orientamento è stato spostato nel pacchetto di base. VelocirtTracker è passato da ui.gesture a ui.input.pointer. (Iff4a8, b/175294473)

  • imageResource e vectorResource sono ora funzioni di estensione rispettivamente sulle companion ImageBitmap e ImageVector. load{Image,Vector,Font}Resource funzioni sono state eliminate. (I89130)

  • AnimationClockObservable e le sottoclassi sono state rimosso. L'animazione Float è stata rimossa. (Icde52, b/177457083)

  • I provider sono stati rinominati in ComposizioneLocalProvider

    • Il costruttore della composizione non accetta più un parametro chiave ed è stato ritirato.
    • CurrentCompositeKeyHash è stato trasformato in una proprietà componibile di primo livello anziché in una funzione componibile di primo livello.
    • ComposizioneData e ComposizioneGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
    • ComposableLambda è stata creata come un'interfaccia invece di una classe concreta e non ha più parametri di tipo.
    • ComposableLambdaN è stata creata come un'interfaccia invece di una classe concreta e non ha più parametri di tipo.
    • La funzione snapshotFlow è stata spostata nello spazio dei nomi androidx.compose.runtime
    • il metodo di unione di SnapshotMutationPolicy non è più sperimentale
    • La funzione clearRoots di primo livello @TestOnly è stata rimossa. Non è più necessario.
    • Le funzioni keySourceInfoOf e resetSourceInfo sono state rimosse. Non sono più necessari.
    • Composer.collectKeySourceInformation è stato rimosso. Non è più necessario.
    • I metodi isJoinedKey, joinKeyLeft e joinKeyRight sono stati rimossi. Non sono più necessari.
    • Varie API di primo livello sono state spostate e riorganizzate in file diversi. A causa della semantica delle classi di file Kotlin, ciò comprometterà la compatibilità binaria, ma non la compatibilità del codice sorgente, quindi non dovrebbe rappresentare un problema per la maggior parte degli utenti.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent() è stato rimosso da write:ui. Usa quello di androidx.activity:activity-compose:1.3.0-alpha01. viewModel() e LocalViewModelStoreOwner sono stati rimossi da write:ui. Usa quelli di androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b)

  • Modifier.scrollable è stato rielaborato. Ora utilizza l'interfaccia Scorribile anziché la classe Scorribile (I4f5a5, b/174485541, b/175294473).

  • Il supporto di CustomUniforms da PointerInputModifier è stato rimosso (I02707, b/175294473)

  • SnapshotStateObserver non è più sperimentale (Id2e6a)

  • Sono state eliminate alcune API deprecate in precedenza (Ice5da, b/178633932)

  • L'elemento longPressGeFilter e doubleClickGeFilter sono stati rimossi. Utilizzare Modifier.pointerInput con funzioni helper, ad esempio detectTapGes (I2fedf, b/175294473).

  • API String.format rimossa di refactoring in vari modi i metodi toString per non sfruttare String.format internamente. (ID1290)

  • Asserzioni Dp rimosse (I798d2)

  • Rimosso androidx.compose.runtime:runtime-submit (I55feb)

  • Ora le azioni di testo controllano lo stato attivo automaticamente (I13777, b/179648629)

  • runBlockingWithManualClock rimosso (I15cdc, b/179664814)

  • La posizione di scorrimento in Modifier.verticalscroll()/Horizontalscroll() è rappresentata ora con Ints (I81298)

  • FlingConfig è stato rinominato in FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché dei Decadimenti predefiniti. (I02b86, b/175294473)

  • È stata aggiunta una funzione di supporto utile per Imposta la stessa azione per tutti i callback ImeAction (I63447, b/179226323)

  • Rimossa il callback SoftwareKeyboardController da tutto il testo da sostituire a breve con una nuova API. (Iae869, b/168778053)

  • FontSpan e FontWeigthStyleSpan non vengono più utilizzati e rimossi. (Ie5b56, b/177423444)

  • Sono state apportate le seguenti modifiche all'API Material:

    • È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione della spaziatura interna predefinita.
    • I parametri sono stati riordinati in BackdropScaffold in modo da rispettare le linee guida dell'API perché i parametri obbligatori sono prima di quelli facoltativi.
    • Parametro icon spostato in BottomTrafficItem in modo che sia dopo selected e onClick.
    • Parametro alwaysShowLabels rinominato in BottomTrafficItem in alwaysShowLabel.
    • I parametri bodyContent in alcuni componenti sono stati rinominati solo content.
    • Parametri riordinati in ButtonDefaults.buttonColors(). Tieni presente che, poiché il tipo di parametri non è cambiato, ciò non causerà un errore nel tuo codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordine manualmente, altrimenti il tuo codice non funzionerà come in precedenza.
    • Parametro secondaryVariant aggiunto a darkColors(). Questo colore è in genere uguale a secondary nel tema scuro, ma aggiunge coerenza e ulteriore personalizzazione.
    • Sono stati rimossi ElevationDefaults e animaElevation() dalla piattaforma API pubblica perché non erano comunemente utilizzati / utili.
    • onValueChangeEnd in Slider è stato rinominato in onValueChangeFinished e lo è stato reso null.
    • Parametro text rinominato in Snackbar in content per coerenza.
    • È stato aggiunto il parametro contentPadding a DropdownMenuItem per consentire la personalizzazione della spaziatura interna predefinita e ha reso content un'estensione su RowScope.
    • ModalDrawerLayout rinominato in ModalDrawer.
    • BottomDrawerLayout rinominato in BottomDrawer.
    • (I1cc66)

Correzioni di bug

  • È stata aggiunta un'API per utilizzare le risorse AnimatedVectorDrawable in Compose. Utilizza le funzionalità di animateVectorResource per caricare un file XML <animated-vector> come AnimatedImageVector e animarlo con pitterFor (I8ea91)
  • È stata aggiunta una nuova composizione LocalSoftwareKeyboardController locale API per sostituire la precedente interfaccia SoftwareKeyboardController su Campo di testo. (I658b6, b/168778053)

Versione 1.0.0-alpha12

10 febbraio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha12. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche alle API

  • Il supporto per ViewGroups è stato rimosso da UiApplier. Gli elementi componibili emitView deprecati sono stati rimossi. (Ifb214).
  • Modifier.pointerInput ora richiede tasti di memorizzazione per indicare quando la coroutine di rilevamento dell'input del puntatore deve riavviarsi per nuovi delle dipendenze. (I849cd)
  • ComposeReference rinominato in ComposeContext (I53fcb)
  • I limiti sono stati rinominati in DpRect (I4b32a)
  • Test dell'aggiornamento: hasText() verificherà sia i testi di input sia quelli di etichette/suggerimenti/segnaposto nel campo di testo (Iab803)
  • Gli elementi componibili viewModel() e LocalViewModelStoreOwner sono stati spostati in androidx.lifecycle.viewmodel.compose. Ora dovrai aggiungere una dipendenza separata androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 per utilizzarla. (I7a374).
  • Consenti azione null in AccessibilityAction, modifica azione in AccessibilityAction e CustomAccessibilityAction di CharSequenza in stringa (I0dc82)
  • Per abbinare meglio la denominazione tradizionali con ImageBitmap e ImageVector, ImagePainter è stato rinominato BitmapPainter e VectorPainter in parallelo. (Iba381, b/174565889)
  • API di test di sottostringhe migliorate con sottostringa ora come argomento (Icbe78)
  • È stato aggiunto un Modifier.focusOrder() che accetta un FocusRequester senza specificare ordine predefinito dell'elemento attivo e lambda. È utile quando dobbiamo solo specificare un riferimento ma non un ordine dello stato attivo personalizzato per un componibile (I4f52a, b/179180978)
  • Il valore ComponentActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
  • I metodi Destructuring e copy() sono stati rimossi da diverse classi in cui venivano usati raramente. (I26702, b/178659281)
  • Popup spostato per essere specifico della piattaforma. AndroidPopupProperties è stato rinominato PopupProperties ed isFocusable è stato spostato in un parametro focusable in PopupProperties (Ieeea5)
  • Finestra di dialogo spostata per essere specifica della piattaforma. Il nome di AndroidDialogProperties è stato cambiato in DialogProperties. (I4ef69, b/179138130)
  • Fatto LayoutNode interno (I8a7b1, b/175103944)
  • Constraints.enforce è stato sostituito con Constraints.constrain. (I8b8ea)
  • Il metodo loadFontResource è deprecato. Usa fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecate. Usa invece pitterResource. (I6b809)
  • Per migliorare le prestazioni, ora la semantica ScorriAxisRange assume lambdas che restituisce valori in virgola mobile anziché valori in virgola mobile diretti. (If4a35, b/178657186)
  • Aggiunta la semantica di EditableText per contrassegnare un testo di input modificabile nel campo di testo per l'accessibilità e i metodi di test corrispondenti per verificare la semantica (I8e07a)
  • Aggiunto su utente Ownerlayer/OwnerScope/OwnerSnapshotObserver (I4ffaf, b/175103944) interno
  • toIntPx() è stato rinominato roundToPx(). (I9b7e4, b/173502290)
  • IntBounds è stato rinominato IntRect e l'API è stata migliorata. (I1f6ff)
  • L'API Snapshot è stata aggiornata per garantire una maggiore coerenza con Linee guida per le API e nascondere le classi di implementazione interne dall'API pubblica. (Id9e32)
  • Sono state aggiunte azioni di espansione e compressione della semantica. Aggiunta espandi e dimezza Espandi in ModalBottomSheetState (Ib5064)
  • Modifier.dragGeFilter è stato ritirato. Usa invece il criterio Modifier.pointerInput { detectDragGestures (...)}. In alternativa, utilizza Modifier.draggable per il trascinamento su un asse (I0ba93, b/175294473)
  • Ambienti rinominati per corrispondere alla versione Ambient -> Rinominazione di ComposeLocal. Un tempo gli ambienti Ambient si chiamavano AmbientFoo, ora i ComposeLocals si chiamano LocalFoo. (I2d55d).
  • Il BaseTextField deprecato è ora rimosso. Utilizza invece BasicTextField. (I71368)
  • La selezione è stata spostata nelle basi. (I7892b)
  • Analogamente a come abbiamo rimosso il componibile state { 0 } e ora ne promuoviamo l'utilizzo come remember { mutableStateOf(0) }, rimuoveremo il componibile savedInstanceState { 0 }. Dovresti usare rememberSaveable { mutableStateOf(0) }, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno del MutableState può essere archiviato nel bundle. Se in precedenza passavi un oggetto salvaschermo personalizzato, ora devi utilizzare un nuovo sovraccarico di memorizzareSaveable con il parametro stateSaver. L'utilizzo sarà simile a questo: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • Aggiunta la semantica della password per l'accessibilità (I231ce)
  • È stato aggiunto ProgressBarRangeInfo.Indeterminate per contrassegnare le barre di avanzamento indeterminate per l'accessibilità (I6fe05)
  • Le utilità emptyContent() e (@Composable () -> Unit).orEmpty() sono state ritirate in quanto non hanno più alcun impatto positivo sulle prestazioni o valore (I0484d)
  • snapshotFlow e withMutableSnapshot non sono più sperimentale (I6a45f)
  • Ora è possibile chiudere i ricompositori. I ricompositori chiusi continuerà la ricomposizione fino al completamento delle coroutine infantili della composizione. Recomposer.shutdown rinominato per annullare in contrasto con la chiusura. (Ib6d76).
  • UiSavedStateRegistry è stato rinominato in SaveableStateRegistry, AmbientUiSavedStateRegistry è stato rinominato AmbientSaveableStateRegistry ed entrambi sono stati spostati nel pacchetto androidx.compose.runtime.saveable. (I30224)
  • L'artefatto androidx:compose:runtime:runtime-saved-instance-state è stato rinominato in androidx:compose:runtime:runtime-saveable (I6dcac)
  • Molte API obsolete obsolete nel pacchetto UI vengono eliminate. (I2f2dc)
  • L'artefatto composizione:runtime-submit è deprecato. MonotonicFrameClock è ora disponibile in: AndroidUiDispatcher è disponibile in write:ui. (Ib5c36).
  • Outline.* Le classi non sono più classi di dati (I4879e, b/178001427)
  • view.captureToImage() rimosso senza alcuna sostituzione. (I7fcd2)
  • Introduzione dell'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine Refactoring dell'API ColorFilter a riga di comando e corrispondere all'implementazione di PathEffect. (Ica1e8)
  • Aggiungi il parametro layoutDirection al parametro createOutline della forma. In questo modo è possibile creare forme sensibili alla direzione del layout. (I57c20, b/152756983)
  • Il metodo onImeActionPerformed è deprecato. utilizza invece Keyboard Actions (If0bbd, b/179071523)
  • Introdotto un contesto relativo alla coroutine InfiniteAnimationPolicy elemento che verrà applicato in animazioni infinite. Per impostazione predefinita, viene installato, tranne durante l'esecuzione di test con ComposeTestRule. (I50ec4, b/151940543)
  • canTrascina è stato rimosso da Modifier.scrollable. (Id66e7, b/175294473)
  • LayoutCoordinates.parentCoordinates rinominato in LayoutCoordinates.parentLayoutCoordinates per consentire un nuovo proprietà parentCoordinates. La proprietà parentCoordinates ora offre il valore LayoutCoordintes del modificatore principale. In questo modo casi d'uso più completi per onSizeChanged() e onGloballyPositioned() (Idfbfd, b/177926591)
  • Le opzioni tapGeFilter, doubleTapGeFilter, longPress descrittiFilter e pressIndicaitonGeFilter sono state ritirate. Usa invece Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestis. (I6baf9, b/175294473)
  • L'elemento unregisterProvider di SaveableStateRegistry è stato rimosso. Al suo posto, registerProvider() ora restituisce l'oggetto SaveableStateRegistry.Entry che puoi utilizzare per annullare la registrazione (Ic4274, b/178583739).
  • SavedInstanceState() è stato rinominato in saveSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)
  • CoreText e CoreTextField rimossi dall'API pubblica
    • Rimosso overload di SelectionContainer deprecato
    • (I99c19)
  • Test in cui Compose viene utilizzato nelle gerarchie che sono aggiunti/rimossi direttamente in WindowManager, ora sono più stabili. (Ie81ed, b/175765614)
  • Recomposer.current() rimosso. [Abstract]ComposeView ora per impostazione predefinita vengono utilizzati ricompositori con ambito a livello di finestra e creati in modo lento e gestiti dal ViewTreeLifecycleOwner per la finestra. Ricomposizione e I segni di graduazione con animazione basata su FrameNanos vengono messi in pausa mentre il ciclo di vita dell'host viene interrotto. (I38e11)
  • Recomposer.runningRecomposers ora offre un'istanza StateFlow globale di RecomposerInfo di sola lettura per osservare lo stato della composizione in corso durante il processo. Preferisci questa API a Recomposer.current(), che ora è ritirato. (If8ebe)
  • Saver, listSaver(), mapSaver(), autoSaver è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)
  • I comandi EditCommand accettano AnnotatedString. Tuttavia, questo è una modifica solo dell'API e la modifica del testo multi-stile non è già stata implementata. (I4c3ea).
  • Uptime e Durata sono stati rimossi. (Ib9bf4, b/177420019)
  • ComposizioneData.asTree() e API correlate spostate per separare il modulo ui-tooling-data e contrassegnato come sperimentale (Ic95b8)
  • I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da sinistra/destra all'inizio e alla fine per supportare il mirroring automatico della forma nella direzione RTL. I metodi AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti nei casi in cui non si desidera eseguire il mirroring automatico. (I61040, b/152756983)
  • L'API target del plug-in del compilatore Compose è stato sottoposto a refactoring in modo da utilizzare un'interfaccia al posto concreta. Inoltre, l'interfaccia non utilizza più un parametro di tipo.

    Si tratta di una modifica interna che non dovrebbe influire sulla fonte ma è una modifica binaria che provoca un errore. (I3b922, b/169406779)

  • Rimuovi involontariamente la funzione StringBuilder.deleteAt (Id6ed9)

Correzioni di bug

  • Elementi ComposeView all'interno delle gerarchie di elementi secondari di un'altra composizione ora ospita composizioni figlie dei suoi antenati (I92883)
  • Parametro imageFromResource aggiornato API per riutilizzare la cache drawable delle risorse quando carichi oggetti ImageBitmap. (If3627, b/178751994)

Versione 1.0.0-alpha11

28 gennaio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha11. La versione 1.0.0-alpha11 contiene questi commit.

Modifiche alle API

  • WithConstraints è stato rielaborato come BoxWithConstraints e spostato in ground.layout. (I9420b, b/173387208)
  • Key.DPadUp è deprecato. Utilizza invece Key.DirectionUp. (Iab335, b/177954892)
  • Interfaccia del proprietario d'ora in poi. (If8e35).
  • È stata aggiunta l'API FocusManager.moveFocus() per spostare lo stato attivo in modo programmatico. (I045cb, b/177681839)
  • Modifica PopupPositionProvider in modo da utilizzare coordinate relative alla finestra, non coordinate globali. Rinomina parentGlobalBounds in anchorBounds e cambia windowGlobalBounds in windowSize: IntSize (I2994a)
  • Durata e Uptime verranno sostituiti con Long millisecondi, e questo passaggio rimuove la dipendenza dell'input del puntatore su quelle . (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner è stato aggiunto in modo simile ad AmbientLifecycleOwner e AmbientViewModelStoreOwner (I9a3e8, b/176756365) già esistenti
  • Grafica vettoriale aggiornata API per supportare l'analisi della colorazione applicata alla radice delle immagini vettoriali. (Id9d53, b/177210509)
  • È stato aggiunto toolType a PointerInputChange per distinguere i dispositivi (Iac787, b/175142755)
  • AmbientWindowManager è stato rinominato AmbientWindowInfo (I2686a, b/177084714, b/177084983)
  • Metodi di coordinate globali deprecati e realizzati nuovi metodi per le coordinate basate su finestre. (Iee284)
  • È stato aggiunto Modifier.toolingGraphicslayer, che aggiunge un modificatore del livello grafico quando l'ispezione è attiva. (I315df)
  • FocusRequester.createRefs è ora contrassegnato come sperimentale poiché potrebbe cambiare. (I2d898, b/177000821)
  • SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato come @ExperimentalComposeUiApi. AccessibilityRangeInfo è stato rinominato ProgressBarRangeInfo. stateDescriptionRange è stato rinominato in progressBarRangeInfo. AccessibilityScorriState è stato rinominato ScorriAxisRange. HorizontalAccessibilityscrollState è stato rinominato HorizontalscrollAxisRange. verticalAccessibilityScorriState è stato rinominato verticalscrollAxisRange. (ID3148)
  • PointerInputData rimossi e PointerInputChange modificato per assegnare tutti i campi di PointerInputData. Fatto PointerInputEvent e PointerInputEventData interni perché non sono utilizzati in qualsiasi API pubblica. (Ifff97, b/175142755)
  • Implementazione GraphicslayerScope aggiornata per supportare le conversioni dei dp pixel non elaborati. (Ied528, b/176819695)
  • L'API Matrix è stata aggiornata per seguire la riga nell'ordinamento principale e fornire costanti di indice per facilitare le conversioni tra diversi matriciali di corrispondenza per il framework logica di conversione tra SkMatrix e Matrix4 internamente. (I432e6).
  • Rimossi metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)
  • Sposta String.fintPrecedingBreak e String.fingFollowingBreak in InternalTextApi. (I657c4)
  • androidx.compose.ui.util.isSurrogatePair è stato rimosso dall'API pubblica. (Ia9494)
  • TransformedText.transformedText rinominato in TransformedText.text
    • TransformedText non è più una classe di dati (Ie672a)
  • data class rimosso dai seguenti corsi:
    • Contenuti di testo in linea
    • LocaleList (I605c7)
  • Le seguenti classi non sono più classi di dati:
    • Stringa annotata
    • ParagraphStyle
    • Stile intervallo
    • TextStyle
    • Peso carattere
    • Decorazione testo
    • Trasformazione Geometrica
    • Indice di testo
    • RisultatoLayoutTesto
    • TextLayoutInput (Iaff99)
  • VisualTransformation è stato modificato in un'interfaccia funzionale (I3bba4)
  • È stato aggiunto un tipo di parametro di riferimento alla funzione (I5e1bd)
  • Aggiungi limiti trasformati a InspectorNode (Ice42f)

Correzioni di bug

  • onCommit, onDispose e onActive sono stati deprecati in favore delle API SideEffect e DisposableEffect (If760e)
  • Modifiche alle funzioni di fabbrica per Font/Famiglia di caratteri/Caratteri tipografici

    • Sono state aggiunte funzioni di fabbrica che iniziano con la lettera maiuscola
    • Funzioni di fabbrica precedenti deprecate con lettere minuscole prime lettere
    • Le nuove funzioni di fabbrica restituiscono FontFamily anziché sottoclassi
    • Ha nascosto i costruttori delle sottoclassi, in modo che possono essere costruite solo tramite funzioni di fabbrica.
    • Font.asFontFamily è stato rinominato Font.toFontFamily (I42aa7)
  • Introdotta ComposeContentTestRule, che si estende ComposeTestRule e definisce setContent, che è stato rimosso da ComposeTestRule. Metodo di fabbrica createEmptyComposeRule() aggiunto che restituisce un ComposeTestRule e non avvia un'attività per te. Usa questa opzione se vuoi avviare l'Attività durante il test. ad es. con ActivityScenario.launch (I9d782, b/174472899)

  • animateAsState è ora animatoFooAsState, dove Foo è tipo di variabile animata. ad es. Float, Dp, Offset e così via (Ie7e25)

  • Il parametro della descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione dei servizi di accessibilità (I2ac4c)

  • Rimuovi displaySize perché dovrebbe essere evitato. Di solito è meglio usare onRoot() o almeno una dimensione della finestra. (I62db4)

  • OnSizeChanged segnalava la dimensione del layout contenuti. Ora riporta la dimensione nella sua posizione all'interno o una catena di modificatori. (I36b78, b/177562900)

  • L'API emit() e tutti gli sovraccarichi sono stati deprecati e rinominati ComposeNode. Le API sono identiche, solo un nome diverso per seguire le convenzioni di denominazione di Compose (I4137b)

  • TextFieldValue accetta AnnotatedString. Tuttavia, questo è una modifica solo dell'API e la modifica del testo multi-stile non è già stata implementata.

    • initial rimosso dai parametri del costruttore EditingBuffer. (I326d5)
  • invalidate e composizioneReference() sono ora deprecate in favore rispettivamente di currentRecomposeScope e ricomponinciavoce. (I583a8)

  • AnnotatedString è stata modificata in modo da estendersi da kotlin.CharSequence. Di conseguenza, length e subSequence sono ora funzioni di istanza, mentre le funzioni delle estensioni vengono rimosse. (Iaf429)

  • ricordi-osservatore sostituisce ComposizioneLifecycleObserver e IntroductionLifecycleObserver è deprecato.

    RememberObserver sostituisce CompositionLifecycleObserver con semantica modificata e rinominati. Il passaggio alla nuova API può essere eseguito meccanicamente per gli oggetti che vengono memorizzati solo una volta, che è e continua la pratica consigliata. Tuttavia, se un riferimento è stato ricordato più di una volta in una composizione onRemembered è chiamato per ogni riferimento dove onEnter viene chiamato una sola volta. onEnter è stato chiamato più volte se l'oggetto è stato utilizzato in sottocomposizioni, come WithConstraints e Scaffold, mentre il singolo onEnter garanzia di chiamata inaffidabile ed è stata rimossa per RememberObserver.

    RememberObserver aggiunge onAbandoned che viene chiamato se RememberObserver istanza restituita dal callback passato a remember ma non è stato ricordato nello stato della composizione e, di conseguenza, non verranno mai richiamati onRemembered. Questo può si verificano se un'eccezione termina la composizione prima del completamento la composizione viene eliminata perché lo stato stava producendo una composizione non è più attuale o non è più necessaria. Se l'istanza di RememberObserver che segue il singolo il suggerimento di riferimento riportato sopra è il monitoraggio di una risorsa esterna onForgotten e onAbandoned indicano ciascuno che non è più necessaria. Se l'oggetto sta monitorando il lavoro avviato o risorse allocate in onRemembered, onAbandoned può essere ignorato perché non verrà chiamato se onRemembered è chiamato. (I02c36)

  • Operazioni aritmetiche obsolete tra 2 o più unità di testo. Le funzioni TextUnit.Sp e TextUnit.Em deprecate sono preferite rispetto a quelle di estensione, come Int.sp e Int.em. (I48369)

  • Risorse nelle biblioteche senza risorse pubbliche dichiarate esplicitamente (ad es. tramite public.xml) ora sono private per impostazione predefinita. (Ia1dcc, b/170882230)

  • L'elemento Scorribile/Riga sono stati deprecati. L'utilizzo di GrowableColumn è meno efficiente rispetto a LazyColumn quando è necessario scorrere contenuti di grandi dimensioni perché con LazyColumn è possibile comporre/misurare/disegnare solo elementi visibili. Per evitare che gli utenti adottassero una modalità inefficiente, abbiamo deciso di ritirare la funzionalità ScorriableColumn e ScorribileRow e promuovere invece l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non avere bisogno del comportamento lento e usare i modificatori direttamente in questo modo: Column(Modifier.verticalscroll(rememberscrollState())) (Ib976b, b/170468083)

  • Nuovo metodo di fabbrica items(count: Int) per l'ambito di LazyColumn/LazyRow/LazyVerticalGrid. items(items: List) e itemsIndexed(items: List) sono ora funzioni di estensione, quindi devi importarle manualmente quando vengono utilizzate. Nuovi overload delle estensioni per gli array: items(items: Array) e itemsIndexed(Array) (I803fc, b/175562574)

  • Utilizza ImeAction.None anziché ImeAction.NoAction

    • Utilizza ImeAction.Default anziché ImeAction.Unspecified (Ie1bcc)
  • Utilizzare TestCoroutineDispatcher per i test (I532b6)

  • TextInputService.onStateUpdated rinominato in updateState (Id4853)

  • La transizione basata su TransactionDefinition è stata ritirata (I0ac57)

  • TextUnitType.Inherit è rimosso. Usa invece TextUnitType.Unspecified. (I9ff64)

Versione 1.0.0-alpha10

13 gennaio 2021

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha10. La versione 1.0.0-alpha10 contiene questi commit.

Cambiamento radicale

  • Ristrutturazione del compilatore interno L'API consente di raggruppare le modifiche ai nodi generati come risultato della composizione nella sezione fase di composizione, dopo tutte le funzioni @Composable sono state completate.

    Questa è una violazione comportamentale modifica che potrebbe influire sul codice dell'applicazione non sono più disponibili dai nodi API sperimentali fino al completamento delle modifiche applicati. In genere, questo può essere risolto il codice circostante con queste dipendenze, SideEffect componibile per rimandare l'esecuzione dell'evento fino al termine della creazione dei nodi inizializzato. (I018da)

Modifiche alle API

  • È stato aggiunto Modifier.focusOrder() che può essere utilizzato per specificare un ordine di attraversamento del focus personalizzato (I90cf5, b/175899543, b/170155556, b/170155429)
  • Rimossa l'uso di focusObserver deprecato invece onFocusChanged o onFocusEvent (I3ecb9, b/175156387)
  • Modifiche all'API EditOperations
    • ModificaOperation rinominata in EditCommand
    • Aggiunto il suffisso del comando per le implementazioni concrete EditOperation
    • Gli oggetti EditCommand non sono più classi di dati
    • Funzione EditOperation.process rinominata in applyTo
    • InputEventListener rinominato in InputEventCallback
    • (I0a366)
  • PxSquared, PxCubed, PxInverse non utilizzati sono stati rimossi. Dimensione.center() modificata in una proprietà. (I973f7)
  • ui-test sarà ora in grado di configurare la creazione Ricompositori per le UI in fase di test (Ibebd8)
  • Velocità modificata per avere parti componenti e calcoli operazioni aziendali. (Ib0447)
  • @ExperimentalTesting è stato rinominato in @ExperimentalTestApi coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)
  • Color.useOrElse() è stato rinominato in Color.takeOrElse() (Ifdcf5)
  • Rimosse le classi DpInverse, DpSquared e DpCubed inutilizzate. (I4d62b)
  • Constraints#customerBy è stato rinominato isSatisfiedBy. (I9cf5c)
  • Aggiungi un callback per inviare una notifica al proprietario quando i limiti di layoutnode cambiano. (I72fd1)
  • È stato aggiunto isSpecified, isUnspecified e useOrElse per classi in linea con una costante non specificata. (I93f7b, b/174310811)
  • Espandi [Abstract]API ComposeView per consentire il riciclo Viste basate sulla composizione, con la conseguente disposizione della composizione per ricrearla in un secondo momento. Aggiungi API per l'installazione e il rilevamento di ricompositori con ambito finestra e ComposeReferences per creare composizioni secondarie.

    Aggiungi ViewComposeStrategy per configurare lo smaltimento della composizione strategia di [Abstract]ComposeViews; il comportamento predefinito è la finestra di collegamento. (I860ab)

  • Rimozione dell'API pubblica Any.identityHashCode() (I025d7)

  • Rimossa toStringAsFixed API in favore dell'uso di String.format direttamente. (Iaba6b)

  • Aggiungi il pulsante di attivazione/disattivazione alle stringhe di base.kt (I4a5b7, b/172366489)

  • nativeClass spostato in modulo UI e lo ha reso interno. Aggiornamento degli utilizzi di nativeClass in è uguale alle implementazioni 'is MyClass' . (I4f734)

  • Modifier.focus() e Modifier.focusRequester() sono deprecati. Usa invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)

  • Introdotto SelectionRegistrar.notifySelectableChange per notificare gli aggiornamenti Selectable a SelectionManager. (I6ff30, b/173215242)

  • Introduzione di Outline.bounds per ottenere il rettangolo di delimitazione per varie implementazioni di schema. (I16e74, b/175093504)

  • TestUiDispatcher obsoleto. Utilizza Dispatchers.Main (Ic171f, b/175385255)

  • ImeOptions e KeyboardOptions non sono più una classe di dati (I3c898, b/168684531)

  • Modifiche all'API VisualTransformation

    • OffsetMap rinominata in OffsetMapping
    • Il nome OffsetMapping.identityOffsetMap è stato rinominato OffsetMapping.Identity
    • PasswordTransformation non è più classe di dati
    • OffsetMapping spostato nel proprio file
    • (I0bdf3).
  • Il nome della posizione è stato cambiato in DpOffset e è stato rimosso il metodo getDistance() (Ib2dfd)

  • Cambiato il valore Dp.isFinite() in val Dp.isFinite (I50e00)

Correzioni di bug

  • Il ricompositore ora espone un Flow del suo stato attuale, consentendo monitorando la sua attività e l'attività degli effetti associati. (Ifb2b9).
  • Ora è possibile accedere all'evento chiave nativo tramite keyEvent.nativeKeyEvent (I87c57, b/173086397).
  • animate() è ora sostituito con animateAsState(), che restituisce State<T> anziché T. Ciò consente di ottenere perché l'ambito di annullamento della convalida può essere ristretto dove viene letto il valore dello stato. (Ib179e)
  • Aggiungi l'API Semantics Role e aggiungi Role come parametro a SemanticsModifier cliccabile, selezionabile e attivabile. Modificato Modifier.progressSemantics in modo che sia utilizzabile anche dal dispositivo di scorrimento. (I216cd)
  • Nuova API basata su coroutine Animatable che garantisce l'esclusività reciproca tra le sue animazioni.
    • Nuovo DecayAnimationSpec per supportare l'animazione del decadimento multidimensionale
    • (I820f2, b/168014930)

Versione 1.0.0-alpha09

16 dicembre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha09. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche alle API

  • KeyEvent.Alt obsoleto è ora rimosso. Utilizza invece KeyEvent.isAltPressed. (IDd695)
  • Modifier.keyInputFilter e Modifier.previewKeyInputFilter sono deprecati e utilizzano invece Modifier.onKeyEvent e Modifier.onPreviewKeyEvent (Idbf1b, b/175156384)
  • Modifier.focusObserver è deprecato. Usa invece Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
  • Per sospendere le API di input del puntatore, Da HandlePointerInputScope ad AwaitPointerEventScope e handlePointerInput() ad awaitPointerEventScope(). (Idf0a1, b/175142755)
  • L'API Compilazione automatica è ora sperimentale e richiede l'attivazione (I0a1ec)
  • Aggiunta di dichiarazioni di destrutturazione per creare istanze FocuSRequester (I35d84, b/174817008)
  • L'accessibilitàLabel è stata rinominata in contentDescription. L'accessibilitàValue è stata rinominata in stateDescription. (I250f2)
  • Gli eventi personalizzati sono stati rimossi dalla sospensione dell'API di input del puntatore (Ia54d5, b/175142755)
  • Introdotto diverse nuove funzioni in SelectionRegistrar e ha anche cambiato il nome di onPositionChange in notificationPositionChange. (Ifbaf7)
  • Altri membri di LayoutNode contrassegnati come interni (I443c6)
  • LayoutInfo è stato introdotto per essere utilizzato dagli strumenti e dai test (I9b190)
  • AndroidProprietario reso interno (Ibcad0, b/170296980)
  • Rimossa l'annotazione ExperimentalPointerInput (Ia7a24)
  • Sistema di scorrimento nidificato aggiunto. Fai riferimento a Modifier.nestedscroll per ulteriori dettagli (I36e15, b/162408885)
  • subcomposeInto(LayoutNode) è stato impostato come interno (Id724a)
  • L'interfaccia di Applier è stata modificata per semplificare creare alberi dal basso verso l'alto anziché dall'alto verso il basso.

    Il metodo insert() è stato rinominato in insertTopDown().

    È stato aggiunto un nuovo metodo, insertBottomUp().

    L'applicatore inserisce nodi nell'albero che sta modificando utilizzando insertTopDown() o insertBottomUp(), a seconda che offre prestazioni migliori.

    Alcuni alberi, come LayoutNode e View, sono molto più più efficiente nel creare dal basso verso l'alto che dall'alto verso il basso. Prima di questa modifica, era necessario uno stack di inserimenti per implementare il dovevano essere copiati in tutti gli applicatori che dovevano essere generati dal basso verso l'alto. per migliorare le prestazioni. Con questa modifica Applier esegue l'override di insertBottomUp() per creare un albero dal basso verso l'alto insertTopDown() per costruire l'albero dall'alto verso il basso. (Icbdc2)

  • Sono state aggiunte le proprietà IgnoraOnBackPress e IgnoraOnClickOutside ad AndroidDialogProperties. Consentono di configurare il momento in cui verrà richiamato il lambda onClearRequest della finestra di dialogo. (If5e17).

  • API pitterResource aggiunta per gestire il caricamento opaco di oggetti Painter da formati di asset rasterizzati (come PNG) o VectorDrawables. I consumatori non hanno più per determinare in anticipo il tipo di risorsa e chiamare questo metodo per ottenere un oggetto Painter da utilizzare nei componibili di immagini o nei modificatori per pittori. (I2c703, b/173818471)

  • È stato aggiunto Modifier.clearAndSetSemantics alla cancellazione dei discendenti la semantica e impostarne di nuovi. (I277ca)

  • Spostamento di ContentDrawScope nell'interfaccia utente modulo con DrawScope. (Iee043, b/173832789)

  • Introduzione dell'API grafica PathEffect per creare diversi motivi alle forme tracciate. Utilizzo deprecato di NativePathEffect a favore dell'implementazione prevista/effettiva di PathEffect. (I5e976, b/171072166)

  • Aggiunte interfacce IdlingResource a Compose, come un Compose una variante supportata delle risorse inattive di Espresso. Possono essere registrati e non la registrazione tramite ComposeTestRule (I433f3).

  • È stata rimossa la registrazione globale (annullamento) di ComposeIdlingResource e registrazione globale (annullamento) di orologi in ComposeIdlingResource (I32660)

Correzioni di bug

  • Le funzioni Lambda nei modificatori di offset ora restituiscono IntOffset anziché Float. (Ic9ee5, b/174137212, b/174146755)
  • Rimozione di SlotTable, SlotReader e SlotWriter dall'API pubblica. Questi elementi sono stati contrassegnati come InternalComposeAPI in precedenza. Ora sono interne al modulo di scrittura.

    ComposizioneData e ComposeGroup sono stati aggiunti come sostituzione dell'API ui-tooling da usare per estrarre informazioni sulla composizione. Sono pubbliche ma non sono destinati all'uso al di fuori dell'API ui-tooling, poiché forniscono le informazioni non elaborate interpretate dall'API ui-tooling (I31a9c)

  • Hai eseguito il refactoring di ShaderBrush in di creare pigramente un'istanza di shaker quando informazioni sulle dimensioni del disegno dell'ambiente di rete. È utile per definire i gradienti occupano tutti i limiti di un al momento della composizione, senza dover a implementare implementazioni DrawModifier personalizzate.

    API del costruttore della funzione di gradiente deprecate a favore dei metodi di produzione su un oggetto Gradient. (I511fc, b/173066799)

  • Ritirare LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Usa LazyColumn e LazyRow (I5b48c)

  • BuildCompat.isAtLeastR obsoleto (Idb37e)

  • È stata aggiunta la funzione di fabbrica buildAnnotatedString nell'ordine per creare una stringa AnnotatedString. Stringa annotata deprecata la funzione builder. (Idfe0b)

  • Metodi di estensioni rimossi su Float e Doppio per convertire i valori ai radianti. Spostata in una funzione privata all'interno dell'implementazione PathParser che era l'unico luogo in cui è stato utilizzato (I25f52)

Versione 1.0.0-alpha08

2 dicembre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha08. La versione 1.0.0-alpha08 contiene questi commit.

Modifiche alle API

  • Aggiungi l'azione semantica Ignora (I2b706)
  • Le API DrawModifier sono state spostate dalla pacchetto androidx.compose.ui nella Pacchetto androidx.compose.ui.draw. File DrawModifierDeprecato.kt creato in includi metodi typealias/helper per supportare con della migrazione dall'infrastruttura deprecata all'attuale su quelle di livello inferiore. (Id6044, b/173834241)
  • Modifier.drawlayer rinominato in Modifier.graphicslayer Sono state aggiornate anche le classi correlate a Graphicslayer in base a Feedback sull'API. (I0bd29, b/173834241)
  • Sono stati aggiunti nuovi metodi placeable.placeWithlivello() e placeable.placerelativeWithlayer() che consentono a layout e modificatori di layout personalizzati di posizionare un elemento secondario con l'introduzione di un livello grafico per il disegno. Avendo questo fatto possiamo prima ottimizzare i ridisegnamenti, in modo che quando dobbiamo spostare un bambino, non dobbiamo ridisegnare i contenuti, in secondo luogo possiamo applicare trasformazioni di disegno per un bambino (Ibd8f6, b/170296989, b/171493718, b/173030831)
  • <T> è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)
  • Aggiunta Modifier.scale/rotate aggiunto le API per il drawlayer.
    • Modifier.drawOpacity rinominato in Modifier.alpha
    • Modifier.drawShadow rinominato in Modifier.shadow (I264ca, b/173208140)
  • l'uptime di PointerInputData e nei campi di posizione non assegnabili. (ID468a)
  • MaterialTheme ora imposta i colori corretti per i punti di manipolazione di selezione e lo sfondo della selezione. Le app non Material possono utilizzare manualmente AmbientTextSelectionColors per personalizzare i colori utilizzati per la selezione. (I1e6f4, b/139320372, b/139320907)
  • È stato aggiunto WindowManager.isWindowFocused per verificare se la finestra host è attiva e un WindowFocusObserver che fornisce un callback onWindowFocusChanged. (I53b2a, b/170932874)
  • API TransformOrigin aggiornata avere una sintassi destrutturante per restituire pivotFractionX e pivotFractionY come component1 e component2 (If43c4, b/173586560)
  • È stato aggiunto il controllo del lint per la denominazione e la posizione dei parametri lambda componibili al fine di verificare la coerenza con le linee guida di Compose. Inoltre, è stata eseguita la migrazione di alcune API utilizzando children come nome per il lambda finale in content, in base al controllo del lint e alle indicazioni. (Iec48e)
  • È stata aggiunta un'API per verificare se sono stati premuti i tasti di modifica Alt, Ctrl, Meta o Maiusc quando è stato inviato un evento chiave. (I50ed9)
  • È stato aggiunto un nuovo sovraccarico di Modifier.drawLayer(). Occorre un blocco lambda in un nuovo GraphicslayerScope in cui definisci i parametri del livello in modo da saltare la ricomposizione e il relayout quando si verifica il cambiamento di stato. DrawlayerModifier è ora interno in preparazione alla migrazione della sua logica nel metodo placeable.placeWithlayer() di LayoutModifier (I15e9f, b/173030831)
  • Ambienti deprecati denominati con Ambient come suffisso e sostituiti con nuove proprietà con prefisso Ambient, conformi alle altre linee guida dell'API Ambient e Compose. (I33440)
  • Intervallo androidx.compose.ui.text.Typeface spostato in androidx.compose.ui.text.font.Typeface (Ic2b81)
  • L'argomento semantico aggregateAllDescendants è stato rinominato in joinDescendants. (Ib6250)
  • Nuovo rilevatore di gesti di trascinamento che sospende il puntatore API di input, incluso il blocco dell'orientamento. (Icef25)
  • VectorAsset rinominato in ImageVector VectorAsset spostato e rinominato in Builder una classe interna di ImageVector come da Linee guida per le API. typealias di VectorAssetBuilder aggiunto a link a ImageVector.Builder per compatibilità. (Icfdc8)
  • ImageAsset rinominati e metodi correlati a ImageBitmap. (Ia2d99)
  • Aggiungi il parametro zIndex per il parametro place() di LocationScope in modo che Modifier.zIndex() ora funzioni come LayoutModifier e qualsiasi layout personalizzato possa impostare zIndexes per i relativi elementi secondari direttamente nel blocco dei posizionamenti (I711f7, b/171493718)
  • Proprietà semantiche di base spostate nella UI (I6f05c)
  • Ritira luogo(Offset) e placeParent(Offset). Usa invece gli overload con offset int (I4c5e7)
  • Sono state rimosse le API deprecate in precedenza: Modifier.onPositioned è stato rimosso, utilizza Modifier.onGloballyPositioned. Modifier.onDraw è stato rimosso; utilizza Modifier.onDrawDie Modifier.plus è stato rimosso; usa Modifier.then. L'opzione Color.Unset è stata rimossa, utilizza Color.Unspecified. La classe PxBounds è stata rimossa. Usa invece Rect. (Ie9d02, b/172562222)
  • L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
  • Rilevamento dei gesti per tocco, doppio tocco, pressione prolungata e la pressione delle indicazioni sono state aggiunte utilizzando il nuovo puntatore di sospensione di testo. Sono state aggiunte anche alcune utilità, per semplificare per consentire agli sviluppatori di scrivere i propri rilevatori di gesti. (I00807)
  • id è stato rinominato in layoutId per LayoutIdParentData. Measurable.id è stato rinominato in Measurable.layoutId. (Iadbcb, b/172449643)
  • Nuovo rilevatore di gesti multi-touch, che include: helper per il rilevamento di rotazione, zoom e panoramica. (Ic459d)
  • È stato introdotto SweepGradientShader e le API SweepGradientBrush. (Ia22c1).
  • Il controllo del tempo nei test (TestAnimationClock e relativi utilizzi) è ora in fase sperimentale (I6ef86, b/171378521)
  • Aggiungi API di scorrimento basate su coroutine:

    Aggiunge LazyListState.snapToItem e LazyListState.smoothscrollBy, nonché API per il controllo dello scorrimento. Queste API forniscono un'interfaccia di sospensione per controllare lo scorrimento che attende il termine dello scorrimento prima di tornare. (Ie5642).

  • È necessario aggiungere Modifier.focusable agli elementi di base. Utilizzalo per aggiungere il comportamento attivabile a un componente, con semantica e accessibilità corrette. (I41eb9, b/152525426, b/162865824)

  • Fornisci implementazioni predefinite di metodi e proprietà in AnimationClockTestRule che può essere delegata a clock (I7ea3d, b/173399709)

  • AndroidComposeTestRule ora può accettare attività personalizzate Avvio app (Ib8288, b/153623653, b/154135019)

  • TextLayoutResult.getLineVisibileEnd è deprecato. In sostituzione, TextLayoutResult.getLineEnd ora ha un nuovo parametro visibleEnd. (I73282)

  • API TextFieldValue aggiornata

    • impostato TextFieldValue.composition in sola lettura
    • viene generata un'eccezione rimossa per l'intervallo di selezione non valido (I4a675, b/172239032)
  • Supporta TtsAnnotation per il motore di sintesi vocale. (I54cc6)

  • Nuove API per l'esecuzione di animazioni nelle coroutine (Ied662)

Correzioni di bug

  • Il parametro di allineamento di Box è stato rinominato in contentAllineament. (I2c957).
  • I modificatori offsetPx sono stati rinominati in offset. Prende i parametri lambda anziché i parametri State. (Ic3021, b/173594846)
  • È stato aggiunto il parametro resetInput a TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
  • È stato aggiunto il controllo dei lint per i parametri di modifica nelle funzioni componibili. Questo controllo del lint verifica la coerenza con le linee guida di Compose per nome, tipo restituito, valore predefinito e ordine del parametro. (If493b)
  • Aggiunta temporanea dell'opzione per consentire il funzionamento di TestAnimationClock gestito dal MonotonicFrameClock (I1403b, b/173402197)
  • Aggiunto il wrapper Android Typeface. Puoi caricare un'immagine Carattere tipografico tramite la funzione typeface, ad esempio typeface(Typeface.DEFAULT). Inoltre, typefaceFromFontFamily() è stato rinominato in typeface() (I52ab7)
  • È stato aggiunto il controllo lint per verificare che le funzioni di fabbrica del Modificatore siano definite come estensioni di Modificatore, in modo da poter essere collegate tra loro agevolmente. (I07981)
  • Rimuovi il vecchio modulo di test dell'ui e i relativi stub (I3a7cb)
  • Il ricompositore non accetta più EmbeddingContext, obbligatorio le dipendenze di pianificazione sono ottenute dall'effettoCoroutineContext. FrameManager è deprecato; le integrazioni di piattaforma devono inizializzare per la gestione degli snapshot globali. (I02369)
  • Passa le informazioni sullo stile al nodo di accessibilità. (If5e8d).
  • TextUnit.Inherit è rinominata TextUnit.Unspecified per coerenza con altre unità. (Ifce19)

Compose UI versione 1.0.0-alpha07

11 novembre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha07. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche alle API

  • Introduzione di ScaleFactor per rappresentare la scala fattori per orizzontale e verticale assi indipendenti l'uno dall'altro in modo per supportare casi d'uso di scalabilità non uniforme.
    • Metodo computeScaleFactor aggiunto a Scala dei contenuti
    • Aggiunta di ContentScale.FillBounds da eseguire scalabilità non uniforme per allungare la src per occupare completamente la destinazione.
    • Metodi dell'operatore aggiunti per il calcolo Parametri ScaleFactor con i parametri Dimensione.
    • (Ic96a6, b/172291582)
  • Sono state aggiunte le fabbriche BiasAllineament e BiasAbsoluteAllineament per la creazione di allineamenti. (Iac836, b/169406772)
  • Consenti a uno sviluppatore di eliminare forzatamente lo stato attivo. (I90372)
  • È stato risolto un bug che impediva il calcolo dell'elevazione per le viste in Compose. (If7782)
  • Creazione dell'API onDrawdie all'interno di ContentDrawScope in base alla convenzione di denominazione con Modifier.draw dallo. (I4fc3a, b/171955269)
  • Aggiungi il supporto per la distanza della fotocamera per integrare le trasformazioni 3D rotazioneX/rotationY sulle API dei livelli. (I40213, b/171492100)
  • SelectContainer è stato aggiunto senza il callback (Ibfadb)
  • L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora è possibile utilizzare SubcomposeLayout senza aggiungere @OptIn (I708ad)
  • FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
  • Opacità rimossa dal modificatore di drawShadow() così com'era poco chiara. (I82c62, b/171624638)
  • MeasureResult è stato spostato fuori da MeasureScope. (Ibf96d, b/171184002)
  • Diversi simboli relativi al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424)
  • FocusState2 obsoleto rimosso (I686cb, b/168686446)
  • ZIndexModifier è ora interno (I1808b, b/171493718)
  • Tipo restituito del Lerp aggiornato sui parametri di dimensione da restituire una dimensione non nullo per evitare boxe. (Ib0044)
  • È stato aggiunto TestMonotonicFrameClock per testare il codice basato su Il MonotonicFrameClock di Compose per attendere gli eventi del frame di composizione utilizzando runBlockTest di kotlinx-coroutines-test (I4402f)
  • Rimozione di GestiScope.localToGlobal (I15299, b/171462785)
  • È stato aggiunto lo strumento di ricerca onAllNodesWithSubstring (I81dd7, b/171462889)
  • Modulo androidx.ui.test deprecato. Esegui la migrazione a androidx.compose.ui.test e androidx.compose.ui.test.junit4 (I452e8)

Correzioni di bug

  • CaptureToBitmap spostato in captureToImage. (I86385)
  • Foundation.Text è stato deprecato e sostituito con material.Text. Per un'API di testo di base non definita che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb)
  • Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
  • Rinomina KeyboardOptions come ImeOptions (I82f36)
  • KeyboardType e ImeAction spostate in KeyboardOptions (I910ce)
  • ForniDefault è stato aggiunto come alternativa per fornire i valori Ambient e può essere utilizzato per specificare i valori Ambient che verranno impostati solo quando non è già stato fornito un valore Ambient. (Id6635, b/171024925)
  • Il campo BaseTextField è stato deprecato. Utilizza invece BasicTextField. (I896eb)
  • Introduci il modulo ui-test-junit4 (Ib91f8)
  • relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare le distanze dai limiti di layout alle basi del testo. (I0440a, b/170633813)
  • LaunchedTask è stato rinominato in LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. Lanciatoeffetto senza non sono consentiti per incoraggiare le best practice. (Ifd3d4).
  • Sono state introdotte risorse componibili che si ricompongono quando la configurazione viene aggiornata. (I6387c, b/167352819)
  • Il ricompositore ora richiede un CoroutineContext in fase di costruzione (Ic4610)
  • Somma i valori zIndex quando sono applicati più Modifier.zIndex(). In precedenza, vinceva la prima gara. (Ic514c, b/170623936)
  • Modifiche all'implementazione interna di SlotTable che non devono influire sull'API pubblica. (If9828)
  • Aggiunta l'opzione IME di correzione automatica della tastiera (I57b8d)
  • androidx.ui.test spostato in androidx.compose.ui.test (I9ffdb)
  • Rimozione di KeyboardOptions.toImeOptions dall'API pubblica. (Ic2e45).

Contributo esterno

  • Pubblicazione disattivata dell'artefatto interno androidx.compose.ui:ui-text-android (Ib93fa)

Versione 1.0.0-alpha06

28 ottobre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha06. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche alle API

  • Il ricompositore è ora un valore ComposeReference, nonché un principale della composizione. Il ricompositore esplicito ora è obbligatorio in meno posizioni. (I4036f)
  • Ritira VectorPainter in di learnVectorPainter per migliorare indica che l'API componibile internamente utilizza il comando "remember" per rendere persistenti i dati composizioni. (Ifda43).
  • API Modifier.drawWithCache aggiornata per esporre ContentDrawScope come ambito destinatario anziché DrawScope per fornire e implementazioni, la possibilità di riordinare comandi di disegno. È utile per combinare/ di colorazione, in cui i pixel dei contenuti devono essere visualizzato per primo in modo che dell'algoritmo della modalità di fusione da applicare correttamente. (Ie7ec8).
  • Sposta SimpleContainer in PopupTestUtils.kt (I78c57)
  • ConsumedData non è più una classe di dati. Per informazioni dettagliate, visita la pagina https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
  • Correggi la posizione del punto di manipolazione Rtl. (I6e1e0).
  • Refactoring di DrawScope e ContentDrawScope per essere interfacce al posto delle classi astratte
    • Implementazione di CanvasDrawScope creata di DrawScope
    • Implementazioni sottoposte a refactoring DrawScope per usare CanvasScope
    • DrawContext creato per aggregare le dipendenze per DrawScope
    • Metodi deprecati rimossi da DrawScope (I56f5e).
  • Modifica che interrompe la modifica: è stato rimosso il valore restituito da PointerInputFilter.onPointerEvent(...) in quanto l'unico valore che dovrebbe poter essere modificato negli eventi del puntatore sono i dati di consumo. Invece di restituire i dati da PointerInputFilter.onPointerEvent(...), ora puoi semplicemente modificare i dati di consumo degli eventi PointerEvents trasmessi. (I6acd0)
  • MeasureScope e IntrinsicMeasurementScope sono state create interfacce. (I1a087, b/170461665)
  • La funzione di unione perAllineaLine è stata nascosta. (I9da1a, b/170612900, b/170611568)
  • Aggiungi la possibilità di specificare le informazioni del controllo nel modificatore composto (Idee08, b/163494569)
  • Aggiunta l'opzione SelectAll al menu di selezione (Ief02b)
  • DrawTransform.rotate aggiornato un parametro pivot predefinito del centro per trovare una corrispondenza la documentazione.
    • Aggiornamento di DrawScope.rotateRad in modo da consumare un offset per la punto pivot per corrispondere ad altri metodi di trasformazione.
    • Sovraccarico DrawScope.rotateRad obsoleto che ha consumato è in virgola mobile per le coordinate x e y del pivot.
    • (Iffcbb, b/170434992)

Correzioni di bug

  • Il controllo lint delle API per MissingGetterMatchingBuilder è abilitato per Androidx (I4bbea, b/138602561)
  • Aggiungi test. (I6b8ae)
  • Abilita le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3).
  • Aggiunta l'opzione IMEI per le lettere maiuscole (I8ac38)
  • Aggiunta l'opzione della tastiera a riga singola a CoreTextField (I72e6d)
  • Sposta SimpleContainer in PopupTestUtils.kt (I65c3e)
  • L'API Radius è stata rinominata in CornerRadius per esprimere al meglio e come viene utilizzato in Compose. Documentazione aggiornata per indicare che i raggi angolari negativi siano fissati a zero. (I130c7, b/168762961)
  • Interoperabilità di Android migliorata grazie alla continuazione dell'invio di MotionEvents alle viste Android secondarie che restituiscono false per onTouchEvent per tutte le azioni tranne ACTION_DOWN (I94c5a, b/170320973)
  • Box è stato trasformato in una funzione in linea. (Ibce0c, b/155056091)

Contributo esterno

  • Supporta impostazioni internazionali diverse per AnnotatedString.capitalize e AnnotatedString.decapitalize (I4aa7f)

Versione 1.0.0-alpha05

14 ottobre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha05. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche alle API

  • Aggiungi un DSL per specificare le informazioni del controllo (Ic9a22)
  • Sposta Pressione prolungata nel testo. (Iff2bc).
  • Modificatore di input in sospensione sperimentale Modifier.pointerInput (Ia77d2)
  • Sono state aggiunte le azioni di accessibilità Copia/Incolla/Taglia (I6db4f)
  • Il costruttore pubblico per AndroidOwner è stato rimosso (Iacaef)
  • Ora i popup e le finestre di dialogo ereditano FLAG_SECURE dalla finestra principale. È stata aggiunta anche l'opzione per configurarla esplicitamente (I64966, b/143778148, b/143778149)
  • Ora i dati di consumo sono modificabili. Inoltre Chiamate a funzioni di estensione che effettuano il consumo non restituirà più un nuovo PointerInputChange, invece di modificare il valore PointerInputChange fornito.

    Questo è il primo passaggio di una procedura di 2 passaggi rendere mutabili i dati PointerEvent in modo che i dati del puntatore non possono essere modificati dal codice utente. La nel secondo passaggio consiste nel rimuovere Tipo restituito List<PointerInputChange> da PointerInputFilter.onPointerEvent(...). (ID067e)

  • Disattiva la selezione nel testo e una demo. (Ie7e97).

  • Made onGloballyPositioned di una funzione in linea (I15830)

  • OnPositionedModifier è stato rinominato OnGloballyPositionedModifier mentre onPositioned() è il nuovo nome onGloballyPositioned(). (I587e8, b/169083903)

  • La proprietà hasPendingmeasureOrLayout è stata aggiunta al proprietario, per indicare se ha lavori di layout in sospeso. (I3d9f8, b/169038599)

  • È stata aggiunta un'API per cancellare lo stato attivo in modo programmatico (Ie1dc2, b/161487952)

  • PointerInputFilter.onPointerInput(...) rimosso. Al suo posto dovrebbe essere utilizzata l'app PointerInputFilter.onPointerEvent(...). (I6f04a)

  • Modifiche alle dimensioni

    • Dimensioni.getFlipped rimosse
    • Taglia.rem rimossa
    • Rimozione di size.truncDiv (Ief44d, b/169790720)
  • Nell'ambito della procedura di standardizzazione, di valori sentinella per le classi in linea, rinomina Color.Unset in Color.Unspecified per coerenza con altre classi in linea (I97611, b/169797763)

  • Viene introdotto TextOverflow.None. Quando l'overflow è impostato su None, il testo non gestirà più l'overflow e segnalerà le loro dimensioni effettive a LayoutNode. (I175c9, b/158830170)

  • Il parametro di ambito all'interno di AnnotatedString.Builder.addStringAnnotation viene rinominato in tag per garantire la coerenza dell'API. (I7c8cb)

Correzioni di bug

  • Le prestazioni di scorrimento di LazyColumn/Row sono migliorate riducendo il lavoro di sottocomposizione a ogni scorrimento. Il nuovo metodo hasinvalidations() è stato aggiunto per la classe Composizione. il metodo hasPendingChanges() di Recomposer è stato rinominato hasinvalidations() (Ib2f32, b/168293643, b/167972292, b/165028371)
  • Dimensioni aggiornate: non specificate in modo che sia Float.NaN anziché Numero in virgola mobile.POSITIVE_INFINITY. Implementazioni di Painter aggiornate in confronta anche Dimensioni non specificate come dimensioni non finite. (I95a7e)
  • L'ordine delle chiamate place() nei layout personalizzati ora definisce l'ordine di disegno degli elementi secondari (Ibc9f6)
  • Supporta la conversione da AnnotatedString a SpannableString per l'accessibilità. (Ief907)
  • Sono stati aggiunti stub per i corsi Android attivi piattaforme meno recenti per evitare l'uso della riflessione, quando possibile. (Ia1790)
  • Bug corretto: se la tastiera software visualizzata causava l'app per tradurre, le coordinate di input del puntatore diventeranno risposta errata. (Ic4cec, b/163077821)

Versione 1.0.0-alpha04

1° ottobre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha04. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche alle API

  • È stato aggiunto OwnerScope per consentire la raccolta di gli ambiti di osservazione del layout e del disegno, una volta non è più valido. (Ic4cf8)
  • Sono stati aggiunti OnRemeasuredModifier e onSizeChanged() a ricevi una richiamata quando il layout dei contenuti è stato rimisurato rispettivamente le dimensioni sono cambiate. (I657cf, b/154108792)
  • Aggiungi l'azione semantica del clic lungo (I6281b, b/156468846)
  • FocusManager impostato come privato. (I7872f)
  • Implementazione aggiornata per la creazione un'implementazione DrawCacheModifier dedicata invece di aggiungere proprietà facoltative in DrawModifier.

    Documentazione aggiornata per i vari metodi (Ibd166)

  • Rendi TextRange in linea per evitare la creazione di oggetti. (ID034b)

  • Non è più possibile leggere i valori di posizionamentiScope#parent aggiunta e di posizionamentoScope#parentLayoutDirection dal blocco di posizionamento di un layout personalizzato. (Icc1ae, b/168295623)

  • aggiungi AccessibilityscrollState alle proprietà semantiche. (Ifeda9)

  • Introduzione di Modifier.drawWithCache per supportare la creazione di un oggetto di disegno che ricrea in modo condizionale le dipendenze che dipendono dalle informazioni di dimensioni/stato (I376dc)

  • ParagraphConstraints è stato rimosso. Ora la larghezza è passata direttamente al paragrafo. (Ica712).

Correzioni di bug

  • Aggiornamento di molte API grafiche
    • Scalabilità e rotazione aggiornate API di trasformazione per utilizzare una singola Parametro di offset per rappresentare il pivot coordinata invece di numero in virgola mobile separato per le coordinate x/y in DrawScope e DrawTransform
    • Rimossi Rect.expandToInclude e Rect.join metodi
    • Documentazione Raggio aggiornata per indicare ovale oltre all'ellittica,
    • È stata aggiunta la documentazione che indica costruttore pubblico per il raggio in linea non venga chiamata direttamente, ma È necessario creare un'istanza per gli oggetti raggio i loro costruttori di funzioni
    • Rimosse le API RoundRect per eseguire query in topRight, in basso a destra, in basso al centro ecc.
    • Rect.shift obsoleto in favore di Rect.translate
    • Rimosse le API RoundRect.grow e Rect.shrink
    • RoundRect.outerRect rinominato in Rect.boundingRect
    • Rimosso RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
    • RoundRect.longestSide è stato rinominato RoundRect.maxDimensione
    • RoundRect.shortestSide è stato rinominato RoundRect.minDimensione
    • RoundRect.center modificato in una proprietà anziché in una funzione
    • Costruttore RoundRect aggiornato per utilizzare le proprietà Raggio anziché i singoli parametri per i valori del raggio x/y
    • Rimosse le API Dimensioni che supponevano che si trattasse di un rettangolo con origine a 0,0
    • Aggiunta di un'API di distruzione a Radius
    • Migrazione di varie funzioni di estensione RoundRect in modo che proprietà
    • (I8f5c7, b/168762961)
  • Foundation.Box è stato deprecato. Usa il metodo ground.layout.Box. (Ie5950, b/167680279)
  • Stack è stato rinominato Box. Il formato Box esistente in precedenza verrà ritirato e sostituito con il nuovo Box all'indirizzo composizione.foundation.layout. Il comportamento del nuovo riquadro consiste nell'impilare gli elementi secondari uno sopra l'altro quando sono presenti più elementi secondari. È diverso dal riquadro precedente, che aveva un comportamento simile a quello di una colonna. (I94893, b/167680279)
  • I parametri per la decorazione della casella sono stati ritirati. Se vuoi aggiungere decorazioni/spaziature sulla scatola, usa i Modifiers (Modifier.background, Modifier.edge, Modifier.padding) (Ibae92, b/167680279).
  • Aggiornamento di molte API grafiche
    • API DrawScope aggiornate con ambito di trasformazione per indicare che la trasformazione viene applicata solo all'interno il callback e rimosso dopo l'invocazione del callback
    • Documentazione clipPath aggiornata per fare riferimento a Percorso al posto del rettangolo arrotondato
    • Spaziatura fissa nella documentazione per il parametro giusto in clipPath
    • DrawScope.drawCanvas è stato rinominato in drawIntoCanvas e parametro size rimosso
    • I parametri dx/dy sono stati rinominati nel metodo inset orizzontale e verticale
    • Aggiunto un sovraccarico nel riquadro che fornisce lo stesso inserisci il valore in tutti e 4 i limiti
    • Rimossa la documentazione sul metodo con inserto che indicava questo riquadro viene applicato a tutti e 4 i lati
    • Documentazione aggiornata per la classe Rect
    • Commenti aggiornati sui parametri Rect per farli corrispondere a Kdoc stile
    • Rect.join e Rect.expandToInclude rimossi
    • È stato creato un sovraccarico per Rect.translate(offset) e Rect.shift deprecato
    • (If086a, b/167737376)
  • Annotated rootAnimationClock Fabbrica, transizionisEnabled, blinkingCursorEnabled e textInputServiceFA con @VisibileForTesting, imposta l'API interna e nascondi il file kdoc (I554eb, b/168308412)
  • Rimuovi SelectionContainer dall'alto per disabilitare la selezione predefinita ed evitare comportamenti imprevisti. È possibile utilizzare in modo specifico un SelectionContainer per aggregare i contenuti che devono essere selezionabili. (I8dfe0, b/158459594)

Versione 1.0.0-alpha03

16 settembre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha03. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Rimuovi le azioni semantiche di scorrimento avanti/indietro. Passaggi aggiunti in AccessibilityRangeInfo. (Ia47b0)
  • onInvalidate() rimosso da Owner - OwnedLayer gestisce l'annullamento della convalida. (Ica72b, b/162061312)
  • Metodi dell'operatore rimossi da Dimensione API che utilizzano parametri Offset. La il risultato di queste operazioni non è chiaro e il tipo di risultato è inaspettato per questi elementi. Es. Dimensione dovrebbe - compensare ritorno un offset o un risultato di dimensione con la differenza?

    Sono stati rimossi anche i metodi deprecati nella classe size. (Iec902, b/166514214)

Correzioni di bug

  • Correzione di elementi di LazyColumn che a volte venivano tracciati in modo errato e causava anche arresti anomali in alcune condizioni. (Ibcf17, b/163066980, b/165921895)
  • I DpConstraints e le API che lo utilizzano sono stati deprecati. (I90cdb, b/167389835)
  • createAndroidComposeRule e AndroidInputDispatcher spostati da Da androidx.ui.test.android a androidx.ui.test (Idef08, b/164060572)
  • Gli utilizzi della gravità sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
  • Aggiunti onNode e altri metodi globali a ComposeTestRule come quelle globali attuali saranno ritirate. (IEae 36).

Versione 1.0.0-alpha02

2 settembre 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha02. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • rimuovi il callback per inviare una notifica al proprietario quando i limiti di layoutnode cambiano. (If654e, b/166106882)
  • Aggiunto il supporto per il tipo di riempimento sui percorsi delle grafiche vettoriali per supportare ritagli di forme secondo regole di riempimento del percorso pari o diverse da zero. (I43dd2)
  • Uptime e Velocity sono ora classi in linea (I48f4a)
  • La durata è ora una classe in linea (I565eb)
  • Aggiungi un callback per inviare una notifica al proprietario quando i limiti di layoutnode cambiano. (Ic40b3)
  • È stato risolto il problema per cui il costruttore della funzione Rect con Offset e raggio creerebbe il Rettangolo nella in ordine di sinistra, destra, alto, basso anziché a sinistra, in alto, a destra, in basso.

    Metodi companion deprecati su Rect in a favore dei costruttori di funzioni.

    Sono stati aggiunti test per verificare i metodi in Rect.kt (I08460, b/165822356)

Correzioni di bug

  • È stato aggiunto MutableRect, un rettangolo che può essere modificato. (I71bd2, b/160140398)
  • Matrix4 è stato sostituito con Matrix. Tutte le altre parti del pacchetto vectormath sono state rimosse. (Ibd665, b/160140398)
  • La convenzione di chiamata per le funzioni componibili ha è cambiato. Questa è una modifica che provoca un errore binario. Tutte le librerie devono essere ricompilato per funzionare con questa versione del plug-in del compilatore per la scrittura.

    Questa modifica non crea una modifica che provoca un errore a livello di origine, poiché solo le API che sono cambiate sono API di compilazione con un'esplicita attivare questa funzionalità. (I7afd2, b/158123185)

  • È stato corretto l'arresto anomalo che poteva verificarsi a un PointerInputFilter potrebbe causare il filtro PointerInputFilter da rimuovere in modo sincrono. (I58f25)

Versione 1.0.0-alpha01

26 agosto 2020

Viene rilasciato androidx.compose.ui:ui-*:1.0.0-alpha01. La versione 1.0.0-alpha01 contiene questi commit.

Versione 0.1.0-dev

Versione 0.1.0-dev17

19 agosto 2020

Viene rilasciato androidx.compose.ui:ui-*:0.1.0-dev17. La versione 0.1.0-dev17 contiene questi commit.

Modifiche alle API

  • emitView è stato deprecato. Se possibile, utilizza AndroidView per inviare visualizzazioni all'interno di Compose. Tieni presente che la composizione diretta di Visualizzazioni e ViewGroups non sarà supportata in futuro, a meno che non vengano lasciate nella struttura di composizione, nei casi in cui sia possibile farlo utilizzando AndroidView. (I29b1e, b/163871221)
  • FocusState2 è deprecato e sostituito da FocusState (Ia8b79, b/160822876, b/160923332)
  • Gli sovraccarichi di AndroidView deprecati sono stati rimossi. (I946b9, b/163802393)
  • Le emissioni personalizzate ora possono dichiarare che uno o più dei setter può essere saltato e ricomposto indipendentemente dall'emissione. (Ibbd13)
  • Classi vettoriali modificate in non più devono essere classi di dati poiché la stessa istanza di oggetto utilizzato per la composizione.

    È stato aggiunto il flag mutableStateOf per VectorPainter ridisporre in modo condizionale se i contenuti una variazione del vettore.

    Rifattorizzazione dell'istanza VectorComponent in modo che sia parte di VectorPainter poiché viene riutilizzato tra le composizioni.

    GroupComponent e PathComponent aggiornati Per fare in modo che i campi dei nomi siano modificabili (Ieae45, b/151378808)

  • onChildPositioned e OnChildPositionedModifier rimossi. Gli sviluppatori dovrebbero usare onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766)

  • L'offset è diventato una classe in linea (Iaec70)

  • È stato aggiunto un parametro di modifica a SelectionContainer (I4aada, b/161487952)

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

  • mergePolicy lambda aggiunto a SemanticsPropertyKey. Può essere utilizzato per definire un criterio personalizzato per la semantica diMergeAllDescendants l'unione. Il criterio predefinito prevede l'utilizzo del valore padre, se già impostato presente, altrimenti il valore figlio. (Iaf6c4, b/161979921)

  • I vincoli sono ora una classe in linea (I88736)

  • È stato aggiunto FocusManager che sposta la logica di focus comune da AndroidComposeView (I528ef, b/161487952, b/162206799).

  • Nomi PointerEventPass aggiornati per la release alpha. (Ifda6f).

  • IntOffset è ora una classe in linea (Iac0bf)

  • IntSize ora è una classe in linea (I2bf42)

  • PlacementScope.placeAbsolute() è stato rinominato in PlacementScope.place() e la PlacementScope.place() precedente è stata rinominata PlacementScope.placeRelative(). Di conseguenza, il metodo PlacementScope.place() non rispecchierà più automaticamente la posizione in contesti con scrittura da destra a sinistra. Se vuoi, puoi usare il criterio PlacementScope.placeRelative(). (I873ac, b/162916675)

  • AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)

  • Alcune utilità di test non sono state pubbliche perché non si trovano dove appartengono. Verrà resa pubblica in futuro. (I32ab1)

  • Organizzazione del refactoring dell'input del puntatore le API nel tuo codice. (Ie3f45).

  • PxBound deprecati in a favore di Rect. Tutti gli utilizzi sono stati aggiornati di PxBounds con rettangolo e aggiunto ritirarli/sostituire correttamente annotazioni per supportare il migrazione. (I37038, b/162627058)

  • Rimosso KeyEvent2 deprecato. Utilizza invece KeyEvent. (Ied2d0, b/162097587)

  • KeyEvent ha una proprietà Unicode che può essere utilizzata per ottenere il carattere Unicode generato dalla combinazione di chiave e stato della meta chiave specificata (If3afc)

  • Evento personalizzato DelayUp creato e le classi correlate, un'API di attivazione, molto probabilmente verrà modificata. (I56d6f)

  • Rimossi 2 PointerEventPass che non sono più necessaria. (I3dd9d)

  • Aggiungi il colore, l'ombra e il testo dei parametri a Paragraph.paint Questa funzione è utile per evitare la ricreazione del paragrafo non necessaria. (I81689)

Correzioni di bug

  • Rimosse le richiamate onFocusChanged da TextField. Usa invece Modifier.focusObserver. (I51089, b/161297615)
  • Modifier.drawBorder è stato ritirato. Usa invece Modifier.border. La classe dei dati confine è stata sostituita da BorderStroke (I4257d, b/158160576)
  • Rimosse le chiamate FrameManager deprecate.

    Le API di scrittura interne sono state modificate per ridurre la quantità overhead per monitorare oggetti di stato come mutableStateof() (I80ba6)

  • Verticalscroller e Horizontalscroller sono stati rimossi. Usa invece la colonna Scorribile/Riga. Modifier.drawBackground è stato rimosso. Utilizza Modifier.background (I73b0d, b/163019183)

  • Si verifica un arresto anomalo quando un elemento che salva lo stato utilizzato all'interno del loop for viene corretto. Ora che è consentita la stessa chiave in savedInstanceState(), l'API di UiSavedStateRegistry viene regolata in base a questo nuovo requisito (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)

  • Il componibile state { ... } è ora deprecato e sostituito con inviti espliciti a remember { mutableStateOf(...) } per maggiore chiarezza. Ciò riduce la superficie complessiva dell'API e il numero di concetti per lo stato gestione e corrisponde al pattern by mutableStateOf() per la classe delega delle proprietà. (Ia5727)

  • RRect rinominato in RoundRect per adattarsi meglio ai pattern di denominazione per la scrittura Costruttori di funzioni simili creati a RRect e la funzione RRect deprecata costruttori (I5d325)

Versione 0.1.0-dev16

5 agosto 2020

Viene rilasciato androidx.compose.ui:ui-*:0.1.0-dev16. La versione 0.1.0-dev16 contiene questi commit.

Modifiche alle API

  • Il valore OnChildPositioned è stato ritirato. Utilizza OnPositioned sul figlio. (I87f95, b/162109766)
  • L'impostazione setViewContent è stata ritirata. al suo posto occorre usare setContent. (I7e497, b/160335130)
  • È stata aggiunta l'API AndroidViewBinding per aumentare e scrivere le risorse di layout in base a ViewBinding. (I081c6)
  • KeyEvent2 viene sostituito da KeyEvent (I2d770, b/162097585)
  • Aggiunto il supporto per la chiave hardware Alt (I9036b)
  • FocusManager è deprecato. Usa invece Modifier.focus(), Modifier.focusObserver() e Modifier.focusRequester(). (I74ae4, b/162211322)
  • loadVectorResource supporta gli attributi trimPath (I808fe)
  • Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
  • Rimossi 2 PointerEventPass che non sono più necessaria. (I33ca7).
  • Implementazione di PointerInteropModifier che fornisce possibilità di ricevere eventi MotionEvents e interagire con Compose come se l'implementazione fosse una vista Android. (Ieb08c)
  • Rimosso il modificatore di tag obsoleto. Usa invece layoutId. (Idaa05, b/162023919)
  • Le API per il supporto da destra a sinistra sono state aggiornate. È stato aggiunto LayoutDirectionAmbient, che può essere utilizzato per leggere e modificare la direzione del layout. Modifier.rtl e Modifier.ltr sono stati rimossi. (I080b3)
  • Supporto del ritaglio dei percorsi nelle grafiche vettoriali (Ie16c9, b/158188351)
  • È stato aggiunto Modifier.layout() che permette di creare comodamente un modificatore di layout personalizzato (I73b69, b/161355194)
  • È stata aggiunta una nuova API AndroidView e sono state ritirate quelle esistenti. (I5bcfd)
  • Modifier.plus è stato ritirato. Usa Modifier.then al suo posto. 'Allora' ha un segnale di ordinamento più forte, ma vieta anche di digitare Modifier.padding().background() + anotherModifier, il che spezza la catena e rende più difficile da leggere (Iedd58, b/161529964)
  • Aggiungi le sottoclassi [Abstract]ComposeView View per ospitare Compose contenuti in una gerarchia di visualizzazione. (I46357)
  • Row e Column ora sono funzioni in linea significativamente per ridurre i costi di utilizzo. (I75c10)
  • SubcomposeLayout viene aggiunto. Si tratta di una primitiva di basso livello che consente di comporre i bambini durante la misurazione se vogliamo utilizzare alcuni valori disponibili solo in seguito durante la misurazione per la composizione del sottoalbero. Ad esempio, WithConstraints non è implementato utilizzando SubcomposeLayout. (I25cc8)
  • È stato aggiunto SemanticsNode.positionInRoot per ottenere la posizione di SemanticsNode rispetto alla radice della gerarchia di Compose (Icdf26, b/161336532)
  • Eventi MotionEvents completati completamente da Android, in Compose di nuovo in Android. (I14be8, b/158034713)
  • Menu a discesa rimosso. (I00430)
  • È stata corretta la posizione dei popup sui display ritagliati. (Idd7dd)
  • Aggiungi un'azione di accessibilità per ottenere TextLayoutResult (I9d6e6)
  • RemeasurementModifier aggiunto. consente di rimisurare il layout in modo sincrono. In generale, non è mai necessario perché la nuova misurazione/relayout avviene automaticamente, ma la usiamo all'interno di LazyColumnItems durante lo scorrimento. (I5f331, b/160791058)
  • Rimuovi getLineEllipsisOffset/getLineEllipsisCount. Utilizza le funzionalità di getLineVisibileEnd/getLineEnd/isLineEllipsize. (I85aa2)
  • Aggiungi alcuni segni/annotazioni per motivi legati alle best practice. (I66b20)
  • esponi altre API di riga in TextLayoutResult. (I79bd2)
  • Convertitori vettoriali integrati per la conversione le unità sono ora accessibili tramite Foo.VectorConverter. ad es. Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter e così via (I3e273)

Correzioni di bug

  • Correzione di correzioni API generiche (I077bc)
      .
    1. Rimuovi l'interfaccia OffsetBase inutilizzata
    2. Allinea le classi Offset e IntOffset per avere una piattaforma API coerente
    3. Rinomina IntOffset.Origin in IntOffset.Zero coerente con l'API Offset
    4. Metodo nativeCanvas spostato da Canvas interfaccia per aiutare i consumatori a creare delle proprie istanze Canvas
    5. È stata creata la classe stub EmptyCanvas di cui eseguire il refactoring DrawScope per essere un parametro non null al posto di lateinit e garantire che il campo non sia nullo
    6. Le enumerazioni ClipOp sono state rinominate in Pascal Case
    7. Le enum di FiltroQualità sono state rinominate in richiesta Pascal
    8. Le enumerazioni StrokeJoin sono state rinominate in richiesta Pascal
    9. Le enumerazioni PointMode sono state rinominate in caso Pascal
    10. Le enumerazioni PaintingStyle rinominate in Pascal Case
    11. Le enum PathFillType sono state rinominate in maiuscole e minuscole
    12. Le enumerazioni StrokeCap sono state rinominate in caso Pascal
    13. Implementazione DrawCache aggiornata in modo che non sia più utilizza parametri lateinit
    14. DrawScope aggiornato per non utilizzare più la delega lazy per i parametri interni FillPaint e pulsePaint
    15. Immagine componibile aggiornata per evitare l'uso di Box a un costo minore
    16. Aggiornata la classe Outline per avere annotazioni @Immutable
    17. PathNode aggiornato dispone di annotazioni @Immutable per l'istruzione di ogni percorso
    18. Sottocomposizione Vector aggiornata per rimuovere i file ridondanti controlli condizionali di uguaglianza mentre gestisce già la scrittura loro
    19. Metodi costruttore companion Rect deprecati a favore di costruttori di funzioni
    20. Classi e costruttori di funzioni di Pennello aggiornati con API @Immutable e @Stable
    21. Enum VertexMode aggiornato in PascalCase
    22. Metodo selectPaint DrawScope aggiornato in modo condizionale i parametri del tratto sul dipinto, se presenti modificato
    23. Dimensioni aggiornate per aggiungere l'API di destrutturazione, rinomina Da UnspecifiedSize a Non specificato e metodi inutilizzati rimossi
  • Consumo aggiornato dell'API ComposeMode per mappare correttamente tra fusionModes del framework Android e PorterDuff in base al livello API. Introduzione dell'API MergeMode#isSupported per agire come query di capacità per determinare se la modalità è supportata sul dispositivo prima di essere utilizzata. (I0ef42)
  • LazyItemScope è stata aggiunta per il parametro itemContent degli elenchi Lazy. Fornisce modificatori per riempire la dimensione massima principale, il che risolve il caso d'uso in cui l'elemento deve riempire l'area visibile e la funzione Modifier.fillMaxSize() regolare non funziona perché l'elemento viene misurato con vincoli infinito. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture rimosso. Utilizza le funzionalità di SemanticsNodeInteraction.performGesture in alternativa. (ID9b62)
  • LazyColumnItems è stato rinominato in LazyColumnFor. LazyRowItems è stato rinominato in LazyRowFor (I84f84)
  • Il pacchetto foundation.shape.corner è stato suddiviso in foundation.share (I46491, b/161887429)
  • AndroidComposeTestRule rinominato in createAndroidComposeRule. (I70aaf)
  • Sono state aggiunte altre API a TextLayoutResult. (Id7e04)
  • Il materiale FilledTextField è stato rinominato in TextField e il TextField di base è stato rinominato in BaseTextField per semplificare l'individuazione e l'utilizzo dell'API desiderata più semplice (Ia6242, b/155482676)
  • Modifier.drawBackground è stato rinominato in Modifier.background (I13677)

Versione 0.1.0-dev15

22 luglio 2020

Viene rilasciato androidx.compose.ui:ui-*:0.1.0-dev15. La versione 0.1.0-dev15 contiene questi commit.

Aggiornamento delle dipendenze

  • Per utilizzare la versione 0.1.0-dev15 di Compose, dovrai aggiornare le dipendenze in base ai nuovi snippet di codice mostrati sopra nella sezione Dichiarazione delle dipendenze.

Modifiche alle API

  • FocusModifier è stato ritirato a favore di Modifier.focus, Modifier.focusRequester e Modifier.focusObserver. FocusState e FocusDetailsState sono stati deprecati a favore di FocusState2 (I46919, b/160822875, b/160922136)
  • È stato aggiunto un modificatore per osservare il cambiamento dello stato dello stato attivo. (I05866, b/160924455, b/160923326)
  • È stato aggiunto un modificatore per richiedere modifiche allo stato attivo (I8dd73, b/161182057, b/160924778)
  • Nascondi il menu della barra degli strumenti per visualizzare le opzioni di copia, taglia e incolla correttamente. (ID3955)
  • Le proprietà semantiche di un singolo valore ora utilizzano uno stile di chiamata. Ad esempio, "semantics {hidden = true }". è ora scritta come segue: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • È stato aggiunto Modifier.focus, che sostituisce FocusModifier. (Ib852a, b/160924778)
  • Aggiungi FloatingToolbar per la selezione dei campi di testo. (Ie8b07).
  • È stata aggiunta un'annotazione API sperimentale per l'API correlata all'input delle chiavi (I53c0a)
  • È stata aggiunta un'annotazione API sperimentale per tutte le API relative a Focus (I53b24, b/160903352)
  • È stato aggiunto FocusState2 che sostituirà FocusDetailsState (I0a3ba, b/160822595)
  • È stato aggiunto ExperimentalFocus, che è un'annotazione @OptIn per l'API Focus. (I1544b, b/160820961)
  • È stata aggiunta una classe unità IntBounds che rappresenta i limiti di pixel interi del layout. L'API di PopupPositionProvider è stata aggiornata in modo da utilizzarla. (I0d8d0, b/159596546)
  • L'applicatore ora richiede un metodo clear() per l'eliminazione composizioni (Ibe697)
  • KeyEvent è deprecato e sostituito da KeyEvent2 (I68730)
  • È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai rilevatori di test. (I2ce48)
  • Aggiunta dell'API sperimentale LayoutNode (I4f2e9)
  • Sono stati aggiunti metodi di copia a vari tipi di classi incorporate, tra cui:

    • Offset
    • Dimensioni
    • Raggio
    • Movimento
    • OrigineTrasformazione

    • Metodo dell'oggetto companion size.copy deprecato favore del metodo di copia dell'istanza (Ife290, b/159905651)

  • Popup, finestre di dialogo e menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)

  • TextDirection è rinominata ResolvedTextDirection (I3ff38)

  • Rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). La direzione del layout è tuttavia disponibile all'interno del callback tramite l'oggetto ambito misurazione (Ic7d9d)

  • Esegui il refactoring degli handle di selezione per il riutilizzo. (I420e0)

  • Il pulsante Clickable è stato rimosso. Utilizza Modifier.clickable (I84bdf)

  • TestTag e Semantics sono stati eliminati. Usa invece Modifier.testTag e Modifier.semantics (I15ff0, b/158841414).

  • Prima di questa modifica, il plug-in del compilatore Composer avrebbe intercettato in modo non banale le chiamate ai costruttori all'interno di una funzione @Composable se esisteva un (I5205a, b/158123804)

  • Modifier.tag è stato rinominato in Modifier.layoutId per evitare confusione con Modifier.testTag. (I995f0)

  • Le posizioni di interazione della linea di allineamento restituite da Placeable#get(AllineamentLine) sono ora diverse da null. Se manca la linea di allineamento sottoposta a query, verrà restituitocato RedirectLine.Unspecified. (I896c5, b/158134875)

  • Al componibile AndroidView è stato aggiunto un parametro del modificatore. (I48a88, b/158746303)

  • La funzione Semantics() è deprecata. Usa invece Modifier.semantics(). (I72407, b/158841414)

  • Aggiungi il componente componibile viewModel() che consente di creare o ottenere un valore ViewModel già creato in modo simile a come funziona in Activity o Fragment (I5fdd1)

  • È stato sostituito l'utilizzo di IntPx con Int. IntPxPosition sostituita con IntOffset. IntPxSize sostituito con IntSize. (Ib7b44).

  • Per consolidare i numero di classi utilizzate per rappresentare sulle dimensioni, standardizza sull'utilizzo della classe Dimensioni, di PxSize. Questo offre i vantaggi di una classe in linea per sfruttare per pacchettizzare 2 valori in virgola mobile per rappresentare larghezza e altezza rappresentate da numeri in virgola mobile. (Ic0191)

  • Per consolidare i numero di classi utilizzate per rappresentare le informazioni di posizionamento, standardizzare sull'uso della classe Offset di PxPosition. Questo offre i vantaggi di una classe in linea per sfruttare per raggruppare 2 valori in virgola mobile che rappresentano x e gli offset y rappresentati come numeri in virgola mobile. (I3ad98)

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel. Classe Px eliminata nella sua interezza (I3ff33)

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I086f4)

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (Id3434)

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I97a5a)

  • TestTag è ora deprecato. Utilizza invece Modifier.testTag. (If5110, b/157173105)

  • L'implementazione predefinita e senza intervento di ParentDataModifier#modifyParentData è stata rimossa. Era equivalente a non implementare l'interfaccia. (I0deaa)

  • ScaleFit deprecato in precedenza come rimosso. Utilizza invece ContentScale. (Ifbc5b).

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I19d02)

  • È stato aggiunto il componente Menu a discesa in ui-material, un'implementazione del menu Material Design. (I9bb3d)

  • Rimossa l'opzione LayoutTag() deprecata. Usa invece Modifier.tag(). Rimossa la funzione Modifier.matchParent() deprecata. Usa invece Modifier.matchParentSize(). (If8044)

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (I57bff)

  • Modifier.semantics non è più deprecata per consentire l'utilizzo di componenti di alto livello. (I4cfdc)

  • Implementazioni consolidate di CanvasScope Ora ci sono solo DrawScope e ContentDrawScope CanvasScope rinominato in DrawScope. DrawScope aggiornato per implementare la Densità all'interfaccia e fornisce LayoutDirection Sottoclasse DrawScope eliminata in ContentDrawScope Painter e PainterModifier sono stati aggiornati per non mantenere più una proprietà RTL poiché DrawScope fornisce già questa funzionalità, senza fornirlo manualmente (I1798e)

  • DoppioToccaGestoFiltra ora disambigua SingleTapGeFilter dall'altra parte dell'albero. (If92b1)

  • È stata aggiornata l'API Linking e aggiunto il supporto dell'allineamento assoluto (che non esegue il mirroring automatico nel contesto Rtl) (I38cd3).

  • L'API dei modificatori DrawLivello è stata modificata: outlineShape è stato rinominato forma e ha il valore predefinito rettangoloForma e ora non è possibile impostare valori null; clipToOutline rinominato in clip; clipToBounds rimosso perché è uguale a clip == true con rettangoloShape (I7ef11, b/155075735)

  • Aggiornato a un livello superiore che espongono un elemento Canvas esponi CanvasScope. Questa operazione rimuove la necessità da parte dei consumatori di mantenere oggetti Paint. Per i consumatori che richiedono comunque l'accesso a Canvas è possibile usare l'estensione drawCanvas che fornisce un callback al problema di tracciare i comandi con Tela. (I80afd)

  • L'API lambda finale WithConstraints è stata modificata. Ora, invece di due parametri, ha un ambito ricevitore che, oltre ai vincoli e layoutDirection fornisce le proprietà minLarghezza, maxwidth, minHeight e maxHeight in Dp (I91b9a, b/149979702)

  • LayoutModifier2 rinominato in LayoutModifier. (ID29f3)

  • Rimossa l'interfaccia LayoutModifier deprecata. (I2a9d6).

  • Le funzioni di misurazione intrinseca in Layout e LayoutModifier2 dispongono ora di un ricevitore Intrinsic MeasureScope che fornisce l'API di query intrinseca con direzione di layout propagata implicitamente. (ID9945)

  • I componenti secondari Layout e LayoutModifier possono essere misurati con una direzione di layout diversa. (Ibd731)

  • Viene aggiunto il nuovo Modifier.zIndex() per controllare l'ordine di disegno degli elementi secondari all'interno dello stesso layout principale. e non controlla più l'ordine del disegno. L'ordine dei parametri di DrawShadow è modificato: l'elevazione è ora la prima e la forma è la seconda con un valore predefinito rettangoloForma. (I20150, b/152417501)

  • Rimossi onSizeChange e onPositionChange in Proprietario. (I5c718)

  • Constraints2 aggiunti, una copia dei vincoli che supporta solo i valori dei vincoli Int anziché IntPx. IntPx verrà rimosso e si presume che tutti i vincoli interi essere pixel come Android.

    • È stato aggiunto anche IntSize, che andrà a sostituire IntPxSize. (I4b43a).
  • È possibile creare un'istanza dell'allineamento Allineamento con valori arbitrari. Aggiunti allineamenti 1D. (Ia0c05)

  • alignToSiblings ora accetta un modello Measured (Misurato) anziché posizionabile. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit rinominato in ContentScale
    • Spostamento di ContentScale da ui-graphics a ui-core nello stesso modulo dell'Allineamento tramite Google Cloud CLI o tramite l'API Compute Engine.
    • FillMaxDimensione è stato rinominato in Ritaglia
    • FillMinDimensione è stato rinominato in Adatta
    • Adattamento rinominato in Inside per una corrispondenza migliore
    • Equivalenti ImageView.ScaleType
    • È stata aggiunta la documentazione che indica che la combinazione di Ritaglia e Allineamento.Center ottiene lo stesso risultato. come ImageView.ScaleType.CENTER_CROP e Fit utilizzato con Guidelines.Center ottiene lo stesso risultato di ImageView.ScaleType.FIT_CENTER All'interno, utilizzato con Linking.Center, ottiene lo stesso risultato come ImageView.ScaleType.CENTER_INSIDE
  • Supporto RTL per i modificatori di disegno. (I0aaf9)

  • È stata rilasciata un'API per il gonfiaggio delle visualizzazioni Android da XML. Per ulteriori dettagli, vedi la demo di ViewInCompose. (I42916)

  • Migliora l'API DrawModifier:

    • Ambito del ricevitore per draw() ContentDrawScope
    • Sono stati rimossi tutti i parametri in draw()
    • DrawScope ha la stessa interfaccia del precedente CanvasScope
    • ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
  • Sono stati aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)

  • DrawlayerModifier e drawlayer() ora clipToBounds predefiniti e clipToOutline su false. (I0eb8b, b/152810850)

  • Il valore LayoutResult è stato rinominato in MeasureResult. (ID8c68)

  • È stata aggiunta LayoutModifier2, una nuova API per la definizione dei modificatori di layout. LayoutModifier (If32ac) ritirato

  • Sostituito Modificatore più operatore con funzioni di estensione di fabbrica (I225e4)

  • Proprietà TranslationX/Y aggiunte al supporto compensare l'elenco di visualizzazione dei comandi di disegno di un determinato strato. Questa funzionalità è utile per spostare i contenuti in risposta ad animazioni o eventi touch. (I8641c)

  • Parametri pivotX e pivotY aggiunti alle API di livello per supportare la rotazione e la scalabilità intorno a un particolare punto di un livello (Icf7c3)

  • Aggiungere OnPositionedModifier e OnChildPositionedModifier per sostituire OnPositioned e OnChildPositioned funzioni. (I2ec8f)

  • È stato aggiunto LayerModifier, un modificatore che consente aggiungendo un RenderNode per un layout. Consente di impostare ritaglio, opacità, rotazione, ridimensionamento e ombre. Questo sostituirà RepaintBoundary. (I7100d, b/150774014)

  • È stata eseguita la propagazione della direzione del layout dal nodo di layout principale ai nodi secondari. Aggiunto il modificatore di direzione del layout. (I3d955)

  • Il componente Stack supporta la direzione da destra a sinistra (Ic9e00)

  • Supporto iniziale per Rtl nel layout Compose (Ia5519)

  • Density e DensityScope sono stati uniti in un'unica interfaccia. Al posto di ambientDensity() ora puoi usare DensityAmbient.current. Invece di withDensity(density) solo with(density) (I11cb1)

  • LayoutCoordinates modificato per rendere providedAllineamentLines un set invece di una mappa e fare in modo che LayoutCoordinate implementi l'operatore get() per recuperare un valore. In questo modo, diventa più facile per i modificatori per modificare uno o più valori dell'insieme senza creando una nuova raccolta per ogni modificatore. (I0245a)

  • LayoutCoordinates non ha più una proprietà di posizione. La position non ha senso quando si considerano LayoutModifiers, la rotazione o la scalabilità. Gli sviluppatori dovrebbero usare parentCoordinate e figlioToLocal() per calcolare la trasformazione da uno LayoutCoordinate a un altro.

    LayoutCoordinates utilizza IntPxSize per la proprietà delle dimensioni anziché Dimensioni Px. I layout utilizzano dimensioni in pixel intere per i layout, pertanto tutte le dimensioni dei layout devono utilizzare numeri interi e non valori con rappresentazione in virgola mobile. (I9367b)

  • Miglioramenti alla superficie API dei vincoli (I0fd15)

  • È stata creata l'API CanvasScope che aggrega un Canvas per esporre un oggetto superficie dell'API di disegno. Le trasformazioni sono contenute nell'ambito del ricevente e sulle informazioni sulle dimensioni abbia come ambito anche i corrispondenti limiti inseriti. Non richiede che il consumatore mantenga il proprio stato Verniciatura per configurare le operazioni di disegno.

    • È stato aggiunto CanvasScopeSample e ha aggiornato l'app demo per includere una grafica dichiarativa demo (Ifd86d)
  • API MaskFilter inutilizzata rimossa perché ha un utilizzo limitato e non è ottimizzato per l'accelerazione hardware nella maggior parte dei casi d'uso (I54f76)

  • Rettangolo spostato da androidx.ui.foundation.shape.* ad androidx.ui.graphics.* (Ia74d5, b/154507984)

  • Sostituiti tutti gli utilizzi dei colori null nell'API sostituiti con non null e utilizza Color.Unset anziché null (Iabaa7)

  • Introduci un rettangolo facoltativo aggiuntivo a ImagePainter per supportare che traccia una sottosezione di ImageAsset sottostante (I0ea9e)

  • È stato aggiunto il colore non impostato per rappresentare un valore non impostato senza colori per il pugilato. (If901a)

  • È stato aggiunto Canvas.rotate e per i metodi di estensione Canvas.scale utilizzare coordinate pivot facoltative per e piccole trasformazioni. Questi valori predefiniti nell'angolo in alto a sinistra della la traduzione attuale del canvas.

    Anche Canvas.rotateRad è stato spostato in un metodo di estensione per garantire coerenza (Ibaca6)

  • API PixelMap creata per l'assistenza interrogando le informazioni sui pixel da un ImageAsset. (I69ad6)

  • Rinominato inFrameworkRect/toFrameworkRectF in toAndroidRect/toAndroidRectF in modo che corrisponda alla convenzione di denominazione per le conversioni di oggetti tra Compose e Android e del framework API su cui si basano. Aggiornato anche su queste API (I86337)

  • È stata aggiunta l'API VectorPainter a sostituire l'API di sottocomposizione esistente per grafica vettoriale. Risultato della sottocomposizione è un oggetto VectorPainter invece che DrawModifier. DrawVector precedente ritirato componibili a favore di VectorPainter.

    API Image(Painter) rinominata in PaintBox(Painter) È stato creato un vettore componibile che si comporta come Immagine componibile, tranne che con un VectorAsset di un ImageAsset (I9af9a, b/149030271)

  • Immagine rinominata in ImageAsset per distinguere meglio la differenza tra i dati immagine e l'imminente componibile delle immagini utilizzato per partecipare al layout e disegnare contenuti. _Body:Metodo di estensione creato su android.graphics.Bitmap, Bitmap.asImageAsset(), per creare un'istanza di un ImageAsset utile per combinare le applicazioni Android lo sviluppo di applicazioni con il framework di composizione (Id5bbd)

  • Aggiunta TextDirection.Content (I48f36)

  • Operatore TextDecoration.plus aggiunto (I0ad1a)

  • Force è stato rimosso dai valori enum di TextDirectionAlgorithm (Icc944)

  • TextDirectionAlgorithm è rinominato TextDirection (I75ce8)

  • Implementa LongPressAndTrascina per la selezione dei campi di testo. (I17919)

  • È stato aggiunto AnnotatedString.getStringAnnotazioni che restituisce tutte le annotazioni all'interno dell'intervallo. (I1fa00)

  • Il nome del pacchetto per le impostazioni internazionali e Impostazioni internazionali è stato modificato da Da androidx.ui.text ad androidx.ui.intl (I8132c)

  • Il cursore di TextField ha un'animazione lampeggiante (Id10a7)

  • Modifica all'API: AnnotatedString(builder: Builder) è stata rinominata in annotadString(builder: Builder). (Ia6377)

  • Modifica dell'API: AnnotatedString.Item viene rinominata AnnotatedString.Range. (I2d44d)

  • Rinomina AnnotatedString.Builder.addAnnotationString in addStringAnnotation. (I5059e)

  • Ora è possibile nascondere/mostrare la tastiera software utilizzando SoftwareKeyboardController fornito da onTextInputStarted callback (I8dc44, b/151860051)

  • È stato aggiunto l'operatore più per lo stile (Testo/Paragrafo/Span) delega la funzioneMerge(). (Ia1add)

  • FontWeight.lerp non si aggancia più. È ancora una classe di dati. (I521c2).

  • Il costruttore FontWeight è ora pubblico e non è più una classe di dati. (ID6b1f)

  • Aggiungi getLineStart, getLineEnd, getEllipsisOffset e getEllipsisCount a TextLayoutResult (Ibc801)

  • Il modulo ui-text è stato rinominato ui-text-core (I57dec)

  • Rimossa classe size inutilizzata poiché esiste una classe size duplicata nel modulo ui-geometry, consumato. (I1b602).

  • È stato aggiunto AdapterList, un componente per elenchi a scorrimento che consente compone e dispone gli elementi visibili. Problemi attualmente noti includono che è solo verticale e non gestisce completamente tutti di cambiamenti agli elementi secondari. (Ib351b)

  • Aggiungere spaziature interne, bordo, forma e parametro di sfondo a Box (I05027, b/148147281)

Correzioni di bug

  • Callback onFocusChange nei campi di testo rinominati in onFocusChanged (Ida4a1)
  • Verticalscroller e Horiziontalscroller sono stati deprecati. Utilizza ScorribileColonna e ScorribileRiga per creare un'esperienza integrata con il comportamento e i parametri di Colonna/Riga oppure Modifier.verticalscroll e Modifier.Horizontalscroll per il tuo elemento. Allo stesso modo, scrollerPosition è stato ritirato e sostituito con scrollState'. (I400ce, b/157225838, b/149460415, b/154105299)
  • runOnIdleCompose rinominato in runOnIdle (I83607)
  • Diverse API di test sono state rinominate per essere più intuitive. Tutti Le API di FindXYZ sono state rinominate onNodeXYZ. Tutte le API doXYZ sono state rinominate in esegui XYZ. (I7f164)
  • Ora la UI di Compose può essere composta all'interno di ViewGroups senza richiedere una nuova composizione. Vedi ViewInteropDemo per un esempio. (I9ab0b, b/160455080)
  • Sono stati aggiunti sortWith e removeRange a MutableVector (Icccf7)
  • Implementa i punti di manipolazione di selezione con trascinamento per modificare la selezione per Campo di testo. (I27032)
  • È stata rimossa la classe in linea di Shader che ha inserito la classe Aspettative di NativeShader NativeShader è stato rinominato Shader. La classe in linea con wrapping di Shader ha fatto non aggiungere nulla di importante alla piattaforma API ed era una classe in linea, quindi usa NativeShader direttamente nel corso. (I25e4d).
  • PainterModifier sottoposto a refactoring di non fornire più scalabilità in base i vincoli specificati e ContentScale . Implementazioni di Painter sono la scalabilità del contenuto del disegno in base alle dimensioni date il DrawScope a cui stanno disegnando.

    È stato risolto il problema relativo alla cache di VectorPainter bitmap è stato ridimensionato alle dimensioni predefinite anziché le dimensioni specificate.

    ImagePainter è stato aggiornato per scalarne invece di fare affidamento su PainterModifier di farlo per suo conto. (I6ba90)

  • aggiungi la funzione FrameNanos di primo livello per la sincronizzazione dell'animazione (Ie34c5)

  • L'annotazione @Untracked è stata deprecata. Sostituisci con @ComposableContract(tracked=false) (Id211e)

  • androidx.ui.foundation.TextFieldValue e L'API androidx.ui.input.EditorValue è deprecata. Campo di testo, Gli elementi componibili FilledTextField e CoreTextField che utilizzano anche questo tipo è deprecato. Utilizza androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • È stato risolto il problema a causa del quale l'input del puntatore provocherebbe un incidente Il filtro PointerInputFilters è stato rimosso tramite la sottocomposizione durante il diptach. Il problema ora è stato risolto. (I1f48b, b/157998762)

  • È stato risolto il problema a causa del quale veniva inviato l'input del puntatore causare un arresto anomalo se PointerInputFilters è stato rimosso tramite la sottocomposizione durante il diptach. Il problema ora è stato risolto. (Iab398, b/157998762)

  • Refactoring della classe Raggio inline. Creazione companion rimossa metodi a favore del costruttore della funzione con il parametro predefinito per avere il raggio lungo l'asse y corrisponde a quella del campo obbligatorio raggio dell'asse x.

    DrawScope.drawRoundRect aggiornato per l'utilizzo un singolo parametro Raggio anziché due parametri distinti valori in virgola mobile per il raggio lungo x e y (I46d1b)

  • Ricomponi componibile non è più un'astrazione utile. La maggior parte delle ricomposizioni dovrebbe avvenire in base alle assegnazioni MutableState. Per qualsiasi altro problema, ti consigliamo di utilizzare la funzione invalidate per attivare una ricomposizione dell'ambito attuale. (Ifc992).

  • Utilizzo della classe Px sostituito in varie comporre classi nell'ambito della grande di refactoring facendo affidamento solo sul Dp e tipi primitivi per i parametri dei pixel (Iede0b)

  • Modifica la strategia di generazione del codice del compilatore di Compose. Prima della modifica, il compilatore di composizione trasformava le chiamate in funzioni componibili. Con questa modifica, trasformiamo il corpo di una funzione componibile e lasciamo il sito di chiamata inalterato (soprattutto).

    Ciò significa che la maggior parte della logica che comunica con il runtime di composizione avviene all'inizio del corpo della funzione, anziché sul sito della chiamata.

    Questa modifica dovrebbe essere compatibile con l'origine per tutti gli utilizzi di Compose. La maggior parte degli utenti di Compose non dovrebbe dover aggiornare alcun codice a seguito di questa modifica.

    Per supportare questo lavoro, la firma JVM di tutte le funzioni componibili è stata modificata. Una funzione componibile che accetta un singolo parametro viene trasformata in una funzione che accetta tre parametri. I parametri aggiuntivi sono Composer, un numero intero "chiave". un numero intero con maschera di bit utilizzato per propagare i metadati attraverso le chiamate.

    Ora Compose trasforma anche gli argomenti predefiniti in una funzione componibile. Lo fa senza introdurre un ulteriore sovraccarico sintetico predefinito della funzione stessa, pertanto questa modifica comporterà la definizione di un minor numero di funzioni.

    Cambiamenti comportamentali intenzionali noti derivanti da quanto segue:

    1. Alcune chiamate saltano quelle che non avrebbero avuto in precedenza
    2. Le espressioni componibili nelle espressioni di argomento predefinite sono ora sottoscritte e gestite correttamente

    Questo lavoro ha incluso alcune ottimizzazioni: 1. Il risultato del confronto di parametri viene propagato attraverso il grafico delle chiamate ad altre funzioni componibili. Questo comporterà un minor numero di confronti in fase di runtime, la riduzione delle dimensioni della tabella di slot e la possibilità di saltare le funzioni componibili che in precedenza non erano ignorate 2. I parametri che vengono considerati "statici" al momento della compilazione non vengono più confrontati né archiviati nel runtime. Questo riduce il numero di confronti e le dimensioni della tabella slot. 3. La struttura del flusso di controllo del corpo delle funzioni viene utilizzata per ridurre al minimo il numero di gruppi generati. Questo riduce le dimensioni della tabella degli slot e si traduce in un minore lavoro per il runtime 4, I parametri inutilizzati di invio e ricezione alle funzioni non sono inclusi nel determinare la possibilità di ignorare la funzione se non vengono utilizzati all'interno del corpo della funzione.

    La maggior parte delle modifiche che provocano un errore riguarda le API scelte direttamente come target dal compilatore e l'utilizzo tipico della scrittura non sarà interessato: 1. Composer::startExpr è stato rimosso 2. Composer::endExpr rimosso 3. Composer::call è stato deprecato 4, Gli sovraccarichi non varargs di key sono stati rimossi. Da questo momento in poi utilizza la versione di vararg. 5. L'annotazione Pivotal è stata deprecata. Usa key come sostituto. 6. ScopeUpdateScope::updateScope è stato modificato in modo che sia prevista una Function3 anziché Function1 7. rebootableFunction e rebootableFunctionN sono stati aggiornati per includere parametri aggiuntivi per il tempo di compilazione (I60756, b/143464846)

  • Rimossi i modificatori LayoutAllineamenti deprecati. (I10877)

  • Rimosso RepaintBoundary a favore di DrawlayerModifier (I00aa4)

  • I pulsanti, FloatingActionButton e Clickable ora hanno un parametro enabled separato. Alcuni parametri su Pulsante sono stati rinominati o riordinati. (I54b5a).

  • Sostituito ButtonStyle con funzioni distinte e rimosso l'overload di testo (stringa). Visualizza esempi aggiornati per le informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)

  • Interruzione delle modifiche all'API Ambient. Per informazioni dettagliate, consulta la documentazione relativa al log e a Ambient<T> (I4c7ee, b/143769776)

  • È stato modificato il comportamento di TextDirection predefinita da determinare da LayoutDirection. Ad esempio, se LayoutDirection è RTL, il valore predefinito TextDirection sarà in formato RTL. In precedenza era TextDirection.ContentOrLtr/Rtl (I4e803)

  • Correzione di bug: quando lo spessore e lo stile del carattere sono nidificati in una stringa AnnotatedString, il testo non viene visualizzato correttamente. (I77a9d)

  • Aggiunge parametri di uso comune a Text(). Se al momento stai creando uno stile di testo locale per passare un piccolo numero di questi parametri, ad esempio Testo(stile = TextAllinea(textAllinea = TextAllinea.Center)), ora puoi fornire i parametri direttamente: Text(textAllinea = TextAllinea.Center) (I82768)

  • Il modulo ui-android-text è rinominato ui-text-android (I68cbe)