Scrivi gli elementi di base
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(Consulta la documentazione di riferimento delle API per tutti i pacchetti di scrittura)
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.
Gruppo | Descrizione |
---|---|
compose.animation | Crea animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente. |
compose.compiler | Trasforma le funzioni @Composable e abilita le ottimizzazioni con un plug-in del compilatore Kotlin. |
compose.foundation | Scrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estende le basi per creare i tuoi componenti di sistema di progettazione. |
compose.material | Crea 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.material3 | Crea 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.runtime | Componenti 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.ui | I 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.foundation:foundation:1.7.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.7.0") } 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.
Consulta la documentazione di Issue Tracker per ulteriori informazioni.
Versione 1.8
Versione 1.8.0-alpha01
4 settembre 2024
Viene rilasciato androidx.compose.foundation:foundation-*: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.foundation:foundation-*:1.7.0
. La versione 1.7.0 contiene questi commit.
Modifiche importanti dalla versione 1.6.0
- Il rendimento di
Modifier.clickable
,Modifier.focusable
,Modifier.indication
,Modifier.scrollable
eModifier.draggable
è stato notevolmente migliorato. Nell'ambito di questo impegno, sono state apportate le seguenti modifiche all'API oltre a quelle interne- È stata aggiunta una nuova API Indication,
IndicationNodeFactory
. Ciò si traduce in implementazioni delle indicazioni più efficaci rispetto all'APIrememberUpdatedInstance
precedente (ora deprecata). Per informazioni sulla migrazione, visita la pagina developer.android.com. clickable
/combinedClickable
/selectable
/toggleable
ora accetta un parametroMutableInteractionSource
null. Se nullo e l'indicazione fornita èIndicationNodeFactory
, l'indicazione può essere creata in modo lento solo quando necessario, migliorando le prestazioni. Se non stai sollevando e utilizzandoMutableInteractionSource
, è consigliabile trasmettere null anziché superareremember { MutableInteractionSource() }
.- L'API
Indication#rememberUpdatedInstance
è stata deprecata. Presenta un'elevata riduzione inevitabile del rendimento e impedisce altre ottimizzazioni. Dovresti invece usare la nuova APIIndicationNodeFactory
.
- È stata aggiunta una nuova API Indication,
BasicTextField
che utilizzaTextFieldState
è ora stabile. Consigliamo a tutti i siti di chiamata di avviare la migrazione daBasicTextField(value, onValueChange)
aBasicTextField(TextFieldState)
.- L'elemento
ClickableText
è stato deprecato. Per aggiungere link cliccabili al testo, utilizzaBasicText
con la nuova annotazioneLinkAnnotation
inAnnotatedString
.LinkAnnotation
consente di applicare stili personalizzati in base allo stato del link (ad es. attivo o passaggio del mouse sopra). - Ti presentiamo
ContextualFlowRow
eEnhanced FlowRow/Column
conMaxLines
eOverflow
. Siamo entusiasti di annunciare i miglioramenti apportati alle funzionalità sperimentaliFlowRow
eFlowColumn
, che ora includono il supporto dimaxLines
e overflow, insieme al debutto diContextualFlowRow
eContextualFlowColumn
. Questo aggiornamento è progettato per fornire componenti ottimali per le prestazioni, doveContextualFlow*
è perfetto per un gran numero di elementi che utilizzano una configurazione maxLines ridotta e una dinamica +N per vedere più pulsanti, mentreFlowRow
eFlowColumn
sono perfetti per un numero ridotto di elementi, meno di 100. Importante: per mantenere il comportamento esistente inFlowRow
oFlowColumn
in cui tutti gli elementi sono composti, indipendentemente dal fatto che rientrino nel limite massimo dell'asse trasversale, imposta l'overflow suFlowRowOverflow.Visible
oFlowColumnOverflow.Visible
durante l'inizializzazione. EsploraContextualFlowRowSample
eFlowRowSample
per vedere alcuni esempi di queste nuove funzionalità in azione. (Ib9135, b/293577082) - Il supporto dell'animazione per l'aspetto e la scomparsa dell'elemento è stato aggiunto in
LazyColumn
eLazyRow
. In precedenza era possibile aggiungere il modificatoreModifier.animateItemPlacement()
per supportare le animazioni di posizionamento (riordinamento). Abbiamo ritirato questo modificatore e introdotto un nuovo modificatore non sperimentale chiamatoModifier.animateItem()
che consente di supportare tutti e tre i tipi di animazione: aspetto (dissolvenza in entrata), scomparsa (dissolvenza in uscita) e riordinamento. (I2d7f7, b/150812265) - È stato implementato il supporto sperimentale per gli screenshot lunghi nei contenitori di scorrimento di Compose utilizzando l'API Android ufficiale (
ScrollCaptureCallback
). - Le origini di trascinamento e scorrimento di
NestedScroll
verranno sostituite daUserInput
eSideEffect
per adeguarsi alla definizione estesa di queste origini che ora includono animazioni (effetto collaterale), rotellina del mouse e tastiera (UserInput
). LazyLayout
richieste di precaricamento possono essere contrassegnate come urgenti adesso. Ciò significa che prevediamo che questo elemento sarà necessario nel frame successivo e vogliamo ignorare il budget del frame per assicurarci di svolgere più operazioni in anticipo (Id513f)- Supporto della funzionalità di scrittura a mano libera con stilo sui dispositivi successivi ad Android U. (I002e4).
- Varie API sono state promosse alla versione stabile
- Cercapersone, aggancio, inserti di finestre
Versione 1.7.0-rc01
21 agosto 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-rc01
. La versione 1.7.0-rc01 contiene questi commit.
Correzioni di bug
- È stata corretta una regressione per cui si verificava l'arresto anomalo quando un elemento era attivo all'interno di un elemento principale che era attivabile (o cliccabile) e disattivato. (b/317561689)
Versione 1.7.0-beta07
7 agosto 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-beta07
. La versione 1.7.0-beta07 contiene questi commit.
Correzioni di bug
- Le funzioni
SemanticsNodeInteraction
performTextReplacement
,performTextInput
eperformTextClearance
relative all'input di testo ora genereranno errori di asserzione quando vengono chiamate in sola letturaTextFields
. (I4ae8f). - È stato corretto un problema visivo nei link ipertestuali. (I23311)
- È stato corretto il problema di funzionamento del modificatore
contentReceiver
con alcuni IME. - Generazione della velocità: impedisci la propagazione dei valori NaN in Compose UI e Foundation.
Versione 1.7.0-beta06
24 luglio 2024
Viene rilasciato androidx.compose.foundation:foundation-*: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.foundation:foundation-*:1.7.0-beta05
. La versione 1.7.0-beta05 contiene questi commit.
Correzioni di bug
- Correzione per il trattamento dei valori nan in
SnapFlingBehavior
e nel pager.
Versione 1.7.0-beta04
26 giugno 2024
Viene rilasciato androidx.compose.foundation:foundation-*: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)
- Corregge la misurazione di testo molto grande che causa l'arresto anomalo nel nuovo
BasicTextField
(6b7575) - Ripristina una modifica del comportamento nella misurazione di righe/colonne che interrompe l'utilizzo del testo in determinati scenari (69e8ba)
Versione 1.7.0-beta03
12 giugno 2024
Viene rilasciato androidx.compose.foundation:foundation-*: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.foundation:foundation-*:1.7.0-beta02
. La versione 1.7.0-beta02 contiene questi commit.
Modifiche alle API
- Aggiunge un'API sperimentale per la configurazione del comportamento di precaricamento di
LazyGrids
, simile all'API sperimentale esistente perLazyLists
. Ciò include il supporto per il precaricamento degli elementi nell'elementoLazyGrids
nidificato. Analogamente aLazyListPrefetchStrategy
, l'impostazione predefinita di implementazione prevede il precaricamento dei primi due elementi nidificati di ogni griglia, ma questo può essere configurato dalle nuove APILazyGridPrefetchStrategy(nestedPrefetchItemCount)
eLazyListPrefetchStrategy#onNestedPrefetch
. (I591c4) SemanticsProperties.Editable
è stato rinominato inIsEditable
e cambiaSemanticsPropertyReceiver.editable
in un valisEditable
. Ora la proprietà è un valore booleano ed è sempre specificata da campi di testo. (I8acd8)- Valori predefiniti di
basicMarquee
spostati nell'oggettoMarqueeDefaults
. (I12ff6) - Parametro
basicMarquee
delayMillis
rinominato inrepeatDelayMillis
. (I12ff6) - API Update per l'applicazione di stili ai link: spostamento
TextLinkStyles
inTextStyle
e rimozione diTextDefaults
dal materiale (I5477b)
Correzioni di bug
- Il nome
LayoutCoordinates.introducesFrameOfReference
è stato rinominato inLayoutCoordinates.introducesMotionFrameOfReference
per rispecchiare meglio il suo scopo. Funzione correlata rinominata per calcolare le coordinate in base al flag. (I3a330) - Opzione "Predefinito" rimossa dalle proprietà
MarqueeDefaults
. (I1d8a0) - "Marquee" rimosso di
MarqueeDefaults
proprietà. (Iad4f4) TextLinkStyles
rimosso dal corsoTextStyle
. Al contrario,TextLinkStyles
fa parte del costruttoreLinkAnntation
e del metodoAnnotatedString.fromHtml
(I90b2b)- È stato corretto un bug per cui il Pager scattava durante lo scorrimento verso un limite mentre era già al limite. (I9f373, b/339171222)
- BTF2 ora dispone di gesti di selezione del mouse corretti. (Ibe8c6)
Contributo esterno
- Invia di nuovo il messaggio "Effettua il calcolo del tempo di scrittura/misurazione del tipo di contenuti in base al precaricamento per migliorare l'accuratezza" (IEa622).
- Esegui il calcolo del tempo di scrittura/misurazione del tipo di contenuto in base al precaricamento per migliorare l'accuratezza (Ibccb1)
- Rendi disponibili
WindowInsetsPadding
modificatori dal set di sorgenti comune (I070b2)
Versione 1.7.0-beta01
14 maggio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-beta01
. La versione 1.7.0-beta01 contiene questi commit.
Modifiche alle API
- Proprietà
KeyboardOptions.shouldShowKeyboardOnFocus
aggiunta di nuovo come deprecata e nascosta per compatibilità binaria. (I15cfe) Modifier.anchoredDraggable
ora inverte i delta di trascinamento per impostazione predefinita per i componenti con orientamento orizzontale quando vengono utilizzati in un layout RTL. (I3c6d9)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 diLinkAnnotations
a tema e l'analisi dell'HTML con link a tema. È stata invece aggiunta una classeTextLinkStyles
che consente di definire lo stile dei link come parametro del Testo componibile. (I31b93) onDragStarted
eonDragStopped
sostituiti con callback non in sospensione. (I59de8)
Correzioni di bug
- È stato corretto un bug per cui Pager si arrestava in modo anomalo quando
contentPadding
era più grande dei vincoli in entrata. Il cercapersone ora forza i valori negativi restituiti daPageSize
a 0. (Iba5d8, b/314008560)
Versione 1.7.0-alpha08
1° maggio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha08
. La versione 1.7.0-alpha08 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il menu contestuale di scelta rapida a
BasicTextField
eSelectionContainer
con elementi per le azioni di taglia, copia, incolla e seleziona tutto. (If8c93, Ia2b49, I6f268)
Modifiche alle API
LazyLayout
richieste di precaricamento possono essere contrassegnate come urgenti adesso. Ciò significa che prevediamo che questo elemento sarà necessario nel frame successivo e vogliamo ignorare il budget del frame per assicurarci di svolgere più operazioni in anticipo (Id513f)isPositionedByParentWithDirectManipulation
rinominato inintroducesFrameOfReference
. Tieni presente che ora ha l'effetto opposto, il che significa che, per impostazione predefinita, la maggior parte degliLayoutCoordinates
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, utilizzapositionInLocalFrameOfReference(...)
. OppurepositionInLocalLookaheadFrameOfReference
da unLookaheadScope
. (Ifc5f7).onClicked
rinominato inonClick
all'interno diLinkInteractionListener
(Iaa35c)- Modifica l'azione lambda per
getScrollViewportLength
in base al feedback del consiglio delle API. (Ibc74a) - API di delega della scrittura a mano libera con stilo rinominate. (Ica45f, b/327271923)
- Rinomina
TextInclusionStrategy.isInside
inisIncluded
. Imposta il tipo restituito daParagraph/MultiParagraph#getRangeForRect()
come non null. (I51f26)
Correzioni di bug
- Opzione "Seleziona tutto" aggiunta a tutti i menu contestuali di testo in
SelectionContainer
. (Ib750e, b/240143283) - È stato corretto il problema di acquisizione di screenshot lunghi per i contenitori a scorrimento con
reverseScrolling=true
. (I7c59c) - Risolto un problema per cui il valore
currentValue
diAnchoredDraggableState
cambiava quando ci si avvicinava ai limiti dello stato. (Iea30b, b/333846848)
Contributo esterno
- Ridenominazione di
PrefetchExecutor
->PrefetchScheduler
per riflettere meglio le sue responsabilità. (Ib9154) - È stato aggiunto il supporto per il precaricamento degli elementi nell'elemento
LazyLists
nidificato (ad es.LazyColumn
che esegue il rendering diLazyRows
nidificato). Questa modifica dovrebbe ridurre le interruzioni di frame durante lo scorrimento per questiLazyLists
. L'impostazione predefinita di implementazione è il precaricamento dei primi due elementi nidificati, ma questo comportamento può essere controllato dalle nuove APILazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
eLazyListPrefetchStrategy#onNestedPrefetch
. (I51952)
Versione 1.7.0-alpha07
17 aprile 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha07
. La versione 1.7.0-alpha07 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un oggetto
TextDefaults
contenente metodi per creare unaLinkAnnotation
e analizzare la stringa con tag HTML che applicaMaterialTheme
ai link. (I98532, b/139312671) - Il supporto dell'animazione per l'aspetto e la scomparsa dell'elemento è stato aggiunto in
LazyVerticalGrid
eLazyHorizontalGrid
. In precedenza era possibile aggiungere il modificatoreModifier.animateItemPlacement()
per supportare le animazioni di posizionamento (riordinamento). Abbiamo ritirato questo modificatore e introdotto un nuovo modificatore non sperimentale chiamatoModifier.animateItem()
che consente di supportare tutti e tre i tipi di animazione: aspetto (dissolvenza in entrata), scomparsa (dissolvenza in uscita) e riordinamento. (Ib7d12, b/330510929) - Il supporto dell'animazione per l'aspetto e la scomparsa dell'elemento è stato aggiunto in
LazyVerticalStaggeredGrid
eLazyHorizontalStaggeredGrid
. In precedenza era possibile aggiungere il modificatoreModifier.animateItemPlacement()
per supportare le animazioni di posizionamento (riordinamento). Abbiamo ritirato questo modificatore e introdotto un nuovo modificatore non sperimentale chiamatoModifier.animateItem()
che consente di supportare tutti e tre i tipi di animazione: aspetto (dissolvenza in entrata), scomparsa (dissolvenza in uscita) e riordinamento. (I69bc9, b/330511290)
Modifiche alle API
- Aggiunge
ContextMenuColors
e ilProvidableCompositionLocal
associatoLocalContextMenuTheme
. I colori del menu contestuale nei campi di testo e nel testo selezionabile possono essere modificati fornendo la composizione locale. (Ifa154). - Per i link di testo è stata attivata l'opzione di stile per lo stato selezionata, oltre allo stile normale, con il passaggio del mouse e lo stato attivo. (I5f864, b/139312671)
- Presenta
ViewConfiguration.HandwritingGestureLineMargin
per i gesti di scrittura a mano libera. Supporto della scrittura a mano libera perBasicTextField
. (Ie6e13, b/325660505) - È stato rimosso
DelegatableNode.scrollIntoView
per la release 1.7 perché non avevamo il tempo di completare la stabilizzazione del resto della superficie API correlata. Questa funzione verrà reintrodotta nella versione 1.8 (I6cf61, b/333421581, b/332900232) - 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 utilizzandoPlaceable.PlacementScope.withDirectManipulationPlacement
. Analogamente, un layout che cambia spesso la posizione degli elementi secondari può ora posizionarli utilizzandowithDirectManipulationPlacement
(come l'opzione Scorri, implementata per impostazione predefinita). In questo modo le animazioni basate suapproachLayout
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) - Presenta
requestScrollToItem
perLazyStaggeredGrid
. Per ogni Measurement-Pass, il client ora può disattivare la gestione dell'indice in base alla chiave chiamandorequestScrollToItem
. Questo non modifica in alcun modo il comportamento esistente a meno che non venga chiamatorequestScrollToItem
. (I63983) - Presenta
requestScrollToPage
in Pager. Per ogni Measurement-Pass, il client ora può disattivare la gestione dell'indice in base alla chiave chiamandorequestScrollToPage
. Questo non modifica in alcun modo il comportamento esistente a meno che non venga chiamatorequestScrollToPage
. (Ic4213) - È stato introdotto
requestScrollToItem
perLazyGrids
. Per ogni Measurement-Pass, il client ora può disattivare la gestione dell'indice in base alla chiave chiamandorequestScrollToItem
. Questo non modifica in alcun modo il comportamento esistente a meno che non venga chiamatorequestScrollToItem
. (I0a7a0) ClickableText
è contrassegnato come deprecato. Per aggiungere link al testo, crea unAnnotatedString
con unLinkAnnotation
corrispondente al tuo link e passa questoAnnotatedString
al componibileText
(I34d4b, b/323346994)- L'elemento
UrlAnnotation
è deprecato. Usa il criterioLinkAnnotation.Url
. Se utilizzi i temi Material, utilizza l'oggettoTextDefaults
per creare l'annotazione con la tematizzazione Material (I8d180, b/323346545) String.parseAsHtml
rinominato inAnnotatedString.Companion.fromHtml
(I43dcd)- Sono stati aggiunti argomenti di stile (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) e un listener di interazione tramite link al metodoparseAsHtml
. Durante l'analisi della stringa con tag HTML con i tag<a>
, il metodo genera unLinkAnnotation.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 unLinkInteractionListener
. Aggiungi questa annotazione aAnnotatedString
per ottenere un link ipertestuale. Se trasmettifocusedState
e/ohoveredState
, puoi definire la configurazione visiva dei link quando vengono selezionati e/o passi il mouse sopra. (I81ce4, b/139312671)- 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) - È stata stabilizzata la maggior parte delle API sperimentali rimanenti introdotte con il nuovo
BasicTextField
. (I714e2). - È stato aggiunto il parametro
textObfuscationCharacter
aBasicSecureTextField
che controlla quale carattere utilizzare durante l'offuscamento dei contenuti. (I0588b) - Le origini di trascinamento e scorrimento di
NestedScroll
verranno sostituite daUserInput
eSideEffect
per adeguarsi alla definizione estesa di queste origini che ora includono animazioni (effetto collaterale), rotellina del mouse e tastiera (UserInput
). (I40579) - Introduci
LocalBringIntoViewSpec
, un comportamento di scorrimento dell'elemento attivo che dipende dalla piattaforma e applicato al livello di modifica Scorrevole. (I27aa5, b/317453911) TextFieldCharSequence
rimosso.TextFieldBuffer.originalValues
viene sostituito conTextFieldBuffer.originalText
eTextFieldBuffer.originalSelection
. (I2c7d6).- Per
ImeOptions.hintLocales
non è più possibile specificare un valore null. Se vuoi trasmettere un elenco di impostazioni internazionali vuoto, utilizzaLocaleList.Empty
. (Ic5bc4) getOffsetFractionForPage
rinominato ingetOffsetDistanceInPages
. (Ia05e2).
Correzioni di bug
- Quando
InputTransformations
viene unito anext
, ora i suoiKeyboardOptions
vengono uniti correttamente dalle singole opzioni utilizzando il nuovo metodoKeyboardOptions.merge
. (Ie5304, b/295951492) - Il valore
targetValue
diAnchoredDraggableState
ora non prende più in considerazione le soglie di posizionamento. Ora ha una soglia implicita del 50%, il che significa chetargetValue
cambia nel punto medio tra due ancoraggi. (I82c2c).
Contributo esterno
- 2 API di scorrimento rinominate (I56a75)
Versione 1.7.0-alpha06
3 aprile 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha06
. La versione 1.7.0-alpha06 contiene questi commit.
Nuove funzionalità
- Il supporto dell'animazione per l'aspetto e la scomparsa dell'elemento è stato aggiunto in
LazyColumn
eLazyRow
. In precedenza era possibile aggiungere il modificatoreModifier.animateItemPlacement()
per supportare le animazioni di posizionamento (riordinamento). Abbiamo ritirato questo modificatore e introdotto un nuovo modificatore non sperimentale chiamatoModifier.animateItem()
che consente di supportare tutti e tre i tipi di animazione: aspetto (dissolvenza in entrata), scomparsa (dissolvenza in uscita) e riordinamento. (I2d7f7, b/150812265) - I client di
LazyColumn/LazyRow
ora possono disattivare la gestione di un indice basato sulla chiave per l'imminente misurazione passante chiamando unLazyListState.requestToScroll
senza sospensione. (I98036, b/209652366) - Aggiunto il metodo
parseAsHtml
per le stringhe con stili applicati: consente di convertire inAnnotatedString
una stringa contrassegnata con tag HTML. Tieni presente che non tutti i tag sono supportati, ad esempio non potrai ancora visualizzare elenchi puntati. (I84d3d) - È 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 flagComposeFeatureFlag_LongScreenshotsEnabled
su true. Questo flag verrà rimosso prima della versione 1.7 beta. (I2b055, b/329296471) - Introduci la nuova API
GraphicsLayer
per offrire maggiore flessibilità nel posizionamento e nel rendering delle istanzeGraphicsLayer
e per supportare funzionalità di rendering intrinseche senza dover coordinarsi con le implementazioni componibili per specificare le istanze del modificatore diGraphicsLayer
.
Modifiche alle API
- Tutti i parametri
KeyboardOptions
ora hanno un valore non specificato per impostazione predefinita. MetodoKeyboardOptions.merge
aggiunto. - Il valore
KeyboardOptions.autoCorrect
è stato rinominato inautoCorrectEnabled
e lo è stato reso null, dove null indica che non è stato specificato alcun valore. (Ia8ba0, b/295951492) outOfBoundsPageCount
rinominato inbeyondViewportPageCount
. (I129c6)fun ClipEntry.getMetadata()
modificato inval ClipEntry.clipMetadata
. (I50155)TextFieldState.valueAsFlow()
rimosso. Preferisco utilizzaresnapshotFlow { state.text }
osnapshotFlow { TextFieldCharSequence(state.text, state.selection) }
(I7d629)InputTransformation.transformInput
parametri riorganizzati.originalValue: TextFieldCharSequence
rimosso. OraTextFieldBuffer
utilizza questo valore con lo stesso nome. È stato rimosso anche il parametrovalueWithChanges: TextFieldBuffer
. OraTextFieldBuffer
è l'ambito del destinatario della funzione. (I919cc)- La variante
BasicTextField(state)
eBasicSecureTextField
ora usanoKeyboardActionHandler
anzichéKeyboardActions
per elaborare le azioni eseguite dalla tastiera software. (I58dda) - API di delega della scrittura a mano libera con stilo per supportare la scrittura a mano libera con stilo sui "falsi" campi di immissione testo. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
rinominato inshowKeyboardOnFocus
. (Ib4b7a, b/295951492)- Parametro
hintMediaTypes
rimosso daModifier.contentReceiver
. Gli sviluppatori sono già stati invitati a controllare il tipo multimediale delTransferableContent
ricevuto perché potrebbe non essere compatibile con ilhintMediaTypes
configurato. (I82f99) - Sono stati riordinati i parametri di
BasicSecureTextField
. Sono stati rimossi i parametrikeyboardType
eimeAction
a favore della classeKeyboardOptions
completa, mantenendo le stesse impostazioni predefinite appropriate perBasicSecureTextField
. È stato rimosso anche il parametroscrollState
. (Ibbfa9) - Il tipo di
TextFieldState.text
è stato modificato daTextFieldCharSequence
a soloCharSequence
. Pertanto, sono stati aggiuntiTextFieldState.selection: TextRange
eTextFieldState.composition: TextRange?
per leggere i valori della selezione e della composizione correnti direttamente dall'oggetto di stato. TextFieldState.forEachTextValue
rimosso. (Idb2a2)- Rimosse le funzioni
ClipboardManager.getClipMetadata
eClipboardManager.hasClip
. UsaclipEntry.getMetadata()
per leggere i metadati della voce del clip corrente. Controlla anche il risultato diClipboardManager.getClip
, se è nullo o meno per capire se negli appunti è presente un clip corrente. (I50498) ClipboardManager.setClip
ora accetta null per poter cancellare gli appunti. (I7d2e9).ReceiveContentListener
viene convertito in un'interfaccia di funzione. Inoltre, il sovraccarico diModifier.receiveContent
che accetta una funzione lambda viene rimosso poiché oraReceiveContentListener
è un'interfaccia di funzione.Modifier.receiveContent
è stato rinominato inModifier.contentReceiver
. (I1e6af)TransferableContent.consumeEach
rinominato inTransferableContent.consume
. (I1e462).rememberTextFieldState
è passato a API stabile. (I37999)
Correzioni di bug
- È stato corretto un bug per cui la variante
BasicTextField(state)
non funzionava con le tastiere CJK(basata su composizione). (I54425) - È stato corretto un bug per cui
Modifier.dragAndDropTarget()
poteva fare riferimento a dati inattivi in determinati scenari con il riutilizzo diModifier.Node
. (I05bb1) - È stata ripristinata una modifica recente del contratto in cui le chiamate
AnchoredDraggableState#anchoredDrag
venivano bloccate al termine di un'operazioneanchoredDrag
. (I95715)
Versione 1.7.0-alpha05
20 marzo 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha05
. La versione 1.7.0-alpha05 contiene questi commit.
Modifiche alle API
- Rimossa la composizione sperimentale locale di
LocalTextLinkStyle
per l'applicazione di stili ai link ipertestuali. (Iebfa7) - Rimossa l'override sperimentale di
BasicText
con argomentoonLinkClicked
. In futuro seguirà un'API sostitutiva per il supporto dei link ipertestuali. (I107d5) - Rimossi metodi e proprietà relativi ai punti di codice in
TextFieldState
eTextFieldBuffer
. Sono stati inoltre rimossi i suffissiinChars
dalle restanti API relative alla selezione e alla composizione. (Ief7ce) currentValue
diAnchoredDraggable
ora si aggiornerà quando si passa attraverso un punto di ancoraggio. UsasettledValue
per ricevere la semantica precedente dicurrentValue
, aggiornandola solo in caso di assestamento con un ancoraggio. L'avanzamento è ora esposto come una funzione (che richiede un punto di inizio e di fine) anziché una proprietà. (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
eTextFieldDecorator
sono classificati come stabili. (I9582b)- 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'APIPlatformTextInputTestOverride
è stata deprecata. (I862ed, b/322680547) - Suddividi
restrictedConstraints()
in due metodi:fitPrioritizingWidth()
efitPrioritizingHeight()
(I6d7fd)
Contributo esterno
- Aggiunte 2 nuove API
isLastScrollForward
/isLastScrollBackward
per controllare la direzione di scorrimento dell'ultima azione di scorrimento. Se non è ancora stata eseguita l'azione di scorrimento, viene restituito false. (I63a0e)
Versione 1.7.0-alpha04
6 marzo 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha04
. La versione 1.7.0-alpha04 contiene questi commit.
Modifiche alle API
- Supporto della funzionalità di scrittura a mano libera con stilo sui dispositivi successivi ad Android U. (I002e4).
- L'elemento
hintLocales
è stato aggiunto aKeyboardOptions
per fornire aTextFields
la possibilità di suggerire IME per impostazioni internazionali specifiche per preimpostare una lingua preferita. (ID18c2) - Sono stati rimossi gli sovraccarichi sperimentali
BasicTextField2
eBasicSecureTextField
che richiedevano i parametrivalue: String
eonValueChange: () -> String
. (I568b4) - Aggiungi una funzione
applySemantics
facoltativa aInputTransformation
per influire sulla semantica dellaBasicTextField2
a cui viene applicata. (I74a2f, b/170648072) - 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). BasicTextField2
è stato rinominato inBasicTextField
. (Ie5713).FocusRequester.createRefs
ora è stabile (I4d92c, b/261436820)DelegatableNode.scrollIntoView()
introdotto per consentire ai nodi di modifica di effettuare direttamente richiestescrollIntoView
. (I2b3b7, b/299939840)- È stato introdotto
DelegatableNode.requireView()
per consentire ai nodi di modifica di ottenere l'attualeView
di Android senza leggere una composizione locale. (I40768) - Introduzione di informazioni sul layout contestuale nell'ambito delle righe di flusso contestuale e nell'ambito delle colonne di flusso contestuale, con l'indice delle linee, la posizione e i vincoli su larghezza e altezza massime per rimanere nella posizione specificata. Gli elementi che superano la larghezza/altezza massima possono essere inviati alla riga successiva o essere omessi in base alle impostazioni di overflow. (Id13f8, b/292114798)
Correzioni di bug
- È stato corretto un bug per cui in determinate condizioni l'attivazione/disattivazione degli attributi
enabled
oreadOnly
diTextField
causava un arresto anomalo. (Iae17b).
Versione 1.7.0-alpha03
21 febbraio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha03
. La versione 1.7.0-alpha03 contiene questi commit.
Modifiche alle API
DelegatableNode.requireLayoutCoordinates()
introdotto come modo per ottenere un valoreLayoutCoordinates
corrente diModifier.Node
senza dover sostituireonPlaced
e memorizzare personalmente le coordinate in una proprietà. (Ia8657)DelegatableNode.currentLayoutCoordinates
introdotto come modo per ottenere un valoreLayoutCoordinates
corrente diModifier.Node
senza dover sostituireonPlaced
e memorizzare personalmente le coordinate in una proprietà. (Iaebaa)- Ottimizzazioni del rendimento in
DraggableAnchors
utilizzate daAnchoredDraggable
. (I89cff) BasicTextField2
e le relative API inandroidx.compose.foundation.text2
pacchetto vengono spostate inandroidx.compose.foundation.text
. (I9f635)BasicTextField2
non accetta più un parametroCodepointTransformation
. UsaBasicSecureTextField
oOutputTransformation
. (ID34ff)- È stato aggiunto un metodo per confrontare solo le annotazioni di due
AnnotatedStrings
. (I32659) - Ti presentiamo
ContextualFlowRow
eFlowRow
/Column
Avanzata conMaxLines
eOverflow
. Siamo entusiasti di annunciare i miglioramenti apportati alle funzionalità sperimentaliFlowRow
eFlowColumn
, che ora includono il supporto dimaxLines
e overflow, insieme al debutto diContextualFlowRow
eContextualFlowColumn
. Questo aggiornamento è stato progettato per fornire componenti con prestazioni ottimali, doveContextualFlow*
è perfetto per un numero elevato di elementi che utilizzano una configurazionemaxLines
ridotta e una dinamica +N per vedere più pulsanti, mentreFlowRow
eFlowColumn
sono perfetti per un numero ridotto di elementi, meno di 100. Importante: per mantenere il comportamento esistente inFlowRow
oFlowColumn
in cui tutti gli elementi sono composti, indipendentemente dal fatto che rientrino nel limite massimo dell'asse trasversale, impostaoverflow
suFlowRowOverflow.Visible
oFlowColumnOverflow.Visible
durante l'inizializzazione. EsploraContextualFlowRowSample
eFlowRowSample
per vedere alcuni esempi di queste nuove funzionalità in azione. (Ib9135, b/293577082)
Correzioni di bug
- L'animazione del cursore non richiede più frame tra gli stati di attivazione e disattivazione. (Ia2253)
KeyboardOptions
i costruttori di copia deprecati ora copiano correttamente tutte le proprietà. (If12de)
Versione 1.7.0-alpha02
7 febbraio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha02
. La versione 1.7.0-alpha02 contiene questi commit.
Modifiche alle API
HorizontalPager
,VerticalPager
ePagerState
vengono promosse alla versione stabile. (I67660, b/316966909)- È stata aggiunta la composizione locale
LocalTextLinkStyle
che consente di modificare lo stile dei link nel testo in tutta l'app. Se utilizzi un tema personalizzato nell'app, devi impostare la composizione locale in base al tema scelto. Quando utilizzi il tema Materiale, per impostazione predefinita il colore del link sarà impostato sul colore principale del materiale. (I7eb10) - Introdotto il modificatore
receiveContent
che consente agli sviluppatori di ricevere contenuti avanzati in Jetpack Compose. receiveContent
si integra conBasicTextField2
per accettare contenuti avanzati forniti dalla tastiera software o tramite l'azione di copia negli appunti. (I81b72)- In questa modifica sostituiremo
SnapFlingBehavior
conTargetedFlingBehavior
nel pager per sbloccare altri casi d'uso e offrire maggiore flessibilità. (I762ea) - Con questa modifica stiamo rendendo stabili le API Snapping. Stiamo anche ripulindo parte del codice di test e aggiungendo altri esempi alla funzionalità Snapping. (Id8da9)
- Introduci
TargetedFlingBehavior
, unFlingBehavior
che consente di propagare informazioni sullo stato dell'animazione in corso e sul relativo offset di scorrimento target. (I6a207)
Correzioni di bug
- Ora
BasicTextField2
mantiene il cursore visualizzato durante la digitazione quando l'utente scorre la pagina fuori dalla visualizzazione o si sposta fuori dalla visualizzazione a causa dell'input. (Ieb856, b/237190748)
Contributo esterno
- Aggiunge un'API sperimentale per la configurazione del comportamento di precaricamento di LazyLists. (I022a4)
Versione 1.7.0-alpha01
24 gennaio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.7.0-alpha01
. La versione 1.7.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un nuovo
Indication API
,IndicationNodeFactory
. Ciò si traduce in implementazioni diIndication
più efficienti rispetto all'APIrememberUpdatedInstance
precedente (ora deprecata). Per informazioni sulla migrazione, visita la pagina developer.android.com. clickable / combinedClickable / selectable / toggleable
ora accetta un parametroMutableInteractionSource
con valori null. Se il valore è nullo e il valoreIndication
fornito èIndicationNodeFactory
, è possibile creareIndication
in modo lento solo quando necessario, migliorando le prestazioni. Se non stai sollevando e utilizzandoMutableInteractionSource
, è consigliabile passare null.
Modifiche alle API
- Introduci
DecayAnimation
inAnchoredDraggable
, questa modifica aggiunge un parametrodecayAnimationSpec
aAnchoredDraggable
che consente di utilizzare l'animazione di decadimento durante l'impostazione su uno degli ancoraggi. La modifica include anche la ridenominazione dell'elementoanimationSpec
esistente insnapAnimationSpec
per facilitare la comprensione del caso d'uso di ogni specifica. BasicTextField2
è disponibile per l'uso sperimentale. Dovrebbe avere più o meno le stesse funzionalità diBasicTextField
e il comportamento dovrebbe essere pronto per la produzione. Tuttavia, per il momento l'API rimane sperimentale. Prima della stabilizzazione, verrà rinominataBasicTextField
e spostata nello stesso pacchetto.- È stata introdotta la prima bozza dell'API
OutputTransformation
perBasicTextField2
. Questa API sostituisce la maggior parte dei casi d'uso diVisualTransformation
nella versione precedente diBasicTextField
. Tuttavia, non è ancora completa e alcune cose non funzioneranno correttamente, ma ci farebbe piacere ricevere un tuo feedback sull'usabilità dell'API per i tuoi casi d'uso. (aosp/2708848) - È stato introdotto l'elemento
LinkAnnotation
che consente di aggiungere link e elementi cliccabili nel testo. La funzionalità dei collegamenti non è ancora completa e sono in arrivo altre modifiche all'API. - Introdotto il modificatore
receiveContent
che consente agli sviluppatori di ricevere contenuti avanzati in Jetpack Compose. receiveContent
si integra conBasicTextField2
per accettare contenuti avanzati forniti dalla tastiera software o incollati dagli appunti.KeyboardOptions.shouldShowKeyboardOnFocus
consente di disattivare il comportamento predefinito diBasicTextField
relativo alla richiesta di una tastiera software sullo stato attivo.TextInputService
eLocalTextInputService
sono deprecati. Usa invecePlatformTextInputModifierNode
per l'integrazione diretta con le API IME della piattaforma. (aosp/2862698)- L'API
Indication#rememberUpdatedInstance
è stata deprecata. Presenta un'elevata riduzione inevitabile del rendimento e impedisce altre ottimizzazioni. Dovresti invece usare la nuova APIIndicationNodeFactory
.
Correzioni di bug
- Ora
BasicTextField
preconvaliderà una piccola selezione di mappature dell'offset quando viene passatoVisualTransformation
. In questo modo è più facile individuare gli errori di programmazione comuni che portano a eccezioni irrecuperabili nelle misurazioni successive o nei passaggi successivi. Generando questo tipo di errori durante la composizione, è più probabile che gli sviluppatori vedano questi errori durante lo sviluppo, evitando così arresti anomali nella produzione. (I0fd42) VisualTransformation
non viene restituito se restituisci un indice non valido per un indice non valido (b/316401857 )
Versione 1.6
Versione 1.6.8
12 giugno 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.8
. La versione 1.6.8 contiene questi commit.
Versione 1.6.7
1° maggio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.7
. La versione 1.6.7 contiene questi commit.
Versione 1.6.6
17 aprile 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.6
. La versione 1.6.6 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui in determinate condizioni l'attivazione/disattivazione degli attributi
enabled
oreadOnly
diTextField
causava un arresto anomalo. (Iae17b).
Versione 1.6.5
3 aprile 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.5
. La versione 1.6.5 contiene questi commit.
Correzioni di bug
- Aggiunge log di debug a bug difficili da riprodurre in riga/colonna: (b/300280216 e b/297974033)
Versione 1.6.4
20 marzo 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.4
. La versione 1.6.4 contiene questi commit.
Correzioni di bug
- L'azione di selezione mediante pressione prolungata e poi trascinamento che si sposta fuori dai limiti di layout del testo nel primo frame del trascinamento non si arresta più in modo anomalo. (Icdf90, b/325307463)
Versione 1.6.3
6 marzo 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.3
. La versione 1.6.3 contiene questi commit.
Versione 1.6.2
21 febbraio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.2
. La versione 1.6.2 contiene questi commit.
Correzioni di bug
- Correggi l'errore di reimpostazione di
AnimateContentSize
. (I07051) - È stato risolto il problema per cui in determinate circostanze
intrinsicHeight
di testo veniva sovra-cache per essere eseguito in modo eccessivo. (3cd398, b/217910352)
Versione 1.6.1
7 febbraio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.1
. La versione 1.6.1 contiene questi commit.
Correzioni di bug
- Correggi la misura della griglia sfalsata quando si supera il limite. (bffc39)
- Aggiungi il controllo relativo a layout con dimensioni grandi. (e74af5)
- È stato corretto il posizionamento degli elementi di dimensioni pari a 0 all'inizio della griglia sfalsata. (785f94)
- Chiama il callback onRelease nello stesso ordine di onForgotten. (31ce3b)
Versione 1.6.0
24 gennaio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0
. La versione 1.6.0 contiene questi commit.
Modifiche importanti dalla versione 1.5.0
- Nuovo modificatore
Modifier.anchoredDraggable
che sblocca la possibilità di trascinare e animare un insieme predefinito di ancoraggi. Questo modificatore sostituisceModifier.swipeable
. Scopri come utilizzarlo ed eseguire la migrazione daModifier.swipeable
nella guida alla migrazione. - È stata aggiunta la funzionalità di trascinamento tra app e componenti. Per iniziare, fai riferimento a
DragAndDropTarget
,Modifier.dragAndDropSource
e ad altre API Modifier.draggable2D
è il nuovo modificatore che consente un facile supporto del trascinamento 2D. Vedi Esempio.AndroidExternalSurface
eAndroidEmbeddedExternalSurface
sono stati aggiunti per semplificare l'aggiunta di componenti basati sulla superficie in Scrivi- Varie modifiche e miglioramenti all'API in
Pager
esnapFlingBehaviour
- Varie API di focus, testo e riquadri sono state promosse in API stabili
Versione 1.6.0-rc01
10 gennaio 2024
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-rc01
. La versione 1.6.0-rc01 contiene questi commit.
Modifiche alle API
- Il costruttore dell'estensione
DragAndDropTarget()
è stato rimosso. Crea una nuova istanza utilizzandoobject: DragAndDropTarget {}
. (I32318)
Versione 1.6.0-beta03
13 dicembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-beta03
. La versione 1.6.0-beta03 contiene questi commit.
Correzioni di bug
- È stato corretto l'arresto anomalo che aveva interessato un testo di grandi dimensioni misurato con vincoli infiniti. (I1a7df, b/312294386)
PlatformImeOptions
è ora una classe concreta anziché un'interfaccia. (If40a4).
Versione 1.6.0-beta02
29 novembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-beta02
. La versione 1.6.0-beta02 contiene questi commit.
Correzioni di bug
- Correzione per il mancato aggiornamento di
canScroll
dopo lo scorrimento del solo relayout. (I60a86) - Correzione per
Modifier.animateItemPlacement()
eLookaheadScope
dopo piccoli scorrimenti. (I3a2b7).
Versione 1.6.0-beta01
15 novembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-beta01
. La versione 1.6.0-beta01 contiene questi commit.
Modifiche alle API
- Il modificatore
DragAndDropTarget
ora accetta esplicitamenteDragAndDropTarget
ricevente e dispone di una funzione lambda per attivare una sessione di trascinamento. Ora sono disponibili due funzioni di fabbrica per unDragAndDropModifierNode
. 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)onDragAndDropStart
inDragAndDropModifierNode
fabbrica è stata rinominata inacceptDragAndDropTransfer
.acceptsDragAndDropTransfer
è stato aggiunto adragAndDropTarget
Modifier
per accettare da una sessione di trascinamento. Questa funzione lambda restituisce unaDragAndDropTarget
se ti interessa 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)Se esponi
startDragImmediately
inAnchoredDraggable
, puoi controllare il rilevamento dei gesti di trascinamento durante l'utilizzo. È utile impostarla quando il widget si anima a un ancoraggio di destinazione. Vedi Esempio. (Ie6d13, b/285139987)Le API per la descrizione comando di base sono ora
@ExperimentalFoundationApi
(I30b0b)Rimosso
DragAndDropInfo
come tipoDragAndDropModifierNode.drag
ora accetta parametri pertransferData
, dimensione della decorazione e decorazione a trascinamentoDrawScope
lambdaDragAndDropTarget
offre metodi per determinati eventi di trascinamento anziché essere un singolo metodo astrattoonDragAndDropEvent
nella funzione di fabbrica per unDragAndDropModifierNode
è stata rinominata inonDragAndDropStart
per comunicare meglio che ilDragAndDropTarget
fornito è valido solo per una determinata sessione di trascinamentoDragAndDropEventType
è stato rimosso (I645b1)PlatformTextInputModifierNode.runTextInputSession
rinominato inestablishTextInputSession
. (I03cd0)Sostituisci
OriginalText
entro il giornoTextSubstitution
. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
rinominato inrunTextInputSession
. (Ie9c6b).Gli elementi secondari di
SubcomposeLayout
(e i layout comeLazyColumn
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 testassertIsDeactivated()
. Le altre API di test filtreranno i nodi disattivati per impostazione predefinita. (I2ef84, b/187188981)Il parametro
clippingEnabled
diModifier.magnifier
è stato rinominato inclip
.Il parametro
magnifierCenter
diModifier.magnifier
è impostato su null, mantenendo lo stesso comportamento predefinito. (I6aa66)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)
Correzioni di bug
- Implementa gli stessi valori e il codice hash per
PageSize.Fixed
. (Ie3ede, b/300134276) - È stato corretto un bug che causava la mancata riduzione del layout
BasicText
quandominWidth
veniva modificato e unminWidth
in meno rispetto ai vincoli di misura inizialimaxWidth
(Idb19c) - Aggiungi il supporto del renderer per Sweep Gradient in
ArcLine
. (I4d5bb) - 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)
Versione 1.6.0-alpha08
18 ottobre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha08
. La versione 1.6.0-alpha08 contiene questi commit.
Nuove funzionalità
Modifier.draggable2D
è il nuovo modificatore che consente un facile supporto del trascinamento 2D. Vedi esempio (Id95f5, b/214412658)
Modifiche alle API
Modifier.dragAndDrawSource
è stato rinominatoonDrawDragShadow
lambda indrawDragDecoration
eDragAndDropInfo
il parametro size è stato rinominato indragDecorationSize
. (Id0e30, b/303904810)- Il parametro
decorationBox
diBasicTextField2
è stato rinominato indecorator
. Anche il tipo è stato modificato in un'interfaccia divertente equivalenteTextFieldDecorator
. (I23c1c)
Correzioni di bug
- È stata migliorata la documentazione relativa a
BasicTextField
in merito ai requisiti dionValueChange
. (I90fc9, b/160257648)
Versione 1.6.0-alpha07
4 ottobre 2023
Viene rilasciato androidx.compose.foundation:foundation-*: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)GraphicsSurface
rinominato inAndroidExternalSurface
(I11680)- È stato aggiunto il flag temporaneo
DisableNonLinearFontScalingInCompose
per disattivare il ridimensionamento dei caratteri non lineari. ImpostaDisableNonLinearFontScalingInCompose = true
nei test se hai bisogno di tempo per eseguire la pulizia. Questo flag verrà rimosso in Compose 1.6.0-beta01. (Ic9486) - Aggiunte raccolte
ColorList
eColorSet
che evitano le allocazioni. (I744bd) - Questa modifica rimuove
shortSnapVelocityThreshold
, che è stato trasformato in un dettaglio dell'implementazione delle implementazioni diSnapLayoutInfoProvider
. (I65f6d) - Aggiunge il modificatore
dragAndDropSource
per avviare sessioni di trascinamento edragAndDropTarget
per la ricezione da sessioni di trascinamento (Ib7828, b/286038936) - Aggiorna la documentazione e il metodo di posizionamento relativi a
SnapPositionInLayout
. Introduci le spaziature interne dei contenuti nel metodo di posizione inSnapPositionInLayout
. (Id7938, b/300116110) - L'elemento
UndoState
è stato aggiunto aTextFieldState
per consentire di annullare/ripetere le modifiche apportate dall'utente. (Icc024)
Correzioni di bug
- È stato corretto il problema di animazione di
basicMarquee
dopo la variazione di velocità. (Id2e77, b/297974036)
Versione 1.6.0-alpha06
20 settembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha06
. La versione 1.6.0-alpha06 contiene questi commit.
Nuove funzionalità
- Nuovi wrapper componibili per
SurfaceView
,TextureView: GraphicsSurface()
eEmbeddedGraphicsSurface()
. Si tratta di un'API sperimentale ed è soggetta a modifiche. (I9ddb2) - Ora
Modifier.magnifier()
è un'API stabile. È inclusa la rimozione diMagnifierStyle
a favore dei parametri in linea nel modificatore stesso. (I83bec, b/298381260, b/262367109, b/261438887)
Modifiche alle API
- Introdotti
updateCurrentPage
eupdateTargetPage
inScrollScope
, questi sono gli ultimi elementi necessari per consentire la personalizzazione dello scorrimento animato fino aPagerState.scroll
. (I9cad5, b/267744105, b/243786897) - Rimuovi la densità da
SnapFlingBehavior
. Tutte le implementazioni diSnapLayoutInfoProvider
hanno già un modo per accedere alla densità; l'ambito del ricevitore potrebbe essere rimosso, il che comporterà un'implementazione meno complessa diSnapFlingBehavior
eSnapLayoutInfoProviders
. (I153c3). - Più modificatori contrassegnati come stabili. (I56af1, b/298046462)
SnapStepSize
rimosso daSnapLayoutInfoProvider
. Il calcolo deve essere eseguito utilizzando le informazioni di layout e fornite mediante gli offset di approccio o di agganciamento. (If320c).
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)
Correzioni di bug
- Rimuovi l'utilizzo di
rememberSaveable
per le descrizioni comando. (Icc131, b/299500338)
Versione 1.6.0-alpha05
6 settembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha05
. La versione 1.6.0-alpha05 contiene questi commit.
Modifiche alle API
- Aggiungi sovraccarichi per
BasicSecureTextField
che accettano un valore immutabile e un callback per modificare quel valore, proprio come l'attuale APIBasicTextField
. (Ia4882) - Aggiungi
Modifier.preferKeepClear()
per contrassegnare come componibile come preferito per evitare finestre mobili sull'API 33 e versioni successive. (Ib51d5, b/297260115) - Le velocità di scorrimento nei componenti della vista come
ScrollView
eRecyclerView
sono limitate aViewConfiguration.ScaledMaximumFlingVelocity
. Compose ora contiene la propria versione dimaximumFlingVelocity
, che ora si applica aDraggable
. (Ibf974). - Sono stati rimossi gli sovraccarichi di
Pager
ePagerState
deprecati. (Iea07e). BasicTooltipBox
aggiunto acompose.foundation
e aggiornatoPlainTooltipBox
eRichTooltipBox
per utilizzareTooltipBox
con i nuovi elementi componibiliPlainTooltip
eRichTooltip
. (I79e1d)
Versione 1.6.0-alpha04
23 agosto 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha04
. La versione 1.6.0-alpha04 contiene questi commit.
Modifiche alle API
- 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)- Aggiungi sovraccarichi per
BasicTextField2
che accettano un valore immutabile e un callback per modificare quel valore, proprio come l'attuale APIBasicTextField
. (I3f2b8) - Ora
GridItemSpan::currentLineSpan
è un'API stabile. (Icc29c) - Il canvas che accetta
contentDescription
ora è un'API stabile. (Ib3d29) viewportSize
introdotto inScrollState
, un modo per conoscere la dimensioneviewPort
del componente che utilizzaScrollState
dopo la misurazione. (I8b85a, b/283102682)- È stato risolto un problema per cui il precaricamento nel Pager non corrispondeva al comportamento nelle Visualizzazioni. (I93352, b/289088847)
- Ora
Modifier.consumeWindowInsets(PaddingValues)
è stabile.- L'API
Deprecated Modifier.consumedWindowInsets
è stata rimossa. Usa invece il criterioModifier.consumeWindowInsets
. (ID72bb)
- L'API
Versione 1.6.0-alpha03
9 agosto 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha03
. La versione 1.6.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiunto un sovraccarico di
LazyLayout
, accetta una funzione lambda diLazyLayoutItemProvider
, non un oggetto semplice come era prima. L'overload precedente è deprecato. (I42a5a) - Aggiunto il supporto per la configurazione di
privateImeOptions
(Idb772)
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 direadOnly
viene modificato da vero a falso durante lo stato attivo. (I34a19, b/246909589)
Versione 1.6.0-alpha02
26 luglio 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha02
. La versione 1.6.0-alpha02 contiene questi commit.
Modifiche alle API
PagerLayoutInfo
introdotto con informazioni raccolte dopo l'approvazione della misura inPager
. Sono state introdotte anche lePageInfo
, le informazioni su una singola pagina misurata inPager
. (Iad003, b/283098900)- Annotazioni aggiuntive per specificare gli input consentiti per i componibili (I51109)
- È stato aggiunto
SemanticsNodeInteraction.requestFocus
come modo più comodo e rilevabile per richiedere l'attenzione nei test. (Ie8722). - L'API
PlatformTextInput*
è stata completamente riprogettata. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
eLocalSoftwareKeyboardController
non sono più sperimentali. Ora ancheLocalSoftwareKeyboardController
è unCompositionLocal
vero e proprio. (I4c364).Modifier.transformable
ora fornisce il delta panoramica nel parametrocanPan
per aiutare a determinare la direzione della panoramica per consentire o meno l'operazione. (I692aa, b/266829800)- Aggiorna il modificatore
consumeWindowInsets
per estendere la superclasseAbstractComposeView
(Iacd74, b/269479941)
Versione 1.6.0-alpha01
21 giu 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.6.0-alpha01
. La versione 1.6.0-alpha01 contiene questi commit.
Nuove funzionalità
- È stata introdotta una nuova API
AnchoredDraggable
nella versione di base. Può essere utilizzato per creare componenti che possono essere trascinati tra stati discreti, come i fogli inferiori modali. Questa API sostituisce l'APISwipeable
di Material. (I4a2ed).
Modifiche alle API
- Supporto
InputConnection#requestCursorUpdates
(I0c69b) scrollAnimationSpec
introdotto per consentire le specifiche delle animazioni personalizzate. Aggiornamento diBringIntoViewCalculator
inBringIntoViewScroller
completato. (Idb741)- 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) - Sono state aggiunte proprietà e azioni semantiche per supportare la traduzione del testo. (I4a6bc).
- È stata introdotta un'API
BringIntoViewCalculator
che può essere usata per personalizzare il modo in cui i componenti comeScrollable
rispondono alle richiestebringIntoView
. È stato modificato il sovraccarico del tipo di elemento scorrevole per accettare facoltativamente un'istanza diBringIntoViewCalculator
. (Iaf5af)
Correzioni di bug
- È stato aggiunto un controllo lint per avvisarti se stai creando una composizione
MutableInteractionSource
senza ricordarla, in modo simile ai controlli lint per la creazione dello stato modificabile /Animatable
. (I5daae) - 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)
- È stata aggiunta l'interfaccia
FocusTargetModifierNode
che può essere utilizzata per creare unFocusTarget
personalizzato. (I9790e)
Versione 1.5
Versione 1.5.4
18 ottobre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.4
. La versione 1.5.4 contiene questi commit.
Versione 1.5.3
4 ottobre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.3
. Questa versione non presenta modifiche.
Versione 1.5.2
27 settembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.2
. La versione 1.5.2 contiene questi commit.
Correzioni di bug
- È stato corretto un bug nel testo che causava arresti anomali in determinate circostanze quando la semantica veniva invalidata.
Versione 1.5.1
6 settembre 2023
Viene rilasciato androidx.compose.foundation:foundation-*: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 direadOnly
viene modificato da vero a falso durante lo stato attivo. (I34a19, b/246909589)
Versione 1.5.0
9 agosto 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.0
. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
- È stata eseguita la migrazione all'API
Modifier.Node
di molti modificatori di base, tra cuiModifier.clickable
,Modifier.draggable
,Modifier.scrollable
, modificatore di layout e altri, per ridurre l'overhead sulla composizione iniziale. - Miglioramenti della stabilità dei cercapersone. Molti bug sono stati risolti.
- Il parametro
pageCount
ora si trova inPagerState
anziché nel pager stesso
Versione 1.5.0-rc01
26 luglio 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.0-rc01
. La versione 1.5.0-rc01 contiene questi commit.
Correzioni di bug
È disponibile un'ispezione facoltativa per consigliare la migrazione delle chiamate
mutableStateOf()
ai tipi specializzati corrispondenti per le primitive. L'ID lint èAutoboxingStateCreation
. In precedenza, questa ispezione era abilitata per impostazione predefinita per tutti i progetti. Per visualizzare questo avviso nell'editor di Android Studio e negli output lint del progetto, cambia la gravità da informativo ad avviso (o superiore) dichiarandowarning "AutoboxingStateCreation"
all'interno della configurazionebuild.gradle
obuild.gradle.kts
del modulo, come mostrato (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Versione 1.5.0-beta03
28 giugno 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.0-beta03
. La versione 1.5.0-beta03 contiene questi commit.
Versione 1.5.0-beta02
7 giugno 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.0-beta02
. La versione 1.5.0-beta02 contiene questi commit.
Versione 1.5.0-beta01
24 maggio 2023
Viene rilasciato androidx.compose.foundation:foundation-*:1.5.0-beta01
. La versione 1.5.0-beta01 contiene questi commit.
Modifiche alle API
- Implementa
PlatformDataProvider
per fornire battito cardiaco e passi giornalieri. L'interfacciaSensorGateway
è stata rimossa dall'API pubblica. (I55b84).
Correzioni di bug
- Riduci le allocazioni durante l'elenco lento/le griglie e così via. misurazioni (Iaf9e2)
- Allocazioni ridotte durante l'applicazione degli snapshot (I65c09)
- Allocazioni rimosse dalle animazioni primaverili (Ie9431)
- Allocazione rimossa da
TextLayout
(I0fd11) - Rimosse più allocazioni nel monitoraggio della velocità del puntatore (I26bae)
Versione 1.5.0-alpha04
10 maggio 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.5.0-alpha04
e androidx.compose.foundation:foundation-layout:1.5.0-alpha04
. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche alle API
- È stato aggiunto il valore
TextStyle.merge(...)
ottimizzato con l'elenco completo dei parametri. (Iad234, b/246961787) - Presenta un
SnapLayoutInfoProvider
che può essere utilizzato conLazyGridState
. (I92134, b/269237141, b/260914964) - È stata aggiunta la versione sperimentale
Modifier.animateItemPlacement()
per l'ambito degli elementi con griglia sfalsata. Puoi applicarla agli elementi per ottenere le animazioni di modifica/riordinamento della posizione dell'automazione. (I4b62d, b/257034719) - Promuovi
GridCells.FixedSize
a livello stabile.FixedSize
definisce unLazyGrid
in cui ogni cella assume la dimensione esatta sull'asse trasversale e lo spazio rimanente viene distribuito secondo una disposizione dell'asse trasversale. (I8542f) - Introdotto l'ambito del ricevitore
PagerScope
per Pager e una funzione di utilità per il calcolo di un determinato offset di pagina. (If2577). - Introduci l'
snapPositionalThreshold
quando crei un comportamento di scorrimento rapido. Utilizza questo parametro per specificare una soglia di posizionamento per l'aggancio breve nel Pager. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds
sostituito concalculateSnappingOffset
. Con questo nuovo metodo, richiediamo semplicemente l'offset successivo su cui agganciare. Il calcolo dei limiti deve essere eseguito a livello di implementazione, in quanto può variare a seconda di come deve avvenire l'allineamento. (I923a4)LazyStaggeredGrid
API sono state promosse alla versione stabile. (I633a5)- Rimuovi
pageCount
daHorizontal/VerticalPager
. Deve essere fornito al momento della creazione dello stato.PagerState
erememberPagerState
aggiornati per accettare ipageCount
. (Ieb52d, b/266965072) - Rimuovi
pageCount
daHorizontal/VerticalPager
. Deve essere fornito al momento della creazione dello stato.PagerState
erememberPagerState
aggiornati per accettare ipageCount
. (Ifa3cb, b/266965072) - Presenta
shortSnapVelocityThreshold
inSnapFlingBehavior
di Pager. (I7379e, b/275579012) - Aggiunge un
FlowRowScope
e unFlowColumnScope
. (I54fe2)
Correzioni di bug
- Chiamate per ottenere la semantica sul testo quando i vincoli hanno
minWidth
eminHeight
non si arrestano più in modo anomalo. (Ibd072) - È 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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.5.0-alpha03
e androidx.compose.foundation:foundation-layout:1.5.0-alpha03
. La versione 1.5.0-alpha03 contiene questi commit.
Questa release attiva il nuovo stack di rendering del testo per Compose. Il nuovo stack è ottimizzato per le prestazioni e non dovresti notare modifiche visibili.
Se noti modifiche nel testo visualizzato, puoi eseguire il debug impostando NewTextRendering1_5 = false
per confermare la differenza di comportamento. L'impostazione di questa opzione forzerà la ricomposizione. Segnala eventuali differenze di comportamento come bug.
Il flag di debug verrà rimosso prima della release 1.5 beta01.(Iada23, b/246960758)
Modifiche alle API
- Imposta
FlowColumn/FlowRow
in linea. (Idab37)
Versione 1.5.0-alpha02
5 aprile 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.5.0-alpha02
e androidx.compose.foundation:foundation-layout:1.5.0-alpha02
. La versione 1.5.0-alpha02 contiene questi commit.
Modifiche alle API
- Aggiunto il supporto per le celle di dimensioni fisse in
LazyGrid
e la loro disposizione con disposizione degli assi trasversali. (I83ed9, b/235121277, b/267942510) - È stato aggiunto il supporto per le corsie a dimensione fissa in
LazyStaggeredGrid
e la loro disposizione con asse trasversali. (I7d519) - Ora gli
UrlAnnotation
inAnnotatedString
possono essere aperti tramite servizi di accessibilità comeTalkBack
. (If4d82, b/253292081) - È 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) - Aggiunge il supporto per la spaziatura/la disposizione degli assi trasversali utilizzando
verticalArrangement
inFlowRow
ehorizontalArrangement
inFlowColumn
. Rimuoviamo anche leverticalAlignment
e lehorizontalAlignment
di primo livello inFlowRow/FlowColumn
. Gli sviluppatori possono invece usare il criterioModifier.align
. In questo modo si riduce la confusione tra le convenzioni di denominazione diverticalAlignment
everticalArrangement
. (I87b60, b/268365538)
Versione 1.5.0-alpha01
22 marzo 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.5.0-alpha01
e androidx.compose.foundation:foundation-layout:1.5.0-alpha01
. La versione 1.5.0-alpha01 contiene questi commit.
Modifiche alle API
- Il testo e
BasicText
viene sottoposto a refactoring per utilizzare il nuovo sistema di modifica. Questo porta in molti casi a miglioramenti sostanziali delle prestazioni. Nessuna modifica deve essere visibile. (If1d17, b/246961435) - È stata aggiunta l'azione semantica
PerformImeAction
per richiamare l'azione IME sui nodi dell'editor di testo. (Ic606f, b/269633506)
Correzioni di bug
- Aggiornamento interno di
Modifier.hoverable
. Il modificatorehoverable
verrà mostrato nella finestra di ispezione solo se è attivo. (I82103)
Versione 1.4
Versione 1.4.3
3 maggio 2023
androidx.compose.foundation:foundation:1.4.3
e androidx.compose.foundation:foundation-layout:1.4.3
vengono rilasciati senza modifiche (solo un bumper di versione).
Versione 1.4.2
19 aprile 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.2
e androidx.compose.foundation:foundation-layout:1.4.2
. La versione 1.4.2 contiene questi commit.
Versione 1.4.1
5 aprile 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.1
e androidx.compose.foundation:foundation-layout:1.4.1
. La versione 1.4.1 contiene questi commit.
Versione 1.4.0
22 marzo 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0
e androidx.compose.foundation:foundation-layout:1.4.0
. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
- È stata aggiunta l'integrazione della compatibilità delle emoji a
Text
eTextField
, nonché al paragrafo di livello inferiore del paragrafo. Il servizio è attivo per impostazione predefinita quando viene configurato emojicompat. EmojiCompat
può essere configurato su un testo specifico utilizzandoPlatformParagraphStyle
.- Aggiunto il supporto dell'intervallo di righe completo a
LazyStaggeredGrid
(I28252) - Aggiunta del campo
onHover
sperimentale aClickableText
(I6938f) - Sono stati introdotti nuovi sovraccarichi sperimentali per la funzione
runComposeUiTest
e le funzionicreate*ComposeRule
che accettano i parametriCoroutineContext
. Il contesto verrà utilizzato per la composizione di test e per eventuali chiamateLaunchedEffect
erememberCoroutineScope()
nella composizione. (I10614, b/265177763) FlowRow
eFlowColumn
sono ora disponibili come@ExperimentalFoundationApi
che consentono un layout più flessibile basato su righe e colonne dei componenti che verranno suddivisi in una nuova riga se non c'è abbastanza spazio sull'asse principale. (I3a7b2).Modifier.basicMarquee()
è disponibile in modalità sperimentale per la visualizzazione di contenuti con effetto cornice intermittente di scorrimento. (I2df44, b/139321650)
Versione 1.4.0-rc01
8 marzo 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-rc01
e androidx.compose.foundation:foundation-layout:1.4.0-rc01
. La versione 1.4.0-rc01 contiene questi commit.
Modifiche alle API
- È 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) - Aggiungi il supporto del layout inverso a
LazyStaggeredGrid
. (I3ef4a)
Correzioni di bug
- L'azione semantica
SetText
diBasicTextField
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
eperformTextSelection
ora utilizzanoSemanticsActions
. (I0807d, b/269633168, b/269624358)
Versione 1.4.0-beta02
22 febbraio 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-beta02
e androidx.compose.foundation:foundation-layout:1.4.0-beta02
. La versione 1.4.0-beta02 contiene questi commit.
Modifiche alle API
- È stato aggiunto un nuovo callback
Modifier.Node.onReset()
che ti consente di reimpostare alcuni stati locali per gestire correttamente la richiesta quando verrà riutilizzatoLayout
(ad esempio come elemento diLazyColumn
). È stato correttoFocusTargetModifierNode
per reimpostare correttamente lo stato attivo. (I65495, b/265201972) - È stato aggiunto il parametro
BlendMode
ai metodiDrawScope.drawText
,Paragraph.paint
eMultiParagraph.paint
per supportare diversi algoritmi di combinazione quando si disegna testo su Canvas. (I57508) - È stata rimossa l'API
modifierElementOf()
. Estendi direttamente daModifierNodeElement
. (Ie6d21).
Correzioni di bug
- I punti di manipolazione di selezione non possono più selezionare un carattere parziale. (Idedd1)
- Correggi l'arresto anomalo quando Ctrl + Backspace su
TextField
vuoto (I0427f, b/244185537)
Versione 1.4.0-beta01
8 febbraio 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-beta01
e androidx.compose.foundation:foundation-layout:1.4.0-beta01
. La versione 1.4.0-beta01 contiene questi commit.
Nuove funzionalità
- Dalla versione 1.3, è stata aggiunta l'integrazione della compatibilità delle emoji a
Text
eTextField
, nonché al paragrafo di livello inferiore Paragrafo. Il servizio è attivo per impostazione predefinita quando viene configurato emojicompat. EmojiCompat
può essere configurato su un testo specifico utilizzandoPlatformParagraphStyle
.
Modifiche alle API
- È stata aggiunta un'implementazione comune dell'API
PinnableContainer
usata in tutte leLazyLayouts
per conservare gli elementi che escono dalla composizione, ma che devono essere ancora attivi. (If45a4). PinnableContainer.PinnedHandle.unpin()
è stato rinominatorelease()
(I4667a)
Contributo esterno
- Proprietà
mainAxisItemSpacing
aggiunta aLazyListLayoutInfo
,LazyGridLayoutInfo
eLazyStaggeredGridItemInfo
(I52fad)
Versione 1.4.0-alpha05
25 gennaio 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-alpha05
e androidx.compose.foundation:foundation-layout:1.4.0-alpha05
. La versione 1.4.0-alpha05 contiene questi commit.
Nuove funzionalità
- Aggiunto il supporto dell'intervallo di righe completo a
LazyStaggeredGrid
(I28252) - Aggiunta dell'esperimento
onHover
sperimentale aClickableText
(I6938f) - Sono stati introdotti nuovi sovraccarichi sperimentali per la funzione
runComposeUiTest
e le funzionicreate*ComposeRule
che accettano i parametriCoroutineContext
. Il contesto verrà utilizzato per la composizione di test e per eventuali chiamateLaunchedEffect
erememberCoroutineScope()
nella composizione. (I10614, b/265177763)
Modifiche alle API
- Unisce le API precedenti e successive di
OverscrollEffect
in uno "decorator" combinato FunzioniapplyToScroll
eapplyToFling
. Consulta gli esempi aggiornati nella documentazione per esempi su come implementare un effetto overscroll con la nuova forma dell'API. (I8a9c4, b/255554340) - Più tipo/nullabilità di funzioni in linea/deprecate e nascoste (I24f91)
- Le API
LineBreak
eHyphens
inTextStyle
sono passate allo stato stabile. (Ic1e1d).
Correzioni di bug
- Il cursore nei campi di testo continuerà a lampeggiare anche quando le animazioni sono disattivate. (I95e70, b/265177763)
- Ora
Modifier.basicMarquee
si anima anche quando le animazioni sono disattivate nelle impostazioni di sistema. (I23389, b/262298306, b/265177763)
Contributo esterno
- I metodi
notifyFocusedRect
inTextInputSession
eTextInputService
non sono più deprecati. (I23a04, b/262648050)
Versione 1.4.0-alpha04
11 gennaio 2023
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-alpha04
e androidx.compose.foundation:foundation-layout:1.4.0-alpha04
. La versione 1.4.0-alpha04 contiene questi commit.
Nuove funzionalità
FlowRow
eFlowColumn
sono ora disponibili come@ExperimentalFoundationApi
che consentono un layout più flessibile basato su righe e colonne dei componenti che verranno suddivisi in una nuova riga se non c'è abbastanza spazio sull'asse principale. (I3a7b2).Modifier.basicMarquee()
è disponibile in modalità sperimentale per la visualizzazione di contenuti con effetto cornice intermittente a scorrimento. (I2df44, b/139321650)
Modifiche alle API
- La
FocusRequesterModifier
diFocusRequesterModifier
è in favore diFocusRequesterNode
(I7f4f4d7, b/2477708726, b/2477708726, b/25555522203, b/25553522203, b/25553522203, b/253043481 a favore diFocusRequesterNode
(I7f4f4d7, b/2477708726, b/2477708726, b/25555522203, b/25553522203, b/2530434481, b/253043481, b/24777716483; b/2545552}955 {15 - Il costruttore
AndroidFont
convariationSettings
è ora un'API stabile e può essere utilizzato per creare nuovi tipi di descrittori dei caratteri. (I5adcc, b/261565807) - È stata introdotta l'API
PinnableContainer
propagata da elenchi lazy tramite una composizione locale che consente di bloccare l'elemento corrente. Ciò significa che l'elemento non verrà eliminato quando l'utente scorre la pagina al di fuori della visualizzazione. Ad esempio,Modifier.focusable()
blocca l'elemento selezionato corrente tramite questo meccanismo. (Ib8881, b/259274257, b/195049010) - È stato riscritto il modo in cui gli elementi scorrevoli rispondono a
bringIntoViewRequesters
e agli elementi attivabili per modellare meglio la complessità di queste operazioni e gestire un maggior numero di casi limite. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - Altri tipi di output nulli per le funzioni nascoste deprecate (Ibf7b0)
- È stato aggiunto il valore
TextMotion
sperimentale aTextStyle
per definire il testo comeStatic(default)
o animato. UtilizzaTextMotion.Animated
se il testo verrà ridimensionato, tradotto o ruotato tramite animazione. (I24dd7) - Aggiungi
TextFieldFocusModifier
per correggere il comportamento di navigazione dello stato attivo per la piattaforma Android (I00303) - Argomento
maxSize: IntSize
sostituito indrawText
consize: Size
per essere in linea con altre funzioniDrawScope
. Il criteriosize
è impostato suSize.Unspecified
per impostazione predefinita e non dovrebbe modificare il comportamento predefinito precedente. (Icd27d)
Correzioni di bug
- Regolazioni della fisica dello scatto in
SnapFlingBehaviour
per una sensazione più naturale.
Problema noto
- Durante l'aggiornamento da
androidx.compose.foundation:1.4.0-alpha03
aandroidx.compose.foundation:1.4.0-alpha04
, potresti riscontrare un errorejava.lang.NoSuchFieldError
. Qui è indicato in origine il problema. È stata inviata una correzione che sarà disponibile nel prossimo aggiornamento di Compose. Come soluzione, aggiorna le librerieandroidx.compose.material
eandroidx.compose.material3
alla versione più recente(1.1.0-alpha04) o esegui il downgrade diandroidx.compose.foundation
a 1.4.0-alpha03.
Versione 1.4.0-alpha03
7 dicembre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-alpha03
e androidx.compose.foundation:foundation-layout:1.4.0-alpha03
. La versione 1.4.0-alpha03 contiene questi commit.
Modifiche alle API
- 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 direttamentewithFrameNanos
owithFrameMillis
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 delle animazioni in questo CL per degli esempi. - È stato aggiunto il parametro facoltativo
onPerformTraversals: (Long) -> Unit
al costruttoreTestMonotonicFrameClock
e alla funzione di fabbrica per eseguire il codice dopo i callbackwithFrameNanos
, ma prima di riprendere i chiamanti coroutine. (Idb413, b/254115946, b/222093277, b/255802670) - Presenta le azioni di accessibilità della pagina:
PageUp
,PageDown
,PageLeft
,PageRight
. Tieni presente che queste funzionalità sono disponibili solo dall'API 29. (Ida4ab) - Introduci
HorizontalPager
eVerticalPager
, un modo per mostrare gli elementi componibili in modalità cercapersone.PagerState
introdotto per controllare i cercapersone e eseguire query sulle informazioni sullo stato attuale del cercapersone.PageSize
introdotto, un modo per controllare le dimensioni della pagina di un cercapersone, che può essere utilizzato per creare un carosello come Cercapersone.PagerSnapDistance
introdotto, un modo per controllare il funzionamento dell'aggancio nel comportamento flebile di Pager. (I01120) - È stato introdotto un sovraccarico in
SnapFlingBehavior.performFling
per aiutare a capire dove si affronterà l'evoluzione. (I569f6) OverscrollEffect#isEnabled
rimosso. Anziché dover ricordare e impostare questo flag, non inviare eventi all'effetto overscroll nei casi in cui non vuoi che l'overscroll venga visualizzato (ad esempio seScrollableState#canScrollForward/backward
restituiscono entrambi false). (I1a4b0, b/255554340, b/255557085)ScrollableState#canScrollForward
eScrollableState#canScrollBackward
sono stati aggiunti per stabilire se unScrollableState
ha spazio per scorrere in entrambe le direzioni (sia che sia almeno / massimo del suo intervallo). Il valore predefinito è true per la compatibilità con le versioni precedenti diScrollableState
. I consumatori possono utilizzarlo per mostrare all'utente che c'è ancora spazio per scorrere e per evitare di inviare delta aScrollableStates
che non hanno spazio per scorrere in una determinata direzione, in modo da ridurre il lavoro non necessario. (Idf1a0, b/255557085)- È 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 unScrollable ViewGroup
. - Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
- Aggiorna la denominazione
snapStepSize
in modo che sia coerente con altri metodi inSnapLayoutInfoProvider
. (Ife67c). - Aggiunto
EmojiCompat
aCompose
(Ibf6f9, b/139326806) consumedWindowInsets()
è stato rinominato inconsumeWindowInsets()
ewithConsumedWindowInsets()
inonConsumedWindowInsetsChanged()
e ha reso pubblici i modificatori. (Ie44e1).
Correzioni di bug
- L'arresto anomalo con le griglie
Modifier.animateItemPlacement()
e Lazy è stato risolto. Si verificava in alcune condizioni in cui il numero di nuovi elementi è inferiore a quello precedente. (I0bcac, b/253195989)
Versione 1.4.0-alpha02
9 novembre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-alpha02
e androidx.compose.foundation:foundation-layout:1.4.0-alpha02
. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche alle API
awaitFirstDown
ewaitForUpOrCancellation
ora accettano unPointerEventPass
per una maggiore flessibilità. (I7579a, b/212091796)- Ripristina l'API
beyondBoundCount
dalle API Lazy* (I12197) - Parametro introdotto nelle API Lazy per comporre e posizionare fuori gli elementi dell'area visibile (I69e89, b/172029355)
- Parametro
minLines
aggiunto aBasicText
eBasicTextField
. Consente di impostare l'altezza minima di questi componibili in termini numero di righe (I24294, b/122476634)
Versione 1.4.0-alpha01
24 ottobre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.4.0-alpha01
e androidx.compose.foundation:foundation-layout: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 aforEachGesture()
, ma i gesti di loop sui gesti operano interamente all'interno diAwaitPointerEventScope
, in modo che gli eventi non vadano persi tra un'iterazione e l'altra. forEachGesture()
è stato ritirato a favore diawaitEachGesture()
perché consente di perdere eventi tra un gesto e l'altro. (Iffc3f, b/251260206)- Sono stati aggiunti
WindowInsets.imeAnimationSourc
e eWindowInsets.imeAnimationTarget
per determinare l'avanzamento dell'animazione e sapere dove si troverà l'IME dopo il completamento dell'animazione. (I356f1, b/217770337)
Versione 1.3
Versione 1.3.1
9 novembre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.1
e androidx.compose.foundation:foundation-layout:1.3.1
. La versione 1.3.1 contiene questi commit.
Correzioni di bug
- Risolvi il problema di prestazioni in
BeyondBoundsLayout
(aosp/2255266) ContentInViewModifier
non leggerà le coordinate del layout se non è allegato (aosp/2241316)
Versione 1.3.0
24 ottobre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0
e androidx.compose.foundation:foundation-layout:1.3.0
. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
- Sono state introdotte le versioni sperimentali di
LazyVerticalStaggeredGrid
eLazyHorizontalStaggeredGrid
. SnapFlingBehavior
,rememberSnapFlingBehavior
e altre API corrispondenti sono state aggiunte come sperimentali.Modifier.clickable
,Modifier.toggleable
eModifier.selectable
ora mostrano gli echi se fai clic con la tastiera o il D-pad su un telecomando.
Versione 1.3.0-rc01
5 ottobre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-rc01
e androidx.compose.foundation:foundation-layout:1.3.0-rc01
. La versione 1.3.0-rc01 contiene questi commit.
Modifiche alle API
lowVelocityAnimationSpec
introdotto nella fase di approccio quando non c'è una velocità di scorrimento sufficiente per decadire. (Iaeb27)- Sono stati aggiunti nuovi trattini sperimentali delle API per supportare il trattino automatico nel testo (Iaa869)
Versione 1.3.0-beta03
21 settembre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-beta03
e androidx.compose.foundation:foundation-layout: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)
- Ora i
BringIntoViewResponder
sono in grado di ottenere i limiti più aggiornati di una richiesta durante l'elaborazione. (If86a5, b/241591211) - Introduzione del supporto delle spaziature tra gli elementi nell'esperimento
Staggered Grid
sperimentale (I10b82) - Introduzione della spaziatura interna dei contenuti alla versione sperimentale
Staggered Grid
(I342ea) - Argomento
size:IntSize
modificato conconstraints: Constraints
nel metodoTextMeasurer.measure
per supportare vincoli di larghezza minima. (I37530, b/242707525) - È stato aggiunto
Modifier.withConsumedWindowInsets()
per consumareWindowInsets
per l'utilizzo al di fuori diwindowInsetsPadding
. - È stato aggiunto
MutableWindowInsets
per consentire di modificare facilmenteWindowInsets
senza ricomposizione. (I7fd28, b/237019262, b/243119659)
Versione 1.3.0-beta02
7 settembre 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-beta02
e androidx.compose.foundation:foundation-layout:1.3.0-beta02
. La versione 1.3.0-beta02 contiene questi commit.
Modifiche alle API
- Versione iniziale della versione sperimentale
StaggeredGrid
(Ia48be) FocusDirection.In
eFocusDirection.Out
sono stati rinominati inFocusDirection.Enter
eFocusDirection.Exit
(Ia4262, b/183746982)- È stato introdotto un sovraccarico di
rememberSnapFlingBehavior
che consente di attivare rapidamente l'aggancio inLazyLists
. (Ifb48a). - È stata sostituita la fabbrica
snapFlingBehavior
con una classeSnapFlingBehavior
in cemento. MetodiSnapLayoutInfoProvider
con ambito a Densità per semplificare le conversioni Dp<->Px per gli utenti dell'API. (I54a11) - Aggiorna
LazyLayoutMeasureScope.measure
per restituire l'elenco dei posizionamenti, mettendo in evidenza l'immutabilità desiderata del valore restituito. (I48b7c) - È stato introdotto
SnapLayoutInfoProvider
che richiede unLazyListState
per creare un'istanza diSnapLayoutInfoProvider
che può essere utilizzata per attivare uno snapshotFlingBehavior
perLazyLists
. (I2dd10)
Correzioni di bug
- Esegue il refactoring di
AwaitPointerEventScope#awaitLongPressOrCancellation
in modo che corrisponda ad altre funzioni di attesa (I646e6)
Versione 1.3.0-beta01
24 agosto 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-beta01
e androidx.compose.foundation:foundation-layout:1.3.0-beta01
. La versione 1.3.0-beta01 contiene questi commit.
Modifiche alle API
pointerPosition
rimosso daOverscrollEffect
: per gli effetti per la posizione del puntatore è possibile usareModifier.pointerInput { }
ineffectModifier
per ottenere la posizione corrente del puntatore. (I9f606, b/241239306)AwaitPointerEventScope#awaitLongPressOrCancellation
esposto come componente di base aggiuntivo per un rilevamento dei gesti più complesso (I04374, b/181577176)lazyListSnapLayoutInfoProvider
introdotto per consentire l'aggancio negli elenchi lenti. (I3ecdf)- È stato introdotto
SnapFlingBehavior
, un comportamento dinamico che consente l'agganciamento degli elenchi. Fornisci un'istanza diSnapLayoutInfoProvider
con informazioni sul layout di agganciamento. (Ie754c).
Versione 1.3.0-alpha03
10 agosto 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-alpha03
e androidx.compose.foundation:foundation-layout:1.3.0-alpha03
. La versione 1.3.0-alpha03 contiene questi commit.
Modifiche alle API
- 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) - L'annotazione sperimentale è stata rimossa da
PlatformTextStyle
eLineHeightStyle
. (I64bef) - I campi di testo ora mostreranno eccezioni più dettagliate quando il valore
OffsetMapping
fornito da unVisualTransformation
restituisce indici non validi. (Ie73f9, b/229378536) - Introduci API sperimentali per condividere la logica del fornitore di elementi tra layout Lazy. (Ic891c)
ScrollableDefaults.reverseDirection()
non è più sperimentale. (Iba646)- L'elemento
SemanticsModifier.id
è stato deprecato e l'ID semantico è stato invece spostato inLayoutInfo.semanticsId
. (Iac808, b/203559524) checkScrollableContainerConstraints()
non è più sperimentale. (I2c290)Modifier.clipScrollableContainer()
non è più sperimentale. (Ia2b44)- Ritira
TextInputService.show|hideSoftwareKeyboard
. Usa inveceSoftwareKeyboardController
nel codice dell'app eTextInputSession
nel codice di gestione IME. (I14e4c, b/183448615)
Versione 1.3.0-alpha02
27 luglio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-alpha02
e androidx.compose.foundation:foundation-layout:1.3.0-alpha02
. La versione 1.3.0-alpha02 contiene questi commit.
Modifiche alle API
- È stata aggiunta la funzione di estensione
drawText
inDrawScope
per consentire di disegnare testo con più stili su componibili e modificatori che operano suDrawScope
comeCanvas
edrawBehind
. (I16a62, b/190787898)
Correzioni di bug
- La tastiera su schermo verrà nascosta quando un campo di testo viene disattivato mentre lo stato attivo è impostato. (I6e3e4, b/237308379)
- Quando aggiungi eventi
InputEventChange
al tracker di velocità, ora verranno presi in considerazione i delta anziché le posizioni. Ciò garantisce che la velocità venga calcolata correttamente per tutti i casi anche se l'elemento target si muove (Icea9d, b/216582726, b/223440806, b/227709803) - Quando un elemento scorrevole ha un elemento secondario attivo, ora scorre correttamente per mantenerlo attivo quando le sue dimensioni vengono ridotte, anche se sono animate. (I80867, b/230756508, b/220119990)
- È stato risolto un arresto anomalo per cui
TextField
viene cancellato e ricaricato mentre la selezione è attiva. (I1235b, b/208655565, b/214253689)
Versione 1.3.0-alpha01
29 giugno 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.3.0-alpha01
e androidx.compose.foundation:foundation-layout:1.3.0-alpha01
. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche alle API
- Sono stati introdotti il tipo di annotazione
UrlAnnotation
e i metodi associati per supportare il supporto dei linkTalkBack
inAnnotatedString
. (I1c754, b/231495122)
Correzioni di bug
- Ora
BasicTextField
cursorBrush
potrebbe essere animato senza riavviare il timer del cursore. (I812e6, b/236383522)
Versione 1.2
Versione 1.2.1
10 agosto 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.1
e androidx.compose.foundation:foundation-layout:1.2.1
. La versione 1.2.1 contiene questi commit.
Versione 1.2.0
27 luglio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0
e androidx.compose.foundation:foundation-layout:1.2.0
. La versione 1.2.0 contiene questi commit.
Modifiche importanti dalla versione 1.1.0
LazyVerticalGrid
eLazyHorizontalGrid
sono al momento stabili.- Ora puoi specificare un tipo di contenuti per gli elementi negli elenchi e nelle griglie Lazy. Ciò consentirà ai componenti di riutilizzare gli elementi in modo più efficiente.
- Gli elenchi e le griglie lenti ora includono il parametro
userScrollEnabled
che consente di disattivare lo scorrimento tramite i gesti dell'utente. - È stata aggiunta una nuova API sperimentale denominata
LazyLayout
. È l'API che utilizziamo internamente per alimentare elenchi e griglie lenti. - L'API
OverscrollEffect
è stata introdotta come sperimentale. Puoi definire effetti personalizzati con scorrimento orizzontale e aggiungerne uno standard a container scorrevoli personalizzati. - Sono state introdotte API per l'interoperabilità dello scorrimento nidificate per consentire l'interoperabilità tra viste e attori dello scorrimento di scrittura.
- Lo scorrimento con il mouse e il trackpad è stato aggiunto a tutti i contenitori a scorrimento.
Versione 1.2.0-rc03
29 giugno 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-rc03
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-rc02
e androidx.compose.foundation:foundation-layout:1.2.0-rc02
. La versione 1.2.0-rc02 contiene questi commit.
Versione 1.2.0-rc01
15 giugno 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-rc01
e androidx.compose.foundation:foundation-layout:1.2.0-rc01
. La versione 1.2.0-rc01 contiene questi commit.
Modifiche alle API
- È stato introdotto un
OverscrollEffect
sperimentale per consentire gli effetti di scorrimento dell'overscroll personalizzati, oltre ai sovraccarichiModifier.scrollable
che lo accettano. - La funzionalità
LocalOverScrollConfiguration
sperimentale è stata spostata dafoundation.gesture
al pacchetto di base e rinominataLocalOverscrollConfiguration
(If19fb, b/204650733) - Le interfacce nelle librerie di scrittura vengono ora create utilizzando i metodi predefiniti dell'interfaccia jdk8 (I5bcf1)
- È stata introdotta un'API sperimentale
checkScrollableContainerConstraints()
che consente di verificare che non vengano nidificati i contenitori scorrevoli. Puoi usarlo quando crei i tuoi layout lenti scorrevoli tramiteLazyLayout
. (Id6fab, b/233352497) - L'elemento
LazyVerticalGrid
deprecato è stato rimosso dal pacchettoandroidx.compose.foundation.lazy
. La nuova API stabile si trova inandroidx.compose.foundation.lazy.grid
(I73c76, b/225192009)
Versione 1.2.0-beta03
1 giugno 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-beta03
e androidx.compose.foundation:foundation-layout:1.2.0-beta03
. La versione 1.2.0-beta03 contiene questi commit.
Modifiche alle API
- Sono stati aggiunti i nuovi esperimenti sperimentali
IntervalList
eMutableIntervalList
. Consente di rappresentare alcuni elenchi di valori tramite più intervalli. Ti sarà utile quando vuoi definire una lingua specifica per il dominio simile a quella utilizzata daLazyColumn
, in cui gli elementi dell'elenco possono essere definiti tramite più chiamate elemento/elemento. (I2d05e, b/228580728)
Correzioni di bug
- È stata chiarita la documentazione relativa a
WindowInsets.ime
per indicare che i riquadriime
sono riportati fin dall'API 23, ma sono stati animati solo su versioni 30 e successive. (Ia7fc0, b/230756508) - 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
eDeleteSurroundingTextInCodePointsCommand
ora richiedono che gli argomenti del costruttore siano non negativi. (Ica8e6, b/199919707)
Versione 1.2.0-beta02
18 maggio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-beta02
e androidx.compose.foundation:foundation-layout:1.2.0-beta02
. La versione 1.2.0-beta02 contiene questi commit.
- La risoluzione dei caratteri scaricabili che non modifica le dimensioni del layout del testo o di
TextField
in precedenza non viene ridisegnata, con una visualizzazione dei caratteri non aggiornata. Questa correzione di bug garantisce che il layout del testo attivi sempre la riprogettazione (b/229727404). (I1d49e, b/229727404)
Versione 1.2.0-beta01
11 maggio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-beta01
e androidx.compose.foundation:foundation-layout: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 utilizzati tramite implementazioni personalizzate diLazyList
quando impaginano gli elementi oltre i limiti visibili (Ifabfb, b/184670295) LineHeightBehavior
è stato rinominatoLineHeightStyle
LineVerticalAlignment
è stato rinominatoLineHeightStyle.Alignment
- La ridenominazione di
LineHeightTrim
è stata rinominataLineHeightStyle.Trim
- I valori predefiniti del costruttore da
LineHeightStyle
sono stati rimossi (I582bf, b/181155707) - Sono stati aggiunti valori predefiniti per i membri facoltativi dell'interfaccia
LazyLayoutItemProvider
. (Iba8a0) - Nell'API
LazyLayoutItemProvider
, invece di una fabbrica che restituisce il lambda componibile in base all'indice, ora abbiamo un elemento di funzione componibile più semplice che accetta l'indice. (ID2196) - LazyLayoutItemsProvider è stato rinominato LazyLayoutItemProvider (I0638c)
LazyLayoutItemsProvider.itemsCount
è stato rinominato initemCount
(Id409c)- È stato aggiunto il Pennello a
TextStyle
eSpanStyle
per fornire un modo per disegnare testo con colorazioni a gradiente. (I53869, b/187839528) trimFirstLineTop
,trimLastLineBottom
attributi diLineHeightBehavior
modificato in una singola enum:LineHeightTrim
.LineHeightTrim
hanno valori di 4 stati definiti da due booleani:FirstLineTop
,LastLineBottom
, entrambi e nessuno (Ifc6a5, b/181155707)L'aggiunta di
LineHeightBehavior
aTextStyle
eParagraphStyle. LineHeightBehavior
consente di stabilire se l'altezza della riga deve essere applicata all'inizio e alla fine dell'ultima riga. Definisce anche l'allineamento della linea nello spazio fornito daTextStyle
(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 quandoincludeFontPadding
è false. (I97332, b/181155707)È stato aggiunto un modificatore sperimentale
imeNestedScroll()
in modo che gli sviluppatori possano controllare l'IME tramite lo scorrimento. (I60759)
Correzioni di bug
- È stata corretta la regressione per cui i campi di testo non nascondevano la tastiera quando veniva rimossa dalla composizione con lo stato attivo. (I7a410, b/230536793, b/225541817)
- Supporta i puntini di sospensione quando l'altezza è limitata e non si adattano a tutte le righe di testo (Ie528c, b/168720622)
- Ora
BringIntoViewRequester.bringIntoView
verrà sospeso sempre fino a quando la richiesta non viene completata o è stata interrotta da una nuova richiesta non sovrapposta. Le richieste sovrapposte verranno messe in coda. (I43e7f, b/216790855) - Le chiamate
BringIntoViewRequester.bringIntoView
contemporanee per rettangoli completamente sovrapposti ora rispettano solo le dalla richiesta di un rettangolo più grande. (I34be7, b/216790855, b/184760918) - Opzione
includeFontPadding
predefinita attivata. È possibile disattivareincludeFontPadding
utilizzando l'attributoTextStyle.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 iTextField
problemi di ritaglio. (I01423, b/171394808) Modifier.bringIntoViewRequester
non usa piùonGloballyPositioned
. (I630f5)
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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha08
e androidx.compose.foundation:foundation-layout:1.2.0-alpha08
. La versione 1.2.0-alpha08 contiene questi commit.
Modifiche alle API
- 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) - Paragrafo e MultiParagraph accettano ora il parametro Vincoli. Al momento non è possibile superare
Constraints.maxHeight
, ma consente di eseguire dei calcoli in futuro, come l'ellissi 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)- Il consumo parziale (posizione OR giù) è stato deprecato in
PointerInputChange
. Puoi utilizzareconsume()
per applicare completamente la modifica. Puoi utilizzareisConsumed
per determinare se qualcun altro ha utilizzato in precedenza la modifica. PointerInputChange::copy()
ora crea sempre una copia superficiale. Significa che le copie diPointerInputChange
verranno consumate una volta che una delle copie è stata utilizzata. Se vuoi creare un elementoPointerInputChange
non associato, utilizza invece il costruttore. (Ie6be4, b/225669674)- Viene introdotta una nuova API sperimentale
LazyLayout
. In questo modo puoi creare i tuoi componenti, ad esempioLazyColumn
diLazyVerticalGrid
. Tieni presente che l'API è ancora in fase di sviluppo e può essere modificata nelle versioni future. (Iba2bc, b/166591700) AndroidFont
ora richiedetypefaceLoader
come parametro del costruttore. (I2c971).- Il companion
WindowInsets
ora mostra la visibilità (sia che si trovino sullo schermo, a prescindere dal fatto che si intersecano con la finestra) e le dimensioni che potrebbero avere se sono disponibili sul dispositivo ma non al momento attive. (I65182, b/217770337)
Versione 1.2.0-alpha07
6 aprile 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha07
e androidx.compose.foundation:foundation-layout:1.2.0-alpha07
. La versione 1.2.0-alpha07 contiene questi commit.
Modifiche alle API
- È stata aggiunta un'API
PinnableParent
che consente agli elementi secondari dei layout lazy di impedire l'eliminazione degli elementi attualmente composti (Ibbdd0, b/184670295) LazyListLayoutInfo
eLazyGridLayoutInfo
ora hanno i campibeforeContentPadding
eafterContentPadding
(I3b628, b/200920410)- È stato aggiunto
KeyboardType.Decimal
come alternativa aKeyboard.Number
per includere specificamente il separatore decimale nell'IME. (Iec4c8, b/209835363) - Aggiungi un nuovo carattere descrittore del carattere(DeviceFontFamilyName) a facoltativamente cercare i caratteri installati dal sistema durante le catene di riserva dei caratteri. (I30468, b/219754572)
PointerEventType.Scroll
ePointerEvent.scrollDelta
sono ora API stabili (I574c5, b/225669674)- La configurazione temporanea della compatibilità per
includeFontPadding
inTextStyle/ParagraphStyle. includeFontPadding
può essere modificata tramiteTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
. Questa è un'opzione di configurazione temporanea per abilitare la migrazione e verrà rimossa. (If47be, b/171394808) - Aggiornamento di
FontFamily.Resolver
per integrare l'impostazione di accessibilità del testo in grassetto a livello di sistema (I6c1e7) - La proprietà dell'estensione
consumeWindowInsets
diComposeView
consente agli sviluppatori di disattivare l'utilizzo di WindowInset di Android. In questo modoComposeViews
separati nella gerarchia possono essere applicatiWindowInsets
senza interferire tra loro. (I0ef08, b/220943142)
Versione 1.2.0-alpha06
23 marzo 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha06
e androidx.compose.foundation:foundation-layout: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) FocusOrder
è stata unita aFocusProperties
efocusProperties()
ora ha tutte le funzionalità difocusOrder()
.FocusOrder
efocusOrder()
sono stati deprecati.focusOrder()
che accetta unfocusRequester
deve essere sostituito con un modificatorefocusRequester()
in combinazione confocusProperties()
. In questo modo i modificatori possono avere una separazione più forte dei problemi. (I601b7)- È stato aggiunto
WindowInsets.asPaddingValues(Density)
per consentire agli sviluppatori di eseguire la conversione senza dover essere in composizione. (I94c35) - 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)
Correzioni di bug
- Ora i modificatori di scorrimento (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
eModifier.scrollable()
) scorrono per mantenere visibile il componibile attivo se l'area di scorrimento viene ridimensionata e il componibile attivo era precedentemente visibile. - I campi di testo verranno ora mantenuti sopra la tastiera quando vengono selezionati lo stato attivo e la tastiera viene visualizzata, quando si trova all'interno di una modalità di scorrimento non lazy e la modalità di immissione software è
ADJUST_RESIZE
. (I4a485, b/190539358, b/192043120, b/216842427)
Versione 1.2.0-alpha05
9 marzo 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha05
e androidx.compose.foundation:foundation-layout:1.2.0-alpha05
. La versione 1.2.0-alpha05 contiene questi commit.
Modifiche alle API
LazyVerticalGrid
eLazyHorizontalGrid
ora sono stabili. (I307c0)LazyGridItemInfo.Unknown
è stato sostituito conLazyGridItemInfo.UnknownRow
eLazyGridItemInfo.UnknownColumn
separati (I56d51)LazyVerticalGrid
/LazyHorizontalGrid
e tutte le API correlate sono stati spostati in.grid
sottopacchetto. Aggiorna le importazioni daandroidx.compose.foundation.lazy
aandroidx.compose.foundation.lazy.grid
. (I2d446, b/219942574)- Testo: la funzionalità
includeFontPadding
è ora disattivata per impostazione predefinita. La vengono gestiti i problemi di ritaglio causati daincludeFontPadding=false
senza tagli nei testi lunghi. (I31c84, b/171394808) - L'interfaccia misurata ora espone la proprietà parentData (I3313f)
- È stato introdotto l'esperimento
Modifier.onFocusedBoundsChanged
per consentire nell'osservare i limiti degli elementi attivabili del figlio. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid è stata aggiunta. (I61ae7, b/191238807)
- È stata aggiunta una nuova API
LazyVerticalGrid
per definire le dimensioni degli assi trasversali (I17723) - Aggiunto modificatore FocusGroup (I64bc0, b/213508274, b/184670295)
Correzioni di bug
WindowInsets.toString()
ora mostrerà i valori corretti. (I1585d)
Contributo esterno
- Aggiornamento per l'utilizzo di Kotlinx coroutines 1.6.0 (I3366d)
Versione 1.2.0-alpha04
23 febbraio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha04
e androidx.compose.foundation:foundation-layout:1.2.0-alpha04
. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche alle API
BringIntoViewResponders
non sono più tenuti a eseguire manualmente le richieste agli utenti che possono rispondere e devono invece restituire immediatamente il rettangolo che devono portare i genitori in vista. (I8e66a)- Supporto del caricamento asincrono dei caratteri nel testo (I77057, b/214587005)
LazyVerticalGrid
ora supportaline breaking
prima degli elementi con intervallo che non rientrano nella riga corrente. (I05c40, b/207462103)excludeFromSystemGestures
rinominato insystemGesturesExclusion
(I19526)LazyVerticalGrid
ora supporta il layout inversa. (I6d7d7, b/215572963, b/211753558)- Aggiungi il metodo
WindowInsets.only()
per consentire agli sviluppatori per includere solo le dimensioni di WindowInset. (I14c94, b/217768486) Aggiunti
ComposableTarget
,ComposableTargetMarker
eComposableOpenTarget
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
oReusableComposeNode
devono aggiungere unCompoableTarget
per la funzione e qualsiasi tipi di parametri lambda componibili. Tuttavia, è consigliabile per creare un'annotazione annotata conComposableTargetMarker
e poi l'annotazione contrassegnata anzichéComposableTarget
direttamente. Un'annotazione componibile contrassegnato conComposableTargetMarker
equivale aComposbleTarget
con il nome completo dell'attributo come parametro dell'applicatore. Per un esempio dell'utilizzoComposableTargetMarker
vedianroidx.compose.ui.UiComposable
. (I38f11)
Correzioni di bug
- Ora è possibile passare gli offset di scorrimento negativi in
LazyGridState.scrollToItem()
eLazyGridState.animateScrollToItem()
. (I025c6, b/211753558) - Supporta il caricamento asincrono dei caratteri per TextField. (Icc4bf, b/214587005)
Versione 1.2.0-alpha03
9 febbraio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha03
e androidx.compose.foundation:foundation-layout:1.2.0-alpha03
. La versione 1.2.0-alpha03 contiene questi commit.
Modifiche alle API
notifyFocusedRect
metodi inTextInputSession
eTextInputService
sono deprecati e non verranno chiamati. Utilizza le funzionalità diBringIntoViewRequester
in alternativa. (Ia4302, b/192043120, b/216842427, b/178211874)- Le animazioni sono state attivate per gli elementi delle griglie lazy con Modifier.animateItemPosizionamento(). (Ib6621, b/211753218)
BringIntoViewRequester
ora propaga le richieste all'hosting Vista Android. (Ia7a51)FontFamilyResolver
è ora disponibile tramiteLocalFontFamilyResolver.current
- .
- Hai aggiunto
createFontFamilyResolver(context)
ecreateFontFamilyResolver(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, deprecatoTextLayoutResult.layoutInput.resourceLoader
perché non viene più utilizzata. (Id5a45, b/174162090)
- Hai aggiunto
- È 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 carattere, consulta AndroidFont. - La funzione di estensione di
Font.AndroidResourceLoader
consente costruzione di unaFont.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)
- L'API
- 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 inveceFontFamilyResolver.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 inveceFontFamilyResolver.preload
(If8e7c, b/174162090)
- L'API
- Ora puoi specificare il tipo di contenuti per gli elementi di
LazyVerticalGrid
. Le funzioni elemento/elemento suLazyGridScope
ora accettano questo parametro. Queste informazioni consentono di riutilizzare la logica della composizione degli elementi per renderla più efficiente e di riutilizzare i contenuti solo tra elementi di tipo simile. (I7b355, b/215372836) - Ora
LazyListLayoutInfo
eLazyGridLayoutInfo
hanno nuove proprietà:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410) - Ora puoi specificare il tipo di contenuto per gli elementi di LazyColumn/LazyRow. Le funzioni item/items su LazyListScope ora accettano questo parametro. Queste informazioni consentono di riutilizzare la logica della composizione degli elementi per renderla più efficiente e di riutilizzare solo i contenuti tra elementi di tipo simile. (I26506)
- Il costruttore
SubcomposeLayoutState
che accettamaxSlotsToRetainForReuse
è ora deprecato. È disponibile invece un nuovo costruttore che accettaSubcomposeSlotReusePolicy
: una nuova interfaccia che consente un controllo più granulare su quali slot devono essere conservati per il riutilizzo futuro. (I52c4d). - Aggiunge modificatori per WindowInsets, entrambi per la spaziatura interna e dimensioni. Ciò consente ad alcuni contenuti di estendersi fino all'area interna, e mantenere i contenuti principali al di fuori dell'area interna. Ad esempio, windowInsetsPadding può essere utilizzato per riempire i contenuti per evitare aree coperte completamente o parzialmente. (ID0395, b/213942085)
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)
- L'app desktop
- Il tipo di immissione da tastiera software non sfarfalla più durante la modifica lo stato attivo tra i campi di testo. (I1bf50, b/187746439)
- I campi di testo non richiedono più una pressione arretrata aggiuntiva quando la barra di stato del cursore viene visualizzata. (Ideb4b, b/205726883)
- Il comportamento della lente d'ingrandimento è stato modificato in e la lente d'ingrandimento della piattaforma. (Idd918, b/206833278)
Versione 1.2.0-alpha02
26 gennaio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha02
e androidx.compose.foundation:foundation-layout:1.2.0-alpha02
. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche alle API
NonRestartableComposable
aggiunto ai metodi che sono sovraccarichi di metodi esistenti senza una logica complessa. In questo modo si riduce generati controlli di memorizzazione (uguale) per tutti i parametri che vengono ripetute nella funzione interna che è chiamata. (I90490)- Aggiunti
excludeFromSystemGesture
modificatori per facile accesso asetSystemGestureExclusionRects
di Android (I46f07)
Correzioni di bug
- Il comportamento della lente d'ingrandimento è stato modificato in e la lente d'ingrandimento della piattaforma. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
e altri contenitori che utilizzanoModifier.scrollable
ora supportano lo scorrimento della rotellina del mouse. (I2b5e1, b/198214718)
Versione 1.2.0-alpha01
12 gennaio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.2.0-alpha01
e androidx.compose.foundation:foundation-layout:1.2.0-alpha01
. La versione 1.2.0-alpha01 contiene questi commit.
Modifiche alle API
- Il nuovo parametro
userScrollEnabled
è stato aggiunto aLazyColumn
,LazyRow
eLazyVerticalGrid
per consentire agli utenti di disattivare temporaneamente o permanentemente lo scorrimento avviato dall'utente tramite gesti tattili o azioni di accessibilità. Sarà comunque consentito scorrere in modo programmatico mediante i metodi per lo stato. (I7eae9, b/201150093) - Aggiungi il callback
onSizeChanged
al modificatore Lente d'ingrandimento. (I6879f) - Il widget della lente d'ingrandimento ora viene mostrato quando trascini la selezione
handle in un
SelectionContainer
. (I30b38, b/139320979)
Correzioni di bug
- Corregge il punto di manipolazione del cursore di
TextField
che non nascondeva quando si scorri verso l'esterno vista. (I14552, b/208883748)
Aggiornamenti delle dipendenze
- Ora dipende da Kotlin
1.6.10
.
Versione 1.1
Versione 1.1.1
23 febbraio 2022
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.1
e androidx.compose.foundation:foundation-layout:1.1.1
. La versione 1.1.1 contiene questi commit.
Correzioni di bug
- Correggi
NullPointerException
inandroidx.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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-rc03
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-rc01
e androidx.compose.foundation:foundation-layout:1.1.0-rc01
. La versione 1.1.0-rc01 contiene questi commit.
Correzioni di bug
- Ora è possibile passare gli offset di scorrimento negativi in
LazyListState.scrollToItem()
eLazyListState.animateScrollToItem()
. (Iceb90, b/184252837) - È stato corretto un bug che causava la mancanza delle azioni di scorrimento per l'accessibilità (I7cbfb)
Versione 1.1.0-beta04
1 dicembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-beta04
e androidx.compose.foundation:foundation-layout: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 di utilizzare PointerInputchange nel suo complesso o di verificare se è stato utilizzato o meno. (I2e59d).
- Mostra un widget di lente d'ingrandimento quando trascini il cursore oppure punti di manipolazione di selezione all'interno dei campi di testo. (I5391e, b/203781358)
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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-beta03
e androidx.compose.foundation:foundation-layout:1.1.0-beta03
. La versione 1.1.0-beta03 contiene questi commit.
Modifiche alle API
- A LazyVerticalGrid è stato aggiunto il supporto per le sezioni orizzontali. (I7e2fa, b/176758183)
È stata aggiunta una funzionalità sperimentale per animare le posizioni degli elementi degli elenchi lenti. In LazyItemScope è disponibile un nuovo modificatore chiamato
Modifier.animateItemPlacement()
. Esempio di utilizzo:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
- Se fornisci una chiave tramite
LazyListScope.item
oLazyListScope.items
, questo modificatore attiva le animazioni per il riordinamento degli elementi. Oltre al riordinamento degli elementi, verranno animate anche tutte le altre modifiche di posizione causate da eventi come modifiche alla disposizione o all'allineamento. (I59e7b, b/150812265)
- Se fornisci una chiave tramite
Versione 1.1.0-beta02
3 novembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-beta02
e androidx.compose.foundation:foundation-layout:1.1.0-beta02
. La versione 1.1.0-beta02 contiene questi commit.
Correzioni di bug
- L'eco e altre indicazioni ora verranno ritardate solo se si trovano all'interno di un container
Modifier.scrollable()
, invece di essere sempre ritardate per un evento inattivo. (Ibefe0, b/203141462) - È stata aggiunta l'API sperimentale BringIntoView che consente di inviare una richiesta ai genitori che scorrono per visualizzare un elemento (Ib918d, b/195353459)
Contributo esterno
Modifier.pointerHoverIcon
aggiunto (I95f01)
Versione 1.1.0-beta01
27 ottobre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-beta01
e androidx.compose.foundation:foundation-layout:1.1.0-beta01
. La versione 1.1.0-beta01 contiene questi commit.
Correzioni di bug
- È stata aggiunta l'API sperimentale BringIntoView che consente di inviare una richiesta ai genitori che scorrono per visualizzare un elemento (Ib918d, b/195353459)
Versione 1.1.0-alpha06
13 ottobre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha06
e androidx.compose.foundation:foundation-layout:1.1.0-alpha06
. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche alle API
- È stato aggiunto un sovraccarico senza figlio per Layout, con una maggiore efficienza (Ib0d9a)
SemanticsNodeInteraction.performSemanticsAction
ora torna ilSemanticsNodeInteraction
su cui è stata chiamata la funzione. (I9e5db)- Aggiunto
performScrollToNode(matcher: SemanticsMatcher)
che fa scorrere un contenitore scorrevole fino ai contenuti corrispondenti un determinato matcher. (Ic1cb8)
Versione 1.1.0-alpha05
29 settembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha05
e androidx.compose.foundation:foundation-layout:1.1.0-alpha05
. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche alle API
- Sono stati aggiunti puntatori storici sperimentali a PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
Correzioni di bug
- Risolto il supporto dell'accessibilità per gli elementi scorrevoli (sia lenti sia lenti non lazy) rispetto allo scorrimento (I6cdb0)
Versione 1.1.0-alpha04
15 settembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha04
e androidx.compose.foundation:foundation-layout:1.1.0-alpha04
. La versione 1.1.0-alpha04 contiene questi commit.
Modifiche alle API
performGesture
eGestureScope
deprecati, che hanno è stato sostituito daperformTouchInput
eTouchInjectionScope
. (Ia5f3f, b/190493367)- Elemento
touchBoundsInRoot
aggiunto alla raccoltaSemanticsNode
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)
Correzioni di bug
- Sui dispositivi Android 12 è stato aggiunto il supporto per l'overscroll allungato. (Iccf3c, b/171682480)
Versione 1.1.0-alpha03
1° settembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha03
e androidx.compose.foundation:foundation-layout: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 Kotlin1.5.30
. (I74545)
Modifiche alle API
- L'effetto Glow per lo scorrimento è stato aggiunto. È stata aggiunta una nuova API sperimentale OverscrollConfiguration per consentire la configurazione dell'effetto visivo overscroll. Specifica null per disattivare l'effetto di scorrimento orizzontale. (I0c304, b/171682480)
- AwaitPointerEventScope ora è withTimeout() e conTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- Aggiunto un metodo di test per ottenere i limiti troncati. (I6b28e)
- 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).
Versione 1.1.0-alpha02
18 agosto 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha02
e androidx.compose.foundation:foundation-layout:1.1.0-alpha02
. La versione 1.1.0-alpha02 contiene questi commit.
Modifiche alle API
- Aggiunte versioni DpSize per
Modifier.size
erequiredSize
(I3fc7e, b/194219828)
Versione 1.1.0-alpha01
4 agosto 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.1.0-alpha01
e androidx.compose.foundation:foundation-layout:1.1.0-alpha01
. La versione 1.1.0-alpha01 contiene questi commit.
Modifiche alle API
- 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) - TextField ora cancella la selezione quando viene premuto il pulsante Indietro, che corrisponde al comportamento di Android EditText. (I3ca16, b/174173645)
- Aggiungi punto di manipolazione del cursore. (I07a82, b/173016579)
Correzioni di bug
- Lo scorrimento tramite azioni semantiche per elenchi lenti e componenti di scorrimento regolare è ora animato (Id9066, b/190742024)
Contributo esterno
LazyVerticalGrid
ora accetta i parametri di disposizione sia orizzontale che verticale. (If9c92).
Versione 1.0
Versione 1.0.5
3 novembre 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.5
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.4
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.3
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.2
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.1
e androidx.compose.foundation:foundation-layout: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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0
e androidx.compose.foundation:foundation-layout: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 AGP7.1
. (b/194289155)
Versione 1.0.0-rc02
14 luglio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-rc02
e androidx.compose.foundation:foundation-layout:1.0.0-rc02
. La versione 1.0.0-rc02 contiene questi commit.
- Aggiornamento del rendering dei bordi per forme generiche in modo da risolvere i problemi relativi ai percorsi definiti con dimensioni fisse. (aosp/1748871, b/191817116)
Versione 1.0.0-rc01
1 luglio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-rc01
e androidx.compose.foundation:foundation-layout:1.0.0-rc01
. La versione 1.0.0-rc01 contiene questi commit.
Modifiche alle API
- Canvas ora supporta un parametro contentDescription per accessibilità. (Ib547c).
Correzioni di bug
- Pulsante, scheda, caselle di controllo e
Modifier.clickable(enabled=false)
in generale disattivati bloccheranno i clic di quello principale. (Ic2c3b, b/183908811)
Versione 1.0.0-beta09
16 giugno 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta09
e androidx.compose.foundation:foundation-layout:1.0.0-beta09
. La versione 1.0.0-beta09 contiene questi commit.
Modifiche alle API
ManualFrameClock
rimosso. Se hai bisogno di controllare le animazioni, usa invececomposeTestRule.mainClock
. (I3c3e8, b/189951065)- cambia enum Role e LiveRegionMode in classi in linea con costruttore privato (Id1890)
- KeyboardCapitalization viene convertita in classe in linea. (Id5a1c)
- TextOverflow è cambiato in una classe in linea. (I433af)
Correzioni di bug
- Ora, quando specifichi le chiavi univoche per gli elementi LazyColumn/Row, la posizione di scorrimento verrà mantenuta in base alla chiave, il che significa che se aggiungi o rimuovi elementi prima dell'elemento attualmente visibile, l'elemento con la chiave specificata verrà mantenuto come il primo visibile. (Id263f, b/184257857)
- Le costanti chiave sono @ExperimentalComposeUiApi per il momento. Consumo può dichiarare le costanti private prima della stabilizzazione. (Ia5d48)
- È stata aggiunta la strategia IdlingStrategy ad AndroidComposeTestRule, che può essere
usata dai framework di test per installare un meccanismo alternativo in attesa
o raggiungere la quiescenza. Utilizza le funzionalità di
AndroidComposeTestRule.setIdlingStrategyFactory()
prima del test a installare la tua strategia. (I608fa)
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 insrc/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 utilizzaadb 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ù caratteriH
,S
eP
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 classeandroidx.compose.runtime.SlotTable
avrà un descrittoreLandroidx/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 metodofun isPlaced(): Boolean
suLayoutNode
ha la firmaisPlaced()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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta08
e androidx.compose.foundation:foundation-layout:1.0.0-beta08
. La versione 1.0.0-beta08 contiene questi commit.
Modifiche alle API
- L'enum NestedscrollSource è sostituito da una classe in linea. (Ie321b, b/187055290)
- Utilizzo di enum sottoposto a refactoring in classi in linea per evitare esaustivi quando affermazioni vengono aggiunti nuovi valori enum. (I2b5eb)
- Aggiunge un timeout del tocco all'elemento cliccabile/attivabile per evitare la visualizzazione di un'eco durante lo scorrimento o il trascinamento (Ia2704, b/168524931)
- 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 daModifier.focusTarget()
(I6c860)- L'enum KeyboardType viene sostituita da una classe in linea. (I73045, b/187055290)
- Enum
FocusState
sostituita con un'interfacciaFocusState
(ICC1a, b/187055290) - L'enum ImeAction è sostituita da una classe in linea. (I18be5, b/187055290)
- Le funzioni di
AnnotatedString.withAnnotation
sono ora ExperimentalTextApi anziché ExperimentalComposeApi. (I0cd0a)- .
- Il costruttore TextUnit con TextUnitType è ora ExperimentalTextApi anziché ExperimentalComposeApi.
- PaddingValues ora è
@Stable
anziché@Immutable
(I88c50)
Correzioni di bug
- Sono stati corretti gli arresti anomali causati dalla pressione prolungata sull'area vuota in un testo non vuoto. (I33ab5, b/187437299)
- Mostra la barra degli strumenti dopo SelectAll (I495d9, b/185919613)
- Correzione per i container scorrevoli che troncavano i relativi elementi secondari sull'asse trasversale. Era facilmente riproducibile se avevi una LazyRow con elementi Card. l'ombra non sarà più tagliata. (Icb635, b/186318448)
- Risolto un problema per cui, a volte, onde o altre indicazioni si bloccavano con un clic lungo quando si utilizzava Modifier.combinedClickable (I2298c, b/186223077)
- Ora
detectDragGesures
,detectVerticalGestures
edetectHorizontalGestures
utilizzeranno automaticamente il cambio di posizione, senza dover chiamare change.consumePositionChange nei callback onTrascina (I42fc4, b/185096350, b/187320697) 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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta07
e androidx.compose.foundation:foundation-layout:1.0.0-beta07
. La versione 1.0.0-beta07 contiene questi commit.
Modifiche alle API
- Viene introdotta la successiva logica di precaricamento degli elementi visibili per LazyColumn/Row (I8a4bc, b/184940225).
- Punto di manipolazione di selezione clip aggiunto (Iff80d, b/183408447)
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).
- Rimuovi paintBackground. (I38660)
- Disegna lo sfondo della selezione utilizzando DrawScope. (I73c61, b/186674472)
- È stata corretta una regressione beta06 relativa a righe e colonne che utilizza gli spazidBy per il layout degli elementi secondari ponderati. (Ifaf8c, b/187326588)
Versione 1.0.0-beta06
5 maggio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta06
e androidx.compose.foundation:foundation-layout: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)
- 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 eSemanticsProperties.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 specificatoSemanticsNodeInteraction.performScrollToKey
che scorre un elenco fino a con la chiave specificata. (I4fe63, b/178483889, b/161584524)
- Aggiunto
- Supporto per il salvataggio di AnnotatedString in TextFieldValue.Saver. Aggiunta di addTtsAnnotation e le funzioni di utilità withAnnotation AnnotatedString.Builder (I8cbdc, b/178446304)
- I valori del parametro
0.dp
predefiniti sono stati aggiunti aPaddingValues(horizontal, vertical)
(I05571, b/181336792)
Correzioni di bug
- Riga & Le colonne secondarie con
weight(fill = false)
non consentono più all'elemento principale di riempire l'intero spazio disponibile dell'asse principale. (Ied94d, b/186012444, b/184355105)
Versione 1.0.0-beta05
21 aprile 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta05
e androidx.compose.foundation:foundation-layout:1.0.0-beta05
. La versione 1.0.0-beta05 contiene questi commit.
Modifiche alle API
- L'interfaccia FlingBehavior è ora contrassegnata come @Stable. Tutte le implementazioni devono essere conformi al contratto
@Stable
. (I93354, b/184830577)
Correzioni di bug
- Corretto
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
accessibilityActionScrollUp
accessibilityActionScrollRight
eaccessibilityActionScrollDown
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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta04
e androidx.compose.foundation:foundation-layout:1.0.0-beta04
. La versione 1.0.0-beta04 contiene questi commit.
Modifiche alle API
- Rinomina hideSoftwareKeyboard e showSoftwareKeyboard on
SoftwareKeyboardController rispettivamente a
hide()
eshow()
.- Offrire l'interfaccia completa di ComposeLocal per LocalSoftwareKeyboardController, che consente di impostarlo (in particolare utile nei test) (I579a6)
- Viene introdotto
TextOverflow.Visible
. (Ic8f89) - Le istanze pubbliche di
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
sono state rimosse. (I4e83e, b/181869067)
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) Prima di questa modifica, le funzioni componibili locali erano ignorabili in base ai loro parametri. Dopo questa modifica, le funzioni componibili locali non verranno ignorate. Questa modifica viene apportata perché è comune e previsto che le funzioni locali acquisiscano i parametri dall'elemento padre, una causa comune di bug.
Riassumendo, consideriamo l'esempio seguente:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
Prima di questa modifica, la funzione componibile
ShowCount
veniva sempre ignorata, anche dopo l'aggiornamento del parametrocount
. Abbiamo deciso, tuttavia, di non dare seguito a questa misura. (I5648a)
Versione 1.0.0-beta03
24 marzo 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta03
e androidx.compose.foundation:foundation-layout:1.0.0-beta03
. La versione 1.0.0-beta03 contiene questi commit.
Modifiche alle API
- L'API
DefaultMonotonicFrameClock
è deprecata. Chiamata in corsowithFrameNanos
oRecomposer.runRecomposeAndApplyChanges
senzaMonotonicFrameClock
ora genereràIllegalStateException
. (I4eb0d)
Correzioni di bug
FlingBehavior.performFling()
ora si chiama anche quando la velocità è 0 (I0b6e5, b/181237123)
Versione 1.0.0-beta02
10 marzo 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta02
e androidx.compose.foundation:foundation-layout:1.0.0-beta02
. La versione 1.0.0-beta02 contiene questi commit.
Modifiche alle API
- Sono state aggiunte diverse ottimizzazioni di piccole dimensioni nella logica di misurazione LazyColumn (Ic6889)
- È 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)
Correzioni di bug
- Applicare restrizioni sull'uso pubblico delle API sperimentali (I6aa29, b/174531520)
Versione 1.0.0-beta01
24 febbraio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-beta01
e androidx.compose.foundation:foundation-layout: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)
- Asserzioni Dp rimosse (I798d2)
- Rimossa il callback SoftwareKeyboardController da tutto il testo da sostituire a breve con una nuova API. (Iae869, b/168778053)
- 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 comeButton
eModifier.clickable()
, utilizzainteractionSource = 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)
- Rimossi i metodi LayoutCoordinates deprecati. Usa la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
- È 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)
Aggiungi LazyListState.animatescrollToItem
Questo metodo consente di scorrere senza problemi fino a un elemento specifico dell'elenco. (I4bfd7)
ScorribileState.smoothscrollBy() è stato rinominato in animatoscrollBy() LazyListState.snapToItemIndex() è stata rinominata in scrollToItem() ScorriState.smoothscrollTo() è stato rinominato in animatescrollTo() (I35ded)
Modifier.zoomable è stato sostituito dal file Modifier.transformable. Le funzionalità smoothPanBy sono state aggiunte al valore smoothRotazioneBy. (Ifc32b, b/175294473)
defaultFactory
percompositionLocalOf
e Ora è obbligatoriostaticCompositionLocalOf
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).Indication#createIndication()
modificato inIndication#rememberUpdatedIndication(InteractionState)
e rimosso il parametroInteractionState
da IndicationInstance#drawIndication()
. IndicationInstance deve essere responsabile solo del disegno di effetti visivi e non dell'avvio di animazioni o della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture degli stati devono invece avvenire all'interno dirememberUpdatedIndication()
. Anche il parametroindication
inModifier.indication
è stato modificato in modo da essere obbligatorio. (Ic1764, b/152525426)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)
" smoothscrollBy" e "scrollBy" pacchetti cambiati in
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig è stato rinominato in FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché dei Decadimenti predefiniti. (I02b86, b/175294473)
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).
defaultMinSizeConstraints è stato rinominato in defaultMinSize. (I4eaae).
Modifier.tapGeFilter è 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)
AnimationClockObservable e le sottoclassi sono state rimosso. L'animazione Float è stata rimossa. (Icde52, b/177457083)
È ora disponibile una modalità di sospensione delle funzioni, Usa passwordsCoroutineScope() per ottenere l'ambito della composizione per chiamarli (I16f60, b/175294473)
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)
Modifier.scrollable è stato rielaborato. Ora utilizza l'interfaccia Scorribile anziché la classe Scorribile (I4f5a5, b/174485541, b/175294473).
Modifier.draggable ora accetta DraggableState anziché un semplice lambda. puoi creare lo stato tramite
rememberDraggableState { delta -> }
per ottenere lo stesso comportamento di prima (Ica70f, b/175294473)Per il ridimensionamento richiesto alle dimensioni intrinseche, sono stati aggiunti i modificatori requiredwidth(IntrinsicSize) e requiredHeight(IntrinsicSize). (I0a6b4)
L'elemento
emptyContent()
deprecato è stato rimosso. Usa invece il criterio{}
. (Idb33f, b/179432510)Sono state eliminate alcune API deprecate in precedenza (Ice5da, b/178633932)
Correzioni di bug
- È 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
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-alpha12
e androidx.compose.foundation:foundation-layout:1.0.0-alpha12
. La versione 1.0.0-alpha12 contiene questi commit.
Modifiche alle API
- 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)
- Test dell'aggiornamento: hasText() verificherà sia i testi di input sia quelli di etichette/suggerimenti/segnaposto nel campo di testo (Iab803)
- PaddingValues.Absolute è stato aggiunto e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
- Il metodo onImeActionPerformed è deprecato. utilizza invece Keyboard Actions (If0bbd, b/179071523)
- 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)
- 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 conComposeTestRule
. (I50ec4, b/151940543) - Animatable.snapTo e Animatable.stop sono ora funzioni di sospensione (If4288)
- 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)
È stato aggiunto il supporto delle chiavi personalizzate per LazyColumn/LazyRow. Questo ci consente di gestire in modo più intelligente il riordinamento degli articoli. Di conseguenza, lo stato che hai memorizzato nei blocchi di promemoria {} si sposterà insieme all'elemento quando riordini gli elementi o rimuovi l'elemento dal centro.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
È stato modificato Indication#createInstance in @Composable e LocalIndication è stata modificata in modo da contenere un'indicazione, non () -> Indicazione. (I5eeea, b/157150564)
Constraints.enforce
è stato sostituito conConstraints.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)
Modifier.clickable ora non supporta il doppio e il lungo clic. Utilizza Modifier.combinedClickable per ottenere questa funzionalità. (Iafad1)
toIntPx() è stato rinominato roundToPx(). (I9b7e4, b/173502290)
IntBounds è stato rinominato IntRect e l'API è stata migliorata. (I1f6ff)
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).
La selezione è stata spostata nelle basi. (I7892b)
Analogamente a come abbiamo rimosso il componibile
state { 0 }
e ora ne promuoviamo l'utilizzo comeremember { mutableStateOf(0) }
, rimuoveremo il componibilesavedInstanceState { 0 }
. Dovresti usarerememberSaveable { 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 parametrostateSaver
. 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)
La riproduzione dell'animazione ora è ridotta ai nanosecondi (If776a)
@ComposableContract è stato ritirato e sostituito con tre annotazioni più specifiche.
@ComposableContract(restartable = false)
è diventato@NonRestartableComposable
@ComposableContract(readonly = true)
è diventato@ReadOnlyComposable
@ComposableContract(preventCapture = true)
è diventato@DisallowComposableCalls
L'account@ComposableContract(tracked = true)
è stato rimosso. (I60a9d)Le utilità
emptyContent()
e(@Composable () -> Unit).orEmpty()
sono state ritirate in quanto non hanno più alcun impatto positivo sulle prestazioni o valore (I0484d)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).
Le API relative a LazyVerticalGrid sono contrassegnate come sperimentali (Ia53e3, b/178519862)
SavedInstanceState() è stato rinominato in saveSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)
Il nome RestorableStateHolder è stato rinominato SaveableStateStatepor e è stato spostato nel pacchetto androidx.compose.runtime.saveable. Il metodo interno RestorableStateProvider è stato rinominato in SaveableStateProvider. Il tipo generico è stato rimosso, quindi puoi semplicemente passare Qualsiasi come chiave. L'annotazione sperimentale non è più necessaria. (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)
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).
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)
canTrascina è stato rimosso da Modifier.scrollable. (Id66e7, b/175294473)
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)
Modifier.scaleGeFilter è stato rimosso. Usa invece Modifier.zoomable. In alternativa, usa
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473)L'elemento AnimatedValue/Float è ora deprecato. Utilizza Animabili. (I71345, b/177457083)
- CoreText e CoreTextField rimossi dall'API pubblica
- Rimosso sovraccarico di SelectionContainer obsoleto (I99c19)
Rimuovi le funzioni di scorrimento deprecate senza sospensione Proseguendo con le modifiche dell'ultima release, lo scorrimento senza sospensione sono state rimosse completamente. Converti in sospensione funzioni con gli stessi nomi. L'ambito della coroutine può essere ottenuto tramite ricordareCoroutineScope(). (I3d39c, b/178169563)
La proprietà androidx.compose.foundation.layout.ConstraintLayout è stata ritirata a favore di androidx.constraintlayout.compose.ConstraintLayout. Dovrai aggiungere una dipendenza a
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
. (I87adc)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)
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)
Versione 1.0.0-alpha11
28 gennaio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-alpha11
e androidx.compose.foundation:foundation-layout:1.0.0-alpha11
. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche alle API
Ritira lo scorrimento non sospesoPer, rimuovi lo scorrimento dei dati non sospesi
Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere per completare lo scorrimento. Stiamo ritirando e/o rimuovendo il le versioni senza sospensione di queste funzioni nell'ambito di questa transizione. (Ie9ced)
Ritira smoothscrollBy senza sospensione Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere per completare lo scorrimento. Stiamo ritirando le versioni senza sospensione di queste funzioni nell'ambito di questa transizione. (I12880)
Il parametro della descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione dei servizi di accessibilità (I2ac4c)
BasicTextField ha ricevuto un nuovo parametro chiamato "decorationBox". Consente di aggiungere elementi decorativi come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area degli hit target di quest'ultimo. (I16996)
Il parametro canTrascina è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)
L'elemento animatoFloat.fling che accetta FlingConfig è stato rimosso. Usa la sospensione Animatable.animateDecay. (I4659b, b/177457083)
data class
rimosso dai seguenti corsi:- Contenuti di testo in linea
- Elenco impostazioni internazionali
- (I605c7)
Ora è possibile creare elementi cliccabili, attivabili e selezionabili al di fuori della composizione (I0a130, b/172938345, b/175294473)
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 possiamo comporre/misurare/disegnare solo elementi visibili. Per evitare che gli utenti progrediscano in maniera poco efficiente, abbiamo deciso di ritirare la soluzione Scorribile e Scorribile per 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)
eitemsIndexed(items: List)
sono ora funzioni di estensione, quindi devi importarle manualmente quando vengono utilizzate. Sovraccarico di nuove estensioni per gli array: items(items: Array) e itemsIndexed(Array) (I803fc, b/175562574)L'elemento AbsoluteArrangement deprecato è stato rimosso. (Iffa96, b/177641870)
Il parametro propagaMinConstraints è stato aggiunto a Box per specificare se i vincoli minimi in entrata devono essere passati o meno ai contenuti di Box. Il valore predefinito è false. (I0125b, b/152613457)
Correzioni di bug
- onCommit, onDispose e onActive sono stati deprecati in favore delle API SideEffect e DisposableEffect (If760e)
- WithConstraints è stato rielaborato come BoxWithConstraints e spostato in ground.layout. (I9420b, b/173387208)
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 estendeComposeTestRule
e definiscesetContent
, che è stato rimosso daComposeTestRule
. Metodo di fabbricacreateEmptyComposeRule()
aggiunto che restituisce unComposeTestRule
e non avvia un'attività per te. Usa questa opzione se vuoi avviare l'Attività durante il test. ad es. conActivityScenario.launch
(I9d782, b/174472899)animateAsState è ora animatoFooAsState, dove Foo è tipo di variabile animata. ad es. Float, Dp, Offset e così via (Ie7e25)
Ora Density è l'ambito del ricevitore per le interfacce Arrangement. (I18aad)
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)
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)
ricordi-osservatore sostituisce ComposizioneLifecycleObserver e IntroductionLifecycleObserver è deprecato.
RememberObserver
sostituisceCompositionLifecycleObserver
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 composizioneonRemembered
è chiamato per ogni riferimento doveonEnter
viene chiamato una sola volta.onEnter
è stato chiamato più volte se l'oggetto è stato utilizzato in sottocomposizioni, comeWithConstraints
eScaffold
, mentre il singoloonEnter
garanzia di chiamata inaffidabile ed è stata rimossa perRememberObserver
.RememberObserver
aggiungeonAbandoned
che viene chiamato seRememberObserver
istanza restituita dal callback passato aremember
ma non è stato ricordato nello stato della composizione e, di conseguenza, non verranno mai richiamationRemembered
. 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 diRememberObserver
che segue il singolo il suggerimento di riferimento riportato sopra è il monitoraggio di una risorsa esternaonForgotten
eonAbandoned
indicano ciascuno che non è più necessaria. Se l'oggetto sta monitorando il lavoro avviato o risorse allocate inonRemembered
,onAbandoned
può essere ignorato perché non verrà chiamato seonRemembered
è chiamato. (I02c36)TransformedText.transformedText rinominato in TransformedText.text
- TransformedText non è più una classe di dati (Ie672a)
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)
Rimossi metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)
Metodi di coordinate globali deprecati e realizzati nuovi metodi per le coordinate basate su finestre. (Iee284)
Utilizza ImeAction.None anziché ImeAction.NoAction
- Utilizza ImeAction.Default anziché ImeAction.Unspecified (Ie1bcc)
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)
VisualTransformation è stato modificato in un'interfaccia funzionale (I3bba4)
Utilizzare TestCoroutineDispatcher per i test (I532b6)
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)
TextInputService.onStateUpdated rinominato in updateState (Id4853)
Rimuovi displaySize perché dovrebbe essere evitato. Di solito è meglio usare onRoot() o almeno una dimensione della finestra. (I62db4)
Versione 1.0.0-alpha10
13 gennaio 2021
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-alpha10
e androidx.compose.foundation:foundation-layout:1.0.0-alpha10
. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
- 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).
- 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)
- Velocità modificata per avere parti componenti e calcoli operazioni aziendali. (Ib0447)
- @ExperimentalTesting è stato rinominato @ExperimentalTestApi coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)
- Aggiunto metodo sperimentale persistente persistente per LazyColumn/LazyRow (I0a81d)
- Ranamed Color.useOrElse() a Color.takeOrElse() (Ifdcf5)
- TestUiDispatcher obsoleto. Utilizza Dispatchers.Main (Ic171f, b/175385255)
- 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)
- FlowRow e FlowColumn sono stati deprecati. Utilizza un layout personalizzato. (I09027)
- 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)
fun Dp.isFinite()
modificato inval Dp.isFinite
(I50e00)- Constraints#customerBy è stato rinominato isSatisfiedBy. (I9cf5c)
- È stato aggiunto isSpecified, isUnspecified e useOrElse per classi in linea con una costante non specificata. (I93f7b, b/174310811)
Correzioni di bug
- 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) - Aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
animate()
è ora sostituito conanimateAsState()
, che restituisceState<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)
- Ora è possibile accedere all'evento chiave nativo tramite keyEvent.nativeKeyEvent (I87c57, b/173086397).
Versione 1.0.0-alpha09
16 dicembre 2020
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-alpha09
e androidx.compose.foundation:foundation-layout:1.0.0-alpha09
. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
Aggiungi interfaccia scorrevole
Ciò consente di considerare scrollState e LazyListState come un'istanza comune consentendo l'implementazione dello scorrimento personalizzato in entrambi i tipi.
Questo comando sposta anche smoothscrollBy in una funzione di estensione su Browseable, sfruttare questa funzionalità. (I2153b)
LazyVerticalGrid è stata aggiunta. (I17267, b/162213211)
Ritirare LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Usa LazyColumn e LazyRow (I5b48c)
Per sospendere le API di input del puntatore, Da HandlePointerInputScope ad AwaitPointerEventScope e handlePointerInput() ad awaitPointerEventScope(). (Idf0a1, b/175142755)
È stato aggiunto LazyListState.layoutInfo che mostra l'elenco delle dimensioni e degli offset degli elementi attualmente visibili (If8678, b/170472532)
Rimossa l'annotazione ExperimentalPointerInput (Ia7a24)
È stato aggiunto il supporto InteractionState per TextFields. (I61d91)
Aggiungi il parametro reverseLayout per LazyColumn/Row. quando
true
elementi verranno composti dal basso verso l'alto eLazyListState.firstVisibleItemIndex == 0
significa che il primo elemento si trova in basso. (I552ae, b/166589935)È stato aggiunto il parametro verticalArrangement per LazyColumn. È stato aggiunto il parametro HorizontalArrangement per LazyRow. La disposizione ci consente di aggiungere uno spazio tra gli elementi e di specificare la disposizione degli articoli quando non ne abbiamo abbastanza per riempire l'intera dimensione minima. (Icf79a, b/170394300)
detectMultitouchGesti ora usa un solo callback con combinazione centroide, panoramica, zoom e rotazione. (Ie6e1c).
Spostamento di ContentDrawScope nell'interfaccia utente modulo con DrawScope. (Iee043, b/173832789)
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)
Modifier.focusObserver è deprecato. Usa invece Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
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)
Introdotto diverse nuove funzioni in SelectionRegistrar e ha anche cambiato il nome di onPositionChange in notificationPositionChange. (Ifbaf7)
AndroidProprietario reso interno (Ibcad0, b/170296980)
Nuova funzione infiniteRipetibile per la creazione di una InfiniteRipetiableSpec (I668e5)
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 ininsertTopDown()
.È stato aggiunto un nuovo metodo,
insertBottomUp()
.L'applicatore inserisce nodi nell'albero che sta modificando utilizzando
insertTopDown()
oinsertBottomUp()
, a seconda che offre prestazioni migliori.Alcuni alberi, come
LayoutNode
eView
, 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 modificaApplier
esegue l'override diinsertBottomUp()
per creare un albero dal basso verso l'altoinsertTopDown()
per costruire l'albero dall'alto verso il basso. (Icbdc2)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)
È stata aggiunta la funzione di fabbrica buildAnnotatedString nell'ordine per creare una stringa AnnotatedString. Stringa annotata deprecata la funzione builder. (Idfe0b)
Versione 1.0.0-alpha08
2 dicembre 2020
Vengono rilasciate le versioni androidx.compose.foundation:foundation:1.0.0-alpha08
e androidx.compose.foundation:foundation-layout:1.0.0-alpha08
. La versione 1.0.0-alpha08 contiene questi commit.
Modifiche alle API
- Parametro
maxLines
rimosso daCoreTextField
. Se vuoi limitare l'altezza del campo di testo in base al numero di righe, utilizza inveceBasicTextField
. (Iec002) - Il metodo
await*TouchSlop()
è stato modificato in non rilevano il puntatore verso il basso e li hanno rinominati in*OrCancellation
. Inoltre, è stata rimossa la necessità ParametroorientationLock
. (Ie96e1). - È 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 incontent
, in base al controllo del lint e alle indicazioni. (Iec48e) foundation:foundation-text
API spostate infoundation:foundation
. La struttura del pacchetto è rimasta invariata (Id3eb2)- Nuovo rilevatore di gesti multi-touch, che include: helper per il rilevamento di rotazione, zoom e panoramica. (Ic459d)
- 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 del comitato API. typealias di VectorAssetBuilder aggiunto a link a ImageVector.Builder per compatibilità. (Icfdc8)
- ImageAsset rinominati e metodi correlati a ImageBitmap. (Ia2d99)
- Proprietà semantiche di base spostate nella UI (I6f05c)
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).
È stato aggiunto un parametro singeLine a BasicTextField, TextField e OutliningTextField. Imposta questo parametro su true per rendere il campo di testo un'unica riga scorrevole orizzontalmente. (I57004, b/168187755)
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)
È 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)
Le API deprecate in precedenza sono state rimosse: Border è stato rimosso, utilizza BorderStroke. Modifier.drawBorder è stato rimosso. Usa invece Modifier. border. Modifier.gravity è stato rimosso, usa Modifier.align al suo posto. L'elenco filtri è stato rimosso, utilizza Box (I32c2b, b/172470874)
AbsoluteArrangement è stato rinominato Arrangement.Absolute. (If26f2).
Correzioni di bug
- 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 API Council. (I0bd29, b/173834241)
<T>
è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)- 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)
- 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 WindowManager.isWindowFocused per verificare se la finestra host è attiva e un WindowFocusObserver che fornisce un callback onWindowFocusChanged. (I53b2a, b/170932874)
- È stato aggiunto il parametro resetInput a TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- API TextFieldValue aggiornata
- impostato TextFieldValue.composition in sola lettura
- viene generata un'eccezione rimossa per l'intervallo di selezione non valido (I4a675, b/172239032)
- 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) - Aggiunto il wrapper Android Typeface. Puoi caricare un'immagine
Carattere tipografico tramite la funzione
typeface
, ad esempiotypeface(Typeface.DEFAULT)
. Inoltre,typefaceFromFontFamily()
è stato rinominato intypeface()
(I52ab7) - È stato aggiunto il controllo lint per verificare che le fabbriche di modifica utilizzino
androidx.compose.ui.composed {}
internamente anziché essere contrassegnato come@Composable
. (I3c4bc) - È 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)
- L'argomento semantico aggregateAllDescendants è stato rinominato in joinDescendants. (Ib6250)
- Il controllo del tempo nei test (TestAnimationClock e relativi utilizzi) è ora in fase sperimentale (I6ef86, b/171378521)
- Rimuovi il vecchio modulo di test dell'ui e i relativi stub (I3a7cb)
- TextUnit.Inherit è rinominata TextUnit.Unspecified in modo coerente con altre unità. (Ifce19)
- L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
foundation:foundation-text
modulo è stato unito infoundation:foundation
(Idac0f)- Ritira luogo(Offset) e placeParent(Offset). Usa invece gli overload con offset int (I4c5e7)
id
è stato rinominato inlayoutId
perLayoutIdParentData
.Measurable.id
è stato rinominato inMeasurable.layoutId
. (Iadbcb, b/172449643)
Versione 1.0.0-alpha07
11 novembre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha07
, androidx.compose.foundation:foundation-layout:1.0.0-alpha07
e androidx.compose.foundation:foundation-text:1.0.0-alpha07
. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche alle API
- In modo simile a
Modifier.fillMaxSize[Width|Height]
, ora supportiamo le frazioni inModifier.fillParentMaxSize[Width|Height]
nell'ambito diLazyColumn/Row
(I797e2, b/166586426) KeyboardOptions.toImeOptions
rimosso dall'API pubblica. (Ic2e45).- Gli elementi di base AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono stati deprecati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, devi invece creare un tuo sistema di progettazione specifico per la tematizzazione, che possono essere utilizzati nei tuoi componenti. (I74acc, b/172067770)
- 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)
- MaxLines aggiunti ai campi di testo (Ib2a5b)
- Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
- Aggiunta KeyboardOptions per l'utilizzo nei campi di testo (I9ca32)
- Aggiunge BasicText come API senza progettazione per il testo, parallelamente a BasicTextField. (I28268)
- L'annotazione ExperimentalLazyDsl è stata rimossa. Ora LazyColumn/LazyRow può essere utilizzata senza aggiungere @OptIn (Idab7a, b/166584730)
- Il campo BaseTextField è stato deprecato. Utilizza invece BasicTextField. (I896eb)
- BasicTextField è stato aggiunto in sostituzione sia di CoreTextField che di BaseTextField (Id4cea)
- Rimuovi LazyColumnItems/LazyRowItems deprecati (I1d8a8)
- I componenti componibili ritirati per il dimensionamento con misurazioni intrinseche sono stati rimossi. (I18537, b/171811496)
- relativePaddingFrom è stato rinominato paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare le distanze dai limiti di layout alle basi del testo. (I0440a, b/170633813)
- Il parametro matchHeightConstraintsFirst è stato aggiunto al modificatore di proporzioni, che può essere utilizzato per specificare i vincoli relativi alle dimensioni e all'altezza prima di provare i corrispondenti della larghezza. (Ie7c43, b/155290593)
- I DpConstraints deprecati sono stati rimossi. (I87884, b/171702471)
Correzioni di bug
- 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)
- CaptureToBitmap spostato in captureToImage. (I86385)
- Contrassegna CoreText come @InternalTextApi. Usa invece BasicText. (I6aaeb)
- Rinomina KeyboardOptions come ImeOptions (I82f36)
- KeyboardType e ImeAction spostate in KeyboardOptions (I910ce)
- CoreTextField è stato contrassegnato come @InternalTextApi. Utilizza invece BasicTextField (Ie2469)
- L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora è possibile utilizzare SubcomposeLayout senza aggiungere @OptIn (I708ad)
- Introduci il modulo ui-test-junit4 (Ib91f8)
- API Icona aggiornata per acquisire colori.Non specificato come possibile colore di tinta che disegnerà risorsa o pittore senza ColorFilter. In precedenza tenta di ignorare la colorazione con Color.Unspecified finirebbe per ottenere un colore trasparente senza eseguire alcuna visualizzazione. (I049e2, b/171624632)
- 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)
- androidx.ui.test spostato in androidx.compose.ui.test (I9ffdb)
- FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
- SelectContainer è stato aggiunto senza il callback (Ibfadb)
- Aggiungi test per SelectionHandle Posizioni in SelectionContainer. (Ie93db)
- Aggiunta l'opzione IME di correzione automatica della tastiera (I57b8d)
Versione 1.0.0-alpha06
28 ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha06
, androidx.compose.foundation:foundation-layout:1.0.0-alpha06
e androidx.compose.foundation:foundation-text:1.0.0-alpha06
. La versione 1.0.0-alpha06 contiene questi commit.
Modifiche alle API
- L'elemento androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non desideri utilizzare la libreria Material, puoi anche utilizzare il componente Immagine / Modifier.paint() con un Painter. (I9f622)
- Interazione aggiunta a Modifier.scrollable, ScorriableColumn e LazyColumnFor (I81566, b/169509805)
- lineByBaseline è stato aggiunto a RowScope, mentre allineatoWithSiblings è stato rinominato allineatoBy (I06503, b/170628732)
- Box è stato trasformato in una funzione in linea. (Ibce0c, b/155056091)
- MaxLines aggiunto a CoreTextField (Ibee58, b/143687793)
- Softwrap aggiunto a CoreTextField. (I21a4b)
Correzioni di bug
- Ritira VectorPainter in di learnVectorPainter per migliorare indica che l'API componibile internamente utilizza il comando "remember" per rendere persistenti i dati composizioni. (Ifda43).
- Abilita le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3).
- Aggiunta l'opzione della tastiera a riga singola a CoreTextField (I72e6d)
- 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)
- Aggiungi la possibilità di specificare le informazioni del controllo nel modificatore composto (Idee08, b/163494569)
- Aggiunta l'opzione IMEI per le lettere maiuscole (I8ac38)
- Correggi la posizione del punto di manipolazione Rtl. (I6e1e0).
- Modifica che interrompe la modifica: è stato rimosso il valore restituito da PointerInputFilter.onPointerEvent(...) dato che 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 dei PointerEvents trasmessi. (I6acd0)
- Aggiunta l'opzione SelectAll al menu di selezione (Ief02b)
Versione 1.0.0-alpha05
14 ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
e androidx.compose.foundation:foundation-text:1.0.0-alpha05
. La versione 1.0.0-alpha05 contiene questi commit.
Modifiche alle API
- CoreTextField ora supporta la funzionalità del cursore (Id23aa)
Ritira le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando
.current
nella proprietà Ambient, come in qualsiasi altro ambiente. Questa modifica è stata apportata per garantire la coerenza e evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà Ambient per descriverne meglio lo scopo come segue:- ContentColorAmbient -> Colore contenuti ambientali
- Stile di testo Ambient -> Stile di testo ambientale
- IndicationAmbient -> Indicatore Ambient
- Enfasi Ambient -> Livelli di Emphasis Ambient
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Correzioni di bug
- 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)
- Sono state aggiunte le azioni di accessibilità Copia/Incolla/Taglia (I6db4f)
- 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)
- 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)
- Aggiunta del modulo Paging Compose e dell'integrazione di paging (Ib85da)
- Modificare LazyListScope per ricevere valori nulli (I1765b)
- OnPositionedModifier è stato rinominato OnGloballyPositionedModifier mentre onPositioned() è il nuovo nome onGloballyPositioned(). (I587e8, b/169083903)
- Campioni aggiunti per LazyColumn/Row (Idc16d)
- Correzione dei metodi itemsIndexed per consentire emptyList (I06647)
- Aggiungi un DSL per specificare le informazioni del controllo (Ic9a22)
- Sposta Pressione prolungata nel testo. (Iff2bc).
- Disattiva la selezione nel testo e una demo. (Ie7e97).
- Supporta la conversione da AnnotatedString a SpannableString per l'accessibilità. (Ief907)
PointerInputFilter.onPointerInput(...)
rimosso. Al suo posto dovrebbe essere utilizzata l'appPointerInputFilter.onPointerEvent(...)
. (I6f04a)
Versione 1.0.0-alpha04
1° ottobre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
e androidx.compose.foundation:foundation-text:1.0.0-alpha04
. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
- Stack è stato rinominato Box. L'elemento Foundation.Box esistente in precedenza verrà deprecato e sostituito dal nuovo Box in write.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).
- Aggiungi una nuova classe LazyListState. Ciò consente di osservare e controllare la posizione di scorrimento Componenti LazyRow e LazyColumn. Le istanze possono essere create utilizzando ricordareLazyListState() e passare al parametro di stato del di strumento di authoring. Attualmente, il primo elemento visibile e gli offset possono essere osservata in questa versione iniziale. (Ic7cb7, b/159307669)
- La posizione lazy elenco e l'offset di scorrimento sono ora salvati ripristinato nella ricreazione dell'attività (Ie045f, b/166589058)
- Aggiungi l'azione semantica del clic lungo (I6281b, b/156468846)
- È stata aggiunta l'utilità MutatorSilentx per mantenere un singolo mutatore di stato condiviso nel tempo e annulla per priorità i mutatori in conflitto (I3f975)
- Annotated rootAnimationClock Fabbrica, transizionisEnabled, blinkingCursorEnabled e textInputServiceFA con @VisibileForTesting, imposta l'API interna e nascondi il file kdoc (I554eb, b/168308412)
- Rimosso il parametro inlineContent dal testo con input String. Non verrà utilizzato perché inlineContent deve funzionare con AnnotatedString. (Ief403)
- Le API di disposizione personalizzate deprecate sono state rimosse. (Ic576d, b/168297922, b/168297923)
- Il parametro
unbounded
è stato aggiunto ai modificatori wrapContentSize, in modo da poter misurare l'elemento di layout con vincoli massimi infiniti. (I77951, b/158559319) - Abbiamo impedito le importazioni statiche dei contenuti degli ambiti di layout (ad es.alignWithSiblings in RowScope). Al suo posto, è necessario utilizzare l'alternativa relativa all'ambito esplicito:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
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)
- Ottimizzazioni delle prestazioni per LazyColumnFor/LazyRowFor scorrendo per evitare ricomposizioni non necessarie a ogni scorrimento (I64f65, b/168293643, b/167972292, b/165028371)
- È stato corretto l'arresto anomalo in LazyColumnFor/LazyRowFor dopo lo scorrimento e la modifica degli elementi. Inoltre, è stato implementato lo scorrimento automatico verso l'alto quando l'elemento precedentemente visibile è stato rimosso, in modo da non visualizzare più spazi vuoti alla fine (I220ab, b/161480164, b/167855468)
- Non è più consentito nidificare i container scorrevoli nella stessa direzione di container come scrollableContainer e LazyColumnFor. Non è mai stato supportato e stava spezzando l'avventura e la pigrizia nella composizione degli elementi di LazyColumnFor (I6e101)
- 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)
- aggiungi AccessibilityscrollState alle proprietà semantiche. (Ifeda9)
- Rendi TextRange in linea per evitare la creazione di oggetti. (ID034b)
- ParagraphConstraints è stato rimosso. Ora la larghezza è passata direttamente al paragrafo. (Ica712).
Versione 1.0.0-alpha03
16 settembre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
e androidx.compose.foundation:foundation-text:1.0.0-alpha03
. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- InnerPadding è stato rinominato PaddingValues. (I195f1, b/167389171)
- Gli utilizzi della gravità sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
- All'elenco filtri è stato aggiunto un parametro di allineamento che consente di specificare l'allineamento predefinito per tutti gli elementi secondari dell'elenco filtri. (Ie80ca, b/164085265)
Correzioni di bug
- I DpConstraints e le API che lo utilizzano sono stati deprecati. (I90cdb, b/167389835)
- I parametri
minWidth
emaxWidth
diwidthIn
sono stati rinominati inmin
emax
. Analogamente perpreferredWidthIn
,heightIn
,preferredHeightIn
. (I0e5e1, b/167389544) - Aggiunti onNode e altri metodi globali a ComposeTestRule come quelle globali attuali saranno ritirate. (IEae 36).
- Calcoli di dimensioni e posizione fissi in GeScope, ovvero causato, tra gli altri, la generazione di gesti di scorrimento non validi (Iaf358, b/166589947)
createAndroidComposeRule
eAndroidInputDispatcher
spostati da Daandroidx.ui.test.android
aandroidx.ui.test
(Idef08, b/164060572)
Versione 1.0.0-alpha02
2 settembre 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha02
, androidx.compose.foundation:foundation-layout:1.0.0-alpha02
e androidx.compose.foundation:foundation-text:1.0.0-alpha02
. La versione 1.0.0-alpha02 contiene questi commit.
Correzioni di bug
- TestUiDispatcher è contrassegnato come sperimentale (Iae99d, b/161247083)
È stato aggiunto
ManualFrameClock.hasAwaiters
per controllare se c'è qualcosa in attesa di un frame da quell'orologio;runWithManualClock
come sostituzione perrunBlocking
durante l'esecuzione di test che richiedono un ManualFrameClock;TestUiDispatcher.Main
che consente un facile accesso al committente principale dell'UI nei tuoi test.Ad esempio:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Versione 1.0.0-alpha01
26 agosto 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
e androidx.compose.foundation:foundation-text: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
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
e androidx.compose.foundation:foundation-text:0.1.0-dev17
. La versione 0.1.0-dev17 contiene questi commit.
Modifiche alle API
- La disposizione spazidBy è stata aggiunta per le righe e le colonne, per consentire il posizionamento di elementi secondari del layout con una spaziatura fissa. È stato aggiunto anche l'arrangiamento allineato, per consentire il posizionamento degli elementi secondari del layout uno accanto all'altro e allineati nella riga/colonna in base a un allineamento. I metodi Arrangement.Vertical#arrange e Arrangement.Horizontal#arrange precedenti sono stati ritirati e la scrittura di Arrangement personalizzati non sarà supportata in futuro. (I6733d, b/161985975)
- L'offset è diventato una classe in linea (Iaec70)
- 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)
- Verticalscroller e Horizontalscroller sono stati rimossi. Usa invece la colonna Scorribile/Riga. Modifier.drawBackground è stato rimosso. Utilizza Modifier.background (I73b0d, b/163019183)
- Rimuovi i modificatori FillMax* contrassegnati come deprecati da LazyItemScope, in quanto rendono più difficile aggiungerli correttamente per gli elementi che non sono figli diretti di LazyColumnFor (Ifa78d)
- aggiunta dell'implementazione LazyColumn/LazyRow come DSL (I93cc6)
- I vincoli sono ora una classe in linea (I88736)
- È stata aggiunta la possibilità di ridimensionare un layout a una frazione dello spazio disponibile, utilizzando i modificatori FillMaxLarghezza, FillMaxHeight e FillMaxSize. (I945bb, b/161562591)
Correzioni di bug
- È stato aggiunto un parametro di modifica a SelectionContainer (I4aada, b/161487952)
- È stato aggiunto il criterio diMergePolicy lambda 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)
PlacementScope.placeAbsolute()
è stato rinominato inPlacementScope.place()
e laPlacementScope.place()
precedente è stata rinominataPlacementScope.placeRelative()
. Di conseguenza, il metodoPlacementScope.place()
non rispecchierà più automaticamente la posizione in contesti con scrittura da destra a sinistra. Se vuoi, puoi usare il criterioPlacementScope.placeRelative()
. (I873ac, b/162916675)- Rimosso il componente FilledTextField obsoleto. Utilizza TextField invece per ottenere l'implementazione di Material Design del campo Testo compilato. (I5e889).
- È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e è stata rimossa la spaziatura interna interna da CircularProgressIndicator. Aggiunto un nuovo elemento ProgressIndicatorConstants.DefaultProgressAnimationSpec che può essere utilizzato come AnimationSpec predefinito quando si anima l'avanzamento tra i valori (If38b5, b/161809914, b/161804677)
- Il componibile
state { ... }
è ora deprecato e sostituito con inviti espliciti aremember { mutableStateOf(...) }
per maggiore chiarezza. Ciò riduce la superficie complessiva dell'API e il numero di concetti per lo stato gestione e corrisponde al patternby 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)
- Rimossi onChildPositioned e OnChildPositionedModifier. Gli sviluppatori devono usare onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766)
- IntSize ora è una classe in linea (I2bf42)
- Tieni premuto a lungo l'area vuota per modificare. (Ib1e5b).
- Nascondi FloatingToolbar dopo aver toccato il testo. (If4525).
- Nascondi FloatingToolbar durante l'aggiornamento della selezione. (I8444c)
- Deseleziona quando sfoca. (I781a2)
Versione 0.1.0-dev16
5 agosto 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:0.1.0-dev16
, androidx.compose.foundation:foundation-layout:0.1.0-dev16
e androidx.compose.foundation:foundation-text:0.1.0-dev16
. La versione 0.1.0-dev16 contiene questi commit.
Modifiche alle API
- 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)
- Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
- Aggiunta LazyColumnForIndexed/LazyRowForIndexed: versioni di LazyColumnFor/LazyRowFor che forniscono sia l'indice sia l'elemento in itemCallback. È utile quando, oltre a un elemento corrente, è necessario conoscere un indice corrente. (I65ff3)
- Modifier.deternimateProgress è stato rinominato Modifier.progressSemantics (I9c0b4)
- LazyColumnItems è stata rinominata LazyColumnFor. LazyRowItems è stata rinominata LazyRowFor (I84f84)
- Aggiungi alcuni segni/annotazioni per motivi legati alle best practice. (I66b20)
- Il pacchetto Fundamentals.shape.corner è stato appiattito a Foundation.share (I46491, b/161887429)
- Parametro di gravità rossassi aggiunto per LazyRowItems/LazyColumnItems. LazyRowItems/LazyColumnItems ora supportano il comportamento dei contenuti a capo. (Ib39fc).
- ZoomableState è stato rinominato ZoomableController. È stato aggiunto il supporto per le curve personalizzate per smoothScale. Sono state aggiunte le funzionalità
enabled
eonZoomStarted
(If8b8f) - Material FilledTextField è stato rinominato TextField e TextField di base è stato rinominato BaseTextField per semplificare l'individuazione e l'utilizzo dell'API desiderata più semplice (Ia6242, b/155482676)
- L'elenco di AdapterList precedentemente ritirato è stato rimosso. Utilizza LazyColumnItems (I12b9b)
- Modifier.drawBackground è stato rinominato in Modifier.background (I13677)
- Il precedente DSL ConstraintLayout è stato rimosso. ConstraintSet2 è stato rinominato in ConstraintSet. (If58d1, b/162450908)
- Sono stati aggiunti Modifier.AsoluteOffset() e Modifier.AsoluteOffsetPx(). A differenza dei modificatori di offset, i modificatori di offset assoluto non eseguono il mirroring automatico nel contesto da destra a sinistra (I3aa21).
Row
eColumn
ora sono funzioni in linea significativamente per ridurre i costi di utilizzo. (I75c10)
Correzioni di bug
- Correzione di correzioni API generiche (I077bc)
- .
- Rimuovi l'interfaccia OffsetBase inutilizzata
- Allinea le classi Offset e IntOffset per avere una piattaforma API coerente
- Rinomina IntOffset.Origin in IntOffset.Zero coerente con l'API Offset
- Metodo nativeCanvas spostato da Canvas interfaccia per aiutare i consumatori a creare delle proprie istanze Canvas
- È 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
- Le enumerazioni ClipOp sono state rinominate in Pascal Case
- Le enum di FiltroQualità sono state rinominate in richiesta Pascal
- Le enumerazioni StrokeJoin sono state rinominate in richiesta Pascal
- Le enumerazioni PointMode sono state rinominate in caso Pascal
- Le enumerazioni PaintingStyle rinominate in Pascal Case
- Le enum PathFillType sono state rinominate in maiuscole e minuscole
- Le enumerazioni StrokeCap sono state rinominate in caso Pascal
- Implementazione DrawCache aggiornata in modo che non sia più utilizza parametri lateinit
- DrawScope aggiornato per non utilizzare più la delega lazy per i parametri interni FillPaint e pulsePaint
- Immagine componibile aggiornata per evitare l'uso di Box a un costo minore
- Aggiornata la classe Outline per avere annotazioni @Immutable
- PathNode aggiornato dispone di annotazioni @Immutable per l'istruzione di ogni percorso
- Sottocomposizione Vector aggiornata per rimuovere i file ridondanti controlli condizionali di uguaglianza mentre gestisce già la scrittura loro
- Metodi costruttore companion Rect deprecati a favore di costruttori di funzioni
- Classi e costruttori di funzioni di Pennello aggiornati con API @Immutable e @Stable
- Enum VertexMode aggiornato in PascalCase
- Metodo selectPaint DrawScope aggiornato in modo condizionale i parametri del tratto sul dipinto, se presenti modificato
- Dimensioni aggiornate per aggiungere l'API di destrutturazione, rinomina Da UnspecifiedSize a Non specificato e metodi inutilizzati rimossi
È stato aggiunto il MonotonicFrameAnimationClock che consente di utilizzare un oggetto MonotonicFrameClock come AnimationClockObservable per colmare il divario tra i nuovi orologi basati su coroutine e le API che utilizzano ancora il vecchio orologi basati su callback.
L'equivalente MonotonicFrameClock di ManualAnimationClock è ora ManualFrameClock. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
rimosso. Utilizza le funzionalità diSemanticsNodeInteraction.performGesture
in alternativa. (ID9b62)SemanticsNodeInteraction.getBoundsInRoot()
rinominato inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)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)
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)SemanticsMatcher
isFocused()
eisNotFocused()
aggiunti. (I0b760)RemeasurementModifier è stato aggiunto. Consente agli utenti di rimisurare il layout in modo sincrono. In generale, non è mai necessario perché la nuova misurazione/relayout avviene automaticamente, ma la utilizziamo all'interno di LazyColumnItems durante lo scorrimento. (I5f331, b/160791058)
isSystemInDarkTheme ora considera sempre l'impostazione del tema scuro a livello di sistema e ignora lo stato di risparmio energetico prima della Q, in base alle ultime indicazioni. (I0c10c)
Il valore OnChildPositioned è stato ritirato. Utilizza OnPositioned sul figlio. (I87f95, b/162109766)
È stato rinominato AndroidComposeTestRule per creareAndroidComposeRule. (I70aaf)
Aggiungi un'azione di accessibilità per ottenere TextLayoutResult (I9d6e6)
Versione 0.1.0-dev15
22 luglio 2020
Vengono rilasciate le funzionalità androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
e androidx.compose.foundation:foundation-text:0.1.0-dev15
. La versione 0.1.0-dev15 contiene questi commit.
Per utilizzare la versione 0.1.0-dev15
di Compose, dovrai:
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
- Analogamente al nuovo parametro in ScorribileColumn/scrollableRow LazyColumnItems/LazyRowItems ora include anche il parametro contentPadding che consente di aggiungere una spaziatura interna per i contenuti dopo che sono stati tagliati, il che non è possibile tramite solo un parametro modificatore. Consente inoltre di aggiungere una spaziatura solo prima del primo elemento o dopo l'ultimo elemento. (Ibc24e)
- 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)
- Le API Modifier.draggable e Modifier.scrollable sono state rielaborate. DragDirection è stato rimosso a favore dell'orientamento. Lo stato richiesto per lo scorrimento è stato semplificato. ScorriableState è stato rinominato ScorribileController (Iab63c, b/149460415)
- 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) - Le dimensioni degli angoli utilizzate da RoundedCornerShape e CutCornerShape ora possono essere superiori al 50% (Id2340, b/160400213)
- Modificata ContentScale predefinita parametro per il parametro Image componibile da Dentro a Fit. Questa operazione è stata eseguita nell'ordine indicato per avere un comportamento che consenta di fare lo scale up Pittore se le dimensioni del layout sono superiori a la dimensione intrinseca del pittore, mantenendo le proporzioni. Questo un comportamento più adeguato alle aspettative per fornire dimensioni fisse all'immagine pur non influenzando il comportamento predefinito se si utilizza solo la dimensione intrinseca calcolare la dimensione del componibile. (I40ae3, b/159838006)
- Usa AnimationSpec anziché AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica dell'animazione statica. - Miglioramento della transizione DSL rimuovendo il requisito lambda per creando AnimationSpecs come tween, spring. Prendono e i parametri del costruttore. - Miglioramento della facilità d'uso generale dell'apertura di AnimationSpec anziché fare affidamento sui builder -Modifica la durata e il ritardo dei fotogrammi chiave e Questo elimina i cast di tipi non necessari e il sovraccarico dei metodi (ad che supportano sia Long che Int). (Ica0b4)
- Il pulsante Clickable è stato rimosso. Utilizza Modifier.clickable (I84bdf)
- È stato aggiunto LazyRowItems - Analogico a scorrimento orizzontale di LazyColumnItems (Ibbcf7)
- Sono state introdotte le API di animazione stateless di basso livello. Queste API (I63bf7)
- 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 sostituito l'utilizzo di IntPx con Int. IntPxPosition sostituita con IntOffset. IntPxSize sostituito con IntSize. (Ib7b44).
- Rimozione di androidx.ui.foundation.shape.RettangoloForma; utilizza androidx.ui.graphics.rettangoloShape (I94939, b/154507984)
- 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)
- Aggiunto Modifier.zoomable per la funzionalità Pizzica per eseguire lo zoom (Id5d63)
- Il componente attivabile/disattivabile è stato deprecato. Usa Modifier.toggleable (I35220, b/157642842)
- MutuallyUniqueSetItem è stato deprecato. Usa invece Modifier.selectable. (I02b47, b/157642842)
- TestTag è ora deprecato. Utilizza invece Modifier.testTag. (If5110, b/157173105)
- Aggiunge il parametro fontWeight a Text, che non è stato aggiunto per errore in precedenza (I56937)
- 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)
- Verticalscroller ora fornisce Colonna pronta all'uso. Horizontalscroller ora fornisce Row pronta all'uso. (Ieca5d, b/157020670)
- 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)
- Modifier.indication è stato aggiunto al pacchetto di base. Utilizzalo per mostrare indicazioni di pressione/trascinamento/altre indicazioni sugli elementi interattivi personalizzati (I8425f, b/155287131)
- Verticalscroller e Horizontalscroller ora supportano lo scorrimento invertito è isReversed impostato su ScorrierPosition (I953bd)
- Supporto dell'aggiunta di elementi componibili nel layout di testo. (I1373c)
- 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)
- DrawBackground deprecato rimosso API a favore dell'estensione drawBackground API su Modificatore. Refactoring disegno di colore, pennello e vernice per ridurre anche i percorsi del codice come requisito di rimozione per la creazione del modificatore come parte della composizione. (I0343a)
- 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)
- Horizontalscroller e Verticalscroller non ripristinano la posizione di scorrimento utilizzando lo stato dell'istanza salvato. (Ia0fae, b/155075048)
- FocusManagerAmbient viene rimosso. Utilizza FocusModifier.requestFocus per ottenere la messa a fuoco. (Ic4826)
- Il layout della tabella è stato temporaneamente rimosso finché non lo sarà di nuovo disponibile con un'API aggiornata. (ID88a7)
È 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)
ColoredRect è stato rimosso. Casella utente con modificatore di background (I983c7, b/152753731)
Aggiungi la personalizzazione del colore del cursore al campo di testo (I6e33f)
Ora è possibile nascondere/mostrare la tastiera software utilizzando SoftwareKeyboardController fornito da onTextInputStarted callback (I8dc44, b/151860051)
Il valore TextFieldValue utilizzato con TextField ora può sopravvivere ricreazione attività quando viene utilizzato in questo modo:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Aggiunge parametri di uso comune a Text(). Se al momento crei uno stile di testo locale per trasmettere un numero ridotto di questi parametri, ad esempio
Text(style = TextStyle(textAlign = TextAlign.Center))
, ora puoi fornire direttamente i parametri:Text(textAlign = TextAlign.Center)
(I82768)FocusIdentifier di CoreTextField/TextField sostituiti con FocusNode per l'integrazione con il sottosistema Focus. (I7ea48)
Aggiornamento di TextField: in formato orizzontale occuperà tutto lo spazio disponibile concesso (Ib08df, b/154638552)
Aggiunta di InteractionState e Interaction, per semplificare la creazione di componenti che reagiscono alle modifiche dello stato dell'interfaccia utente, come la pressione e il trascinamento (Icfe25, b/152525426)
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)
Aggiornamento dell'API TextField: riuniti i callback onFocus e onBlur in un singolo callback onFocusChange(Boolean) con parametro (I66cd3)
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 (I45f09, b/152842521)
Rimuove ProvideContentColor, invece è sufficiente utilizzare ContentColorAmbient direttamente con
Providers
(Iee942)Aggiunge un parametro di colore al testo, consentendo di eseguire l'override del colore dello stile di testo senza dover unire manualmente lo stile fornito in un tema. (I41a66)
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)
ColoredRect è stato ritirato. Usa invece il criterio
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731)Il sistema di tematizzazione delle forme viene aggiornato in base alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi utilizzate dalla maggior parte dei componenti (Ifb4d1)
Sostituito Modificatore più operatore con funzioni di estensione di fabbrica (I225e4)
L'elemento trascinabile è stato spostato nel modificatore (Id9b16, b/151959544)
Text
spostato nel pacchetto androidx.ui.foundation da androidx.ui.core. (I87ce5)aggiungi il parametro
enabled
a casella di controllo, opzione e attivabile (I41c16)Ripple è ora un Modificatore. Sebbene Clickable non sia ancora stato convertito, l'utilizzo consigliato è
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)È 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.
L'API
Image(Painter)
è stata rinominata inPaintBox(Painter)
È stato creato un vettore componibile che si comporta come Immagine componibile, tranne che con un VectorAsset di un ImageAsset (I9af9a, b/149030271)Immagine creata componibile per gestire dimensioni/layout, oltre a disegnare un dato ImageAsset sullo schermo. Questo componibile supporta anche il disegno di qualsiasi dell'istanza rispettando le sue dimensioni intrinseche oltre a supportare una determinata dimensione o dimensione minima (Ibcc8f)
I pulsanti, FloatingActionButton e Clickable ora hanno un parametro
enabled
separato. Alcuni parametri su Pulsante sono stati rinominati o riordinati. (I54b5a).Immagine rinominata in ImageAsset per distinguere meglio la differenza tra i dati di immagine e i prossimi Immagine componibile utilizzata per partecipare a layout e disegnare contenuti.
È stato creato il metodo di estensione 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)DrawImage componibile rimosso. Utilizza ImagePainter per disegnare un'immagine su un layout esistente, oppure SimpleImage per introdurre un'immagine che occupa spazio (I595e1, b/149827027)
Il componente Stack supporta la direzione da destra a sinistra (Ic9e00)
Sono stati aggiunti Icon, IconButton e IconToggleButton, rimuovendo AppBarIcon. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il touch target corretto. Visualizza gli esempi per informazioni sull'utilizzo e consulta le icone per le icone del materiale fornite che puoi usare direttamente con questi componenti. (I96849)
Il componibile DrawShape è stato rimosso. Usa il modificatore DrawBackground. (I7ceb2)
È 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)
È stato aggiunto il componente scorrevole, che consente la creazione di scorrevoli/elenchi personalizzati (I5fd37)
Lo sfondo è stato rinominato in DrawBackground e viene memorizzato per impostazione predefinita (Ia0bd3)
Aggiungere spaziature interne, bordo, forma e parametro di sfondo a Box (I05027, b/148147281)
Componente Canvas aggiunto. Questo componibile occupa alcune dimensioni (fornite dall'utente) e consente di disegnare utilizzando CanvasScope (I0d622)
rinomina il modificatore
Border
inDrawBorder
(I8ffcc)È stato aggiunto il componente Box per combinare le funzionalità comuni di layout e disegno. (I6e2a7).
Gli strumenti di scorrimento ora mostrano un comportamento fling nativo di Android. (I922af, b/147493715)
Sostituito DrawBorder a favore del Modificatore di confine (Id335a)
Modifier.tag è stato rinominato in Modifier.layoutId per evitare confusione con Modifier.testTag. (I995f0)
Il parametro della percentuale durante la creazione delle linee guida di ConstraintLayout è stato rinominato in frazione. (Ida2db)
Aggiunto il supporto per i margini delle barriere ConstraintLayout. (I47ffe)
È stato corretto il supporto RTL in ConstraintLayout. Sono state aggiunte API RTL senza conoscenza. (I3b1c7).
È stato aggiunto un nuovo DSL per ConstraintLayout. Per ulteriori dettagli, consulta gli esempi. (Icaa9a)
È stata aggiunta l'annotazione @ExperimentalLayout. ConstraintLayout, FlowRow e FlowColumn ora lo contengono per indicare che le loro API stanno per cambiare. (I412a8)
È stato aggiunto
Modifier.padding(InnerPadding)
(I94985, b/157133803)Rimossi i deprecati RowAllinea, ColumnAllinea in Row e Column. (If60d4, b/155858731)
Rimossa l'opzione LayoutTag() deprecata. Usa invece Modifier.tag(). Rimossa la funzione Modifier.matchParent() deprecata. Usa invece Modifier.matchParentSize(). (If8044)
È stato aggiunto il modificatore di layout offsetPx, che può essere utilizzato per definire gli offset (dinamici) in px. (I5af57)
L'elemento componibile allineatoLineOffset è deprecato. Utilizza il modificatore relativePaddingFrom(). CenterAllineamentLine componibile è stato rimosso. (I60107)
Aggiunto il modificatore di layout defaultMinSizeConstraints, che imposta i vincoli di dimensione sul layout con wrapping solo quando i vincoli corrispondenti in entrata non sono specificati (0 per i vincoli minimi e infinito per i vincoli massimi). (I311ea, b/150460257)
Il contenitore è stato rimosso. Utilizza Box invece (Ibbc2b, b/151407926)
Sono stati rimossi i modificatori LayoutLarghezza/Altezza/Dimensione deprecati. (Ib0bc1)
Sono stati aggiunti valori dei parametri predefiniti per il modificatore di offset. (I37f06)
Aggiunto modificatore di spaziatura interna simmetrica. (I39840)
Rimosso il modificatore LayoutAspectRatio deprecato. (I65a74)
Rimossi i modificatori LayoutAllineamenti deprecati. (I10877)
È stato corretto un bug nei modificatori di larghezza e altezza che causava la misurazione del layout aggregato senza vincoli di asse opposto. (I210b8, b/154797971)
Sono stati aggiunti i parametri verticalGravity e HorizontalGravity a Row e Column. (I7dc5a)
I valori wrapContentwidth e wrapContentHeight sono stati aggiornati per prevedere un allineamento verticale o orizzontale anziché un allineamento. Il modificatore di gravità è stato aggiornato per accettare l'allineamento verticale o orizzontale. Riga, colonna e pila sono state aggiornate per supportare gli allineamenti continui personalizzati. (Ib0728)
È possibile creare un'istanza dell'allineamento Allineamento con valori arbitrari. Aggiunti allineamenti 1D. (Ia0c05)
EdgeInsets è stato rinominato InnerPadding. Parametro innerPadding rinominato di Material Buttons in paddding. (I66165)
alignToSiblings ora accetta un modello Measured (Misurato) anziché posizionabile. (I5788d)
Sono stati aggiunti modificatori per il dimensionamento delle misurazioni intrinseche e sono stati ritirati i componenti che servono a questo scopo. (I8295d)
Aggiunto il supporto per la personalizzazione delle dimensioni degli elementi secondari di ConstraintLayout (Idb1a5)
Rimossi i componibili Wrap e Center deprecati. (I29e23).
È stata aggiunta LayoutModifier2, una nuova API per la definizione dei modificatori di layout. LayoutModifier (If32ac) ritirato
I membri RowScope e ColumnScope ora sono accessibili al di fuori di Row e Column. (I3a641)
Il contenitore è stato deprecato. Utilizza Box. (I675ce, b/151407926)
È stato aggiunto il modificatore LayoutOffset per l'offset della posizione del layout (I0b8a3)
Supporto iniziale per Rtl nel layout Compose (Ia5519)
Layout LayoutAllineato aggiornato per non riempire più lo spazio disponibile (I2b14f)
Proporzioni componibili rimosse a favore del modificatore. Elemento eliminato Modificatori componibili e di spaziatura obsoleti di FlexColumn, FlexRow (Iec8a7)
È stato rimosso il modificatore LayoutInflessibile per Riga e Colonna (I0d820)
Implementa i punti di manipolazione di selezione con trascinamento per modificare la selezione per Campo di testo. (I27032)
Implementa LongPressAndTrascina per la selezione dei campi di testo. (I17919)
Correzioni di bug
- 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)
runOnIdleCompose
rinominato inrunOnIdle
(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)
- Rimuove Modifier.ripple precedentemente deprecato. Clickable ora utilizza l'eco come indicazione predefinita (se nella tua applicazione hai impostato un MaterialTheme {}), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'elemento cliccabile e ottenere l'indicazione dell'eco senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'eco, puoi creare manualmente un indicatore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I663b2, b/155375067)
- Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
- Aggiunta dell'API sperimentale LayoutNode (I4f2e9)
- La versione 1 del blocco dell'orientamento di scorrimento è implementato in Compose. (I1ce7a, b/150289741)
- Popup, finestre di dialogo e menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)
- 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)
- Aggiungi AbsoluteArrangement: consente di sistemare i elementi secondari all'interno della riga senza mirroring automatico in RTL (I3a1df)
- L'annotazione @Untracked è stata deprecata. Sostituisci con @ComposableContract(tracked=false) (Id211e)
- 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)
- Aggiungi componibile
viewModel()
che consente di creare o ottenere un ViewModel già creato in modo simile a come funziona in Activity o Fragment (I5fdd1) 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)
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)
Il cursore di TextField ha un'animazione lampeggiante (Id10a7)
I gesti parziali non richiedono più di trasmettere un GestoToken (Id7ae5)
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)
Rinomina AnnotatedString.Builder.addAnnotationString in addStringAnnotation. (I5059e)
È stata aggiornata l'API Linking e aggiunto il supporto dell'allineamento assoluto (che non esegue il mirroring automatico nel contesto Rtl) (I38cd3).
I componenti secondari Layout e LayoutModifier possono essere misurati con una direzione di layout diversa. (Ibd731)
Introduci un rettangolo facoltativo aggiuntivo a ImagePainter per supportare che traccia una sottosezione di ImageAsset sottostante (I0ea9e)
È stato risolto un arresto anomalo in AdapterList durante la rimozione di elementi (Ic64b0, b/153195921)
Abbiamo cambiato la modalità di misurazione del primo layout che inserisci nel blocco activity.setContent { }. In precedenza era costretto a riempire l'intera schermata dell'attività, mentre ora si comporta come se si mettesse il layout all'interno di una pila: può essere più piccolo di uno schermo e viene posizionato nella schermata in alto a sinistra. Se vuoi il vecchio comportamento puoi applicare Modifier.fillMaxSize() al layout. (Ie88a7, b/153453714)
Il modulo ui-text-compose è rinominato ui-text. testo dell'interfaccia utente ora contiene i componibili CoreText e CoreTextField (Ib7d47)
Il modulo ui-text è stato rinominato ui-text-core (I57dec)
ui-framework/CoreText, elementi componibili CoreTextField spostati in "ui-text-compose". Potresti voler includere ui-text-compose nel progetto. (I32042)
runOnIdleCompose
erunOnUiThread
sono ora funzioni globali invece dei metodi su ComposeTestRule. (Icbe8f)[Mutable]Operatori dei delegati delle proprietà statali spostati nelle estensioni per supportare le ottimizzazioni dei delegati per le proprietà Kotlin 1.4. I chiamanti devono aggiungere importazioni per continuare a utilizzare
by state { ... }
oby mutableStateOf(...)
. (I5312c)DrawlayerModifier e drawlayer() ora clipToBounds predefiniti e clipToOutline su false. (I0eb8b, b/152810850)
Il valore LayoutResult è stato rinominato in MeasureResult. (ID8c68)
Elemento componibile del Centro deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAllinea.Center oppure con uno dei componibili Box o Stack con i modificatori adatti applicati (Idf5e0).
Il nome LayoutFlessibile è stato rinominato in LayoutWeight. Parametro stretto rinominato da riempire. (If4738)
DrawVector è stato modificato da una funzione componibile per restituire un Modifier drawVector() che il vettore come sfondo di un layout. (I7b8e0)
Sostituisci la funzione componibile Clip con il modificatore drawClip(). DrawClipToBounds è un pratico modificatore da usare quando devi ritagliare solo i limiti dei livelli con una forma rettangolare. (If28eb)
Funzione componibile DrawShadow() sostituita con drawShadow() modificatore. Le ombre sono ora disegnate come parte di LayerModifier. (I0317a)
L'elemento androidx.compose.ViewComposer è stato spostato in androidx.ui.node.UiComposer Il file androidx.compose.Emittable è stato rimosso. Era ridondante con ComponentNode. Il comando androidx.compose.ViewAdapters è stato rimosso. Non sono più un caso d'uso supportato. L'API Compose.composeInto è stata ritirata. Usa invece
setContent
osetViewContent
. L'API Compose.disposeCompose è stata deprecata. Utilizza invece il metododispose
nella colonnaComposition
restituita dasetContent
. Il file androidx.compose.Compose.subcomposeInto è stato spostato in androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt è stato rinominato in ComponentNode#insertAt ComponentNode#emitRemoveAt è stato rinominato in ComponentNode#removeAt ComponentNode#emitMode è stato rinominato in ComponentNode#move (Idef00)Elemento componibile a capo obsoleto. Può essere sostituito con il modificatore LayoutAllinea o con l'elemento componibile Stack (Ib237f)
È stata eseguita la propagazione della direzione del layout dal nodo di layout principale ai nodi secondari. Aggiunto il modificatore di direzione del layout. (I3d955)
Rinomina Painter.toModifier in Painter.asModifier perché il Modificatore appena creato ha un riferimento al Painter originale che può essere condiviso tra più istanze di Modificatore (I7195b)
Supporto della direzione da destra a sinistra nel modificatore di LayoutPadding (I9e8da)
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)
Rimossa la classe ValueHolder. Ristrutturate le classi AnimatedValue, animateFloat per rendi astratto il campo dei valori dell'animazione in modo che le sottoclassi possano osservare l'aggiornamento del valore.
- Sono state aggiunte classi di modello per AnimatedValue, AnimatedFloat e così via.
- È stato aggiunto un nuovo set di API @Composable leggeri per l'animazione tra i valori.
- (I79530)
Interruzione delle modifiche all'API Ambient. Per informazioni dettagliate, consulta la documentazione relativa al log e a
Ambient<T>
(I4c7ee, b/143769776)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)
È stato corretto un bug ConstraintLayout che causava un arresto anomalo durante le ricomposizioni. (Ibee5a, b/158164341)
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)
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)
LayoutDirectionAmbient è deprecato. Per leggere la direzione del layout definita dalle impostazioni internazionali, utilizza localeLayoutDirection su ConfigurationAmbient (I851b1)
Sono stati aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)
L'API ParentData componibile è deprecata. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier oppure usare il modificatore LayoutTag se hai semplicemente bisogno di taggare elementi secondari di layout per riconoscerli all'interno del blocco di misurazione. (I51368, b/150953183)
Aggiungere OnPositionedModifier e OnChildPositionedModifier per sostituire OnPositioned e OnChildPositioned funzioni. (I2ec8f)
Non consentire la spaziatura interna negativa in LayoutPadding. LayoutOffset dovrebbe essere utilizzato invece per gli offset di posizione negativi. (Ifb5b1).
WithConstraints ha ottenuto il parametro LayoutDirection (I6d6f7)
Il flag
ComposeFlags.COMPOSER_PARAM
è stato aggiornato intrue
e cambierà la strategia di generazione del codice per il plug-in di scrittura. A livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene passato alle chiamate @Composable successive per consentire al runtime di gestire correttamente l'esecuzione. Si tratta di una modifica significativa che provoca un'interruzione del programma binario, tuttavia, dovrebbe preservare la compatibilità a livello di origine in tutti gli utilizzi autorizzati della scrittura. (I7971c)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)
Aggiunta TextDirection.Content (I48f36)
Nascondi il menu della barra degli strumenti per visualizzare le opzioni di copia, taglia e incolla correttamente. (ID3955)
Aggiungi FloatingToolbar per la selezione dei campi di testo. (Ie8b07).
TextDirectionAlgorithm è rinominato TextDirection (I75ce8)
TextDirection è rinominata ResolvedTextDirection (I3ff38)
Aggiungi la tecnologia HapticFeedback alla selezione del campo di testo. (I58050)
Aggiungi i metodi di copia, taglia e incolla alla selezione del campo di testo. (Idb70b)
TestTag e Semantics sono stati eliminati. Usa invece Modifier.testTag e Modifier.semantics (I15ff0, b/158841414).
Il nome del pacchetto per le impostazioni internazionali e Impostazioni internazionali è stato modificato da Da androidx.ui.text ad androidx.ui.intl (I8132c)
Modifica API: il nome
AnnotatedString(builder: Builder)
è stato rinominatoannotatedString(builder: Builder)
. (Ia6377)Modifica API: il nome
AnnotatedString.Item
è stato rinominatoAnnotatedString.Range
. (I2d44d)Aggiungi la barra degli strumenti per le operazioni correlate al testo. (I49d53)
Il nuovo LifecycleOwnerAmbient è ora disponibile. Ora un'attività che stai utilizzando con la UI di Compose dovrebbe estendere androidx.activity.ComponentActivity (o AppCompatActivity). L'impostazione setContent su android.app.Activity è ora deprecata (Idb25a, b/153141084)
nome pacchetto ui-android-text (androidx.text) sostituito con androidx.ui.text.platform per allinearsi con il criterio Androidx. (I42711)