Comporre materiale
androidx.compose.material
androidx.compose.material.icons
(Consulta la documentazione di riferimento dell'API per tutti i pacchetti Compose)
Ultimo aggiornamento | Release stabile | Candidato per la release | Versione beta | Alpha Release |
---|---|---|---|---|
2 luglio 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
Struttura
Compose è una combinazione di 7 ID gruppo Maven all'interno di androidx
. Ogni gruppo
contiene un sottoinsieme mirato di funzionalità, ognuna con il proprio insieme di note di rilascio.
Questa tabella spiega i gruppi e fornisce i link a ogni insieme di note di rilascio.
Gruppo | Descrizione |
---|---|
compose.animation | Creare animazioni nelle applicazioni Jetpack Compose per arricchire l'esperienza utente. |
compose.compiler | Trasforma le funzioni @Composable e attiva le ottimizzazioni con un plug-in del compilatore Kotlin. |
compose.foundation | Scrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed estendi le fondamenta per creare i tuoi elementi del sistema di progettazione. |
compose.material | Crea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti che corrispondono a quelli descritti all'indirizzo www.material.io. |
compose.material3 | Crea UI Jetpack Compose con i componenti Material Design 3, la prossima evoluzione di Material Design. Material 3 include componenti e temi aggiornati e funzionalità di personalizzazione Material You come il colore dinamico. È progettato per essere coerente con il nuovo stile visivo e l'interfaccia utente di sistema di Android 12. |
compose.runtime | Elementi costitutivi fondamentali del modello di programmazione e della gestione dello stato di Compose e runtime di base per il plug-in del compilatore Compose da utilizzare come target. |
compose.ui | Componenti fondamentali dell'interfaccia utente di Compose necessari per interagire con il dispositivo, inclusi layout, disegno e input. |
Dichiarazione di dipendenze
Per aggiungere una dipendenza da Compose, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle
per
la tua app o il tuo modulo:
Groovy
dependencies { implementation "androidx.compose.material:material:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.9
Versione 1.9.0-beta02
2 luglio 2025
androidx.compose.material:material-*:1.9.0-beta02
viene ritirata. La versione 1.9.0-beta02 contiene questi commit.
Versione 1.9.0-beta01
18 giugno 2025
androidx.compose.material:material-*:1.9.0-beta01
viene ritirata. La versione 1.9.0-beta01 contiene questi commit.
Correzioni di bug
- I link ipertestuali in
Text(AnnotatedString)
ora hanno lo stile Material per impostazione predefinita. (I0e8ed, b/339843816)
Versione 1.9.0-alpha04
4 giugno 2025
androidx.compose.material:material-*:1.9.0-alpha04
viene ritirata. La versione 1.9.0-alpha04 contiene questi commit.
Versione 1.9.0-alpha03
20 maggio 2025
androidx.compose.material:material-*:1.9.0-alpha03
viene ritirata. La versione 1.9.0-alpha03 contiene questi commit.
Versione 1.9.0-alpha02
7 maggio 2025
androidx.compose.material:material-*:1.9.0-alpha02
viene ritirata. La versione 1.9.0-alpha02 contiene questi commit.
Versione 1.9.0-alpha01
23 aprile 2025
androidx.compose.material:material-*:1.9.0-alpha01
viene ritirata. La versione 1.9.0-alpha01 contiene questi commit.
Modifiche al comportamento
- I controlli Lint forniti con Compose ora richiedono una versione minima di AGP 8.8.2. Se non riesci a eseguire l'upgrade di AGP, puoi eseguire l'upgrade di Lint separatamente utilizzando
android.experimental.lint.version=8.8.2
(o una versione più recente) ingradle.properties
. Per eseguire i controlli lint di Compose all'interno dell'IDE, è necessario Android Studio Ladybug o versioni successive.
Modifiche alle API
- I progetti rilasciati con Kotlin 2.0 richiedono KGP 2.0.0 o versioni successive per essere utilizzati. (Idb6b5)
- Le API per la casella di decorazione del campo di testo non sono più sperimentali (I7480f, b/269651160)
- Ritira
runWithTimingDisabled
a favore dirunWithMeasurementDisabled
, che descrive più chiaramente il comportamento: tutte le metriche vengono messe in pausa. Inoltre, espone la superclasseMicrobenchmarkScope
poiché non è possibile dichiarare nuovamente la funzionerunWithMeasurementDisabled
per aprire l'accesso, in quanto è inline. (I9e23b, b/389149423, b/149979716)
Correzioni di bug
ExposedDropdownMenu
è compatibile a livello binario con le versioni precedenti. (I133f7)- È stato corretto un arresto anomalo negli indicatori di avanzamento e caricamento nel caso in cui venga passato un
Float.NaN
come avanzamento. (I4fa96, b/352364576)
Versione 1.8
Versione 1.8.3
18 giugno 2025
androidx.compose.material:material-*:1.8.3
viene ritirata. La versione 1.8.3 contiene questi commit.
Versione 1.8.2
20 maggio 2025
androidx.compose.material:material-*:1.8.2
viene ritirata. La versione 1.8.2 contiene questi commit.
Versione 1.8.1
7 maggio 2025
androidx.compose.material:material-*:1.8.1
viene ritirata. La versione 1.8.1 contiene questi commit.
Versione 1.8.0
23 aprile 2025
androidx.compose.material:material-*:1.8.0
viene ritirata. La versione 1.8.0 contiene questi commit.
Versione 1.8.0-rc03
9 aprile 2025
androidx.compose.material:material-*:1.8.0-rc03
viene ritirata. La versione 1.8.0-rc03 contiene questi commit.
Versione 1.8.0-rc02
26 marzo 2025
androidx.compose.material:material-*:1.8.0-rc02
viene ritirata. La versione 1.8.0-rc02 contiene questi commit.
Versione 1.8.0-rc01
12 marzo 2025
androidx.compose.material:material-*:1.8.0-rc01
viene ritirata. La versione 1.8.0-rc01 contiene questi commit.
Versione 1.8.0-beta03
26 febbraio 2025
androidx.compose.material:material-*:1.8.0-beta03
viene ritirata. La versione 1.8.0-beta03 contiene questi commit.
Versione 1.8.0-beta02
12 febbraio 2025
androidx.compose.material:material-*:1.8.0-beta02
viene ritirata. La versione 1.8.0-beta02 contiene questi commit.
Versione 1.8.0-beta01
29 gennaio 2025
androidx.compose.material:material-*:1.8.0-beta01
viene ritirata. La versione 1.8.0-beta01 contiene questi commit.
Versione 1.8.0-alpha08
15 gennaio 2025
androidx.compose.material:material-*:1.8.0-alpha08
viene ritirata. La versione 1.8.0-alpha08 contiene questi commit.
Correzioni di bug
- Aggiunge
displayCutout
al gruppo di rientri che i componenti Material prendono in considerazione per impostazione predefinita, per evitare che i contenuti si sovrappongano al ritaglio del display.- Si tratta di una modifica del comportamento che influirà sul modo in cui i componenti compatibili con l'inset si comportano intorno a un'interruzione del display. Sono inclusi il valore predefinito del parametro
WindowInsets
per i componenti Material 3 con consapevolezza dell'insetto e i valoriWindowInsets
forniti nel componente. - Oggetti predefiniti per Material 2 e Material 3. Se questa modifica causa un comportamento indesiderato, specifica manualmente il parametro
WindowInsets
per ogni componente. (I43ee9, b/362508045)
- Si tratta di una modifica del comportamento che influirà sul modo in cui i componenti compatibili con l'inset si comportano intorno a un'interruzione del display. Sono inclusi il valore predefinito del parametro
- L'attività utilizzata come host per il composable in fase di test quando si utilizza
ComposeContentTestRule.setContent
ora utilizza il temaTheme.Material.Light.NoActionBar
, per evitare cheActionBar
si sovrapponga ai contenuti di test quando si ha come target l'SDK 35. Per disattivare questo comportamento, puoi rimuovere la dipendenza daui-test-manifest
e aggiungere una voce di attività inAndroidManifest.xml
dell'app di test perComponentActivity
con il tema che preferisci. (I7ae1b, b/383368165)
Contributo esterno
- Esporre
sheetGesturesEnabled
inModalBottomSheetLayout
. (I3f032, b/329543529)
Versione 1.8.0-alpha07
11 dicembre 2024
androidx.compose.material:material-*:1.8.0-alpha07
viene ritirata. La versione 1.8.0-alpha07 contiene questi commit.
Correzioni di bug
- Correzione dei modificatori di dimensione del campo di testo che a volte non vengono seguiti. (I90d4c, b/356905963)
Versione 1.8.0-alpha06
13 novembre 2024
androidx.compose.material:material-*:1.8.0-alpha06
viene ritirata. La versione 1.8.0-alpha06 contiene questi commit.
Versione 1.8.0-alpha05
30 ottobre 2024
androidx.compose.material:material-*:1.8.0-alpha05
viene ritirata. La versione 1.8.0-alpha05 contiene questi commit.
Correzioni di bug
- Ottimizza il comportamento di Scaffold
contentPadding
per evitare di ricomporre sempre i contenuti del corpo quandocontentPadding
cambia. (I8c8e2, b/373904168) - Fai in modo che il cursore del materiale cambi valore quando vengono premuti i tasti di controllo. (I1c442)
Versione 1.8.0-alpha04
16 ottobre 2024
androidx.compose.material:material-*:1.8.0-alpha04
viene ritirata. La versione 1.8.0-alpha04 contiene questi commit.
Modifiche alle API
- Rimuovi
readOnly
daTextFields
per bloccare la versione stabile di Foundation. (I3aaba)
Correzioni di bug
- Aggiunge il supporto per le increspature nei componenti in espansione su Android S+, ad esempio una scheda che si espande con un clic. In precedenza, l'increspatura non riempiva le nuove dimensioni, ma ora si espande fino ai nuovi limiti. (If509a, b/183019123)
Versione 1.8.0-alpha02
18 settembre 2024
androidx.compose.material:material-*:1.8.0-alpha02
viene ritirata. La versione 1.8.0-alpha02 contiene questi commit.
Versione 1.8.0-alpha01
4 settembre 2024
androidx.compose.material:material-*:1.8.0-alpha01
viene ritirata. La versione 1.8.0-alpha01 contiene questi commit.
Modifiche alle API
- È stato aggiunto un nuovo builder
NavGraphBuilder.bottomSheet
per creare un foglio inferiore con argomenti sicuri ((I28589, I777db, b/351858980)) - Aggiunte nuove sovraccariche
TextField
eOutlinedTextField
che richiedono unTextFieldState
(I3b74c)
Versione 1.7
Versione 1.7.8
12 febbraio 2025
androidx.compose.material:material-*:1.7.8
viene ritirata. La versione 1.7.8 contiene questi commit.
Versione 1.7.7
29 gennaio 2025
androidx.compose.material:material-*:1.7.7
viene ritirata. Nessuna modifica rispetto alla versione 1.7.6.
Versione 1.7.6
11 dicembre 2024
androidx.compose.material:material-*:1.7.6
viene ritirata. La versione 1.7.6 contiene questi commit.
Versione 1.7.5
30 ottobre 2024
androidx.compose.material:material-*:1.7.5
viene ritirata. La versione 1.7.5 contiene questi commit.
Versione 1.7.4
16 ottobre 2024
androidx.compose.material:material-*:1.7.4
viene ritirata. La versione 1.7.4 contiene questi commit.
Versione 1.7.2
18 settembre 2024
androidx.compose.material:material-*:1.7.2
viene ritirata. La versione 1.7.2 contiene questi commit.
Versione 1.7.1
10 settembre 2024
- Nessuna modifica agli artefatti Android. Sono stati rimossi
-desktop
artefatti e sono stati aggiunti-jvmStubs
e-linuxx64Stubs
artefatti. Nessuno di questi target è destinato all'uso, sono segnaposto per supportare gli sforzi di Jetbrains Compose.
Versione 1.7.0
4 settembre 2024
androidx.compose.material:material-*:1.7.0
viene ritirata. La versione 1.7.0 contiene questi commit.
Modifiche importanti dalla versione 1.6.0
- I componenti Material sono stati migrati per utilizzare le nuove API ripple e non eseguono più query su
RippleTheme
. - I componenti Material che in precedenza accettavano un
MutableInteractionSource
e utilizzavanoremember { MutableInteractionSource() }
come valore predefinito ora accettano unMutableInteractionSource
che ammette valori nulli e utilizzano null come valore predefinito. Se non stai eseguendo l'hosting e utilizzandoMutableInteractionSource
, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
e Bottomsheet standard sono stati promossi ad API stabile.
Versione 1.7.0-rc01
21 agosto 2024
androidx.compose.material:material-*:1.7.0-rc01
viene ritirata. La versione 1.7.0-rc01 contiene questi commit.
Versione 1.7.0-beta07
7 agosto 2024
androidx.compose.material:material-*:1.7.0-beta07
viene ritirata. La versione 1.7.0-beta07 contiene questi commit.
Versione 1.7.0-beta06
24 luglio 2024
androidx.compose.material:material-*:1.7.0-beta06
viene ritirata. La versione 1.7.0-beta06 contiene questi commit.
Versione 1.7.0-beta05
10 luglio 2024
androidx.compose.material:material-*:1.7.0-beta05
viene ritirata. La versione 1.7.0-beta05 contiene questi commit.
Versione 1.7.0-beta04
26 giugno 2024
androidx.compose.material:material-*:1.7.0-beta04
viene ritirata. La versione 1.7.0-beta04 contiene questi commit.
Versione 1.7.0-beta03
12 giugno 2024
androidx.compose.material:material-*:1.7.0-beta03
viene ritirata. La versione 1.7.0-beta03 contiene questi commit.
Versione 1.7.0-beta02
29 maggio 2024
androidx.compose.material:material-*:1.7.0-beta02
viene ritirata. La versione 1.7.0-beta02 contiene questi commit.
Modifiche alle API
- Aggiornamento dell'API per lo stile dei link: è stato spostato
TextLinkStyles
inTextStyle
ed è stato rimossoTextDefaults
da Material (I5477b)
Versione 1.7.0-beta01
14 maggio 2024
androidx.compose.material:material-*:1.7.0-beta01
viene ritirata. La versione 1.7.0-beta01 contiene questi commit.
Modifiche alle API
- È stata aggiornata l'API per ottenere link con tema Material nel testo. In particolare, sono stati rimossi i metodi da
TextDefaults
per costruireLinkAnnotations
a tema e analizzare l'HTML con link a tema. È stata invece aggiunta una classeTextLinkStyles
che consente di applicare uno stile ai link come parametro del composable Text. (I31b93)
Versione 1.7.0-alpha08
1° maggio 2024
androidx.compose.material:material-*:1.7.0-alpha08
viene ritirata. La versione 1.7.0-alpha08 contiene questi commit.
Modifiche alle API
- Correzione
backgroundColor
non applicata aTextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. Ora le caselle di decorazione accettano un parametroshape
. (I371c2, b/307694651) RippleConfiguration#isEnabled
è stato rimosso eLocalRippleConfiguration
è stato reso annullabile. Per disattivare un'increspatura, anziché fornire unRippleConfiguration
conisEnabled = false
, forniscinull
aLocalRippleConfiguration
. (I22725)- I link di testo hanno un'opzione di stile per lo stato premuto, oltre allo stile normale, al passaggio del mouse e alla messa a fuoco. I metodi
TextDefaults
hanno ciascuno un argomentopressedStyle
a supporto. (Ic473f, b/139312671)
Correzioni di bug
- Il padding superiore dell'etichetta ora tiene conto delle dimensioni del carattere di sistema.
OutlinedTextField
(Idc781)
Versione 1.7.0-alpha07
17 aprile 2024
androidx.compose.material:material-*:1.7.0-alpha07
viene ritirata. La versione 1.7.0-alpha07 contiene questi commit.
Modifiche alle API
- I link di testo hanno ricevuto l'opzione di stile dello stato premuto, oltre allo stile normale, al passaggio del mouse e alla messa a fuoco. (I5f864, b/139312671)
- È stato aggiunto un oggetto
TextDefaults
che contiene metodi per costruire unLinkAnnotation
e analizzare una stringa con tag HTML che applicanoMaterialTheme
ai link. (I98532, b/139312671)
Versione 1.7.0-alpha06
3 aprile 2024
androidx.compose.material:material-*:1.7.0-alpha06
viene ritirata. La versione 1.7.0-alpha06 contiene questi commit.
Annuncio
androidx.compose.material
non richiede più l'utilizzo della stessa versione di ogni artefatto in questo gruppo Maven. Gli utenti possono combinare le versioni delle librerie di base di Compose (Ie5fba)
Modifiche alle API
- Sono stati spostati altri valori predefiniti di
ModalDrawer
eBottomDrawer
nell'oggettoDrawerDefaults
. (Ib5b2e)
Versione 1.7.0-alpha05
20 marzo 2024
androidx.compose.material:material-*:1.7.0-alpha05
viene ritirata. La versione 1.7.0-alpha05 contiene questi commit.
Modifiche alle API
- Il flag
ScaffoldSubcomposeInMeasureFix
è stato rimosso. (I67363)
Versione 1.7.0-alpha04
6 marzo 2024
androidx.compose.material:material-*:1.7.0-alpha04
viene ritirata. La versione 1.7.0-alpha04 contiene questi commit.
Nuove funzionalità
- È stato aggiunto un nuovo artefatto
androidx.compose.material:material-navigation
che aggiunge il supporto per i fogli inferiori come destinazioni quando si utilizza Navigation Compose. Sostituisce la libreria di materiali di navigazione per accompagnatori. (d65d57, b/180247978)
Versione 1.7.0-alpha03
21 febbraio 2024
androidx.compose.material:material-*:1.7.0-alpha03
viene ritirata. La versione 1.7.0-alpha03 contiene questi commit.
Modifiche alle API
BottomDrawer
è stato promosso da sperimentale a stabile.BottomDrawerState
ora espone l'avanzamento come funzione, consentendo di eseguire query sull'avanzamento tra target specifici.BottomDrawerState
ora consente di personalizzare la specifica dell'animazione econfirmStateChange
non è più una lambda finale. (I9c029, b/261423850)BackdropScaffold
è stato promosso da sperimentale a stabile. La specifica dell'animazione ora è una specificatween
in conformità con le linee guida. Il parametrosnackbarHost
diBackdropScaffold
non è più l'ultimo parametro per evitare confusione con le funzioni lambda finali.BackdropScaffoldState
espone un'APIprogress(from, to)
per eseguire query sullo stato di avanzamento tra gli ancoraggi. (I73f48, b/261423218)- I fogli inferiori standard sono stati promossi da sperimentali a stabili. I costruttori deprecati sono stati rimossi. La specifica dell'animazione ora è una specifica di tween in conformità con le linee guida. (I3c1a8, b/278692145, b/261409034)
- I fogli inferiori modali sono stati promossi da sperimentali a stabili. I costruttori deprecati sono stati rimossi. La specifica dell'animazione ora è una specifica
tween
in conformità con le linee guida. (Ic53f4, b/278692145, b/266780235, b/261409034)
Correzioni di bug
- Risolto un problema per cui
BackdropScaffold
poteva arrestarsi in modo anomalo in scenari specifici in combinazione conLookaheadScope
. (I51396) - Rimossa la composizione secondaria all'interno di
BottomSheetScaffold
per migliorare le prestazioni. Risolto un problema per cuiBottomSheetScaffold
si arrestava in modo anomalo in scenari specifici in combinazione conLookaheadScope
. (I2f90c) - Rimossa la composizione secondaria all'interno di
ModalBottomSheetLayout
, migliorando le prestazioni. (I7a025)
Versione 1.7.0-alpha02
7 febbraio 2024
androidx.compose.material:material-*:1.7.0-alpha02
viene ritirata. La versione 1.7.0-alpha02 contiene questi commit.
Versione 1.7.0-alpha01
24 gennaio 2024
androidx.compose.material:material-*:1.7.0-alpha01
viene ritirata. La versione 1.7.0-alpha01 contiene questi commit.
Modifiche al comportamento
- I componenti Material sono stati migrati per utilizzare le nuove API ripple e non eseguono più query su
RippleTheme
.
Modifiche alle API
rememberRipple
eRippleTheme
sono stati ritirati da material-ripple e sono state aggiunte nuove API ripple eRippleConfiguration
a material e ad altre librerie di sistemi di progettazione.I componenti Material che in precedenza accettavano un
MutableInteractionSource
e ricordavano{ MutableInteractionSource() }
per impostazione predefinita ora accettano unMutableInteractionSource
che ammette valori nulli e sono impostati su null per impostazione predefinita. Se non stai eseguendo l'hosting e utilizzandoMutableInteractionSource
, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti.
Versione 1.6
Versione 1.6.8
12 giugno 2024
androidx.compose.material:material-*:1.6.8
viene ritirata. La versione 1.6.8 contiene questi commit.
Versione 1.6.7
1° maggio 2024
androidx.compose.material:material-*:1.6.7
viene ritirata. La versione 1.6.7 contiene questi commit.
Versione 1.6.6
17 aprile 2024
androidx.compose.material:material-*:1.6.6
viene ritirata. Nessuna modifica dall'ultima release.
Versione 1.6.5
3 aprile 2024
androidx.compose.material:material-*:1.6.5
viene ritirata. La versione 1.6.5 contiene questi commit.
Versione 1.6.4
20 marzo 2024
androidx.compose.material:material-*:1.6.4
viene ritirata. La versione 1.6.4 contiene questi commit.
Versione 1.6.3
6 marzo 2024
androidx.compose.material:material-*:1.6.3
viene ritirata. La versione 1.6.3 contiene questi commit.
Correzioni di bug
- Correzione della regressione in
ExposedDropdownMenu
per renderlo di nuovo selezionabile. (c0e0ed, b/323694447)
Versione 1.6.2
21 febbraio 2024
androidx.compose.material:material-*:1.6.2
viene ritirata. La versione 1.6.2 contiene questi commit.
Versione 1.6.1
7 febbraio 2024
androidx.compose.material:material-*:1.6.1
viene ritirata. La versione 1.6.1 contiene questi commit.
Versione 1.6.0
24 gennaio 2024
androidx.compose.material:material-*:1.6.0
viene ritirata. La versione 1.6.0 contiene questi commit.
Versione 1.6.0-rc01
10 gennaio 2024
androidx.compose.material:material-*:1.6.0-rc01
viene ritirata. La versione 1.6.0-rc01 contiene questi commit.
Versione 1.6.0-beta03
13 dicembre 2023
androidx.compose.material:material-*:1.6.0-beta03
viene ritirata. La versione 1.6.0-beta03 contiene questi commit.
Versione 1.6.0-beta02
29 novembre 2023
androidx.compose.material:material-*:1.6.0-beta02
viene ritirata. La versione 1.6.0-beta02 contiene questi commit.
Versione 1.6.0-beta01
15 novembre 2023
androidx.compose.material:material-*:1.6.0-beta01
viene ritirata. La versione 1.6.0-beta01 contiene questi commit.
Versione 1.6.0-alpha08
18 ottobre 2023
androidx.compose.material:material-*:1.6.0-alpha08
viene ritirata. La versione 1.6.0-alpha08 contiene questi commit.
Modifiche alle API
- Ritira una funzione
materialIcon
a favore del suo overload che accetta un parametroautoMirror
. (Ia338d)
Correzioni di bug - Aumento automatico dell'altezza della voce di navigazione per contenuti di grandi dimensioni. (0c4ecc, b/272336962)
Versione 1.6.0-alpha07
4 ottobre 2023
androidx.compose.material:material-*:1.6.0-alpha07
viene ritirata. La versione 1.6.0-alpha07 contiene questi commit.
- Aggiornamenti delle dipendenze
Versione 1.6.0-alpha06
20 settembre 2023
androidx.compose.material:material-*:1.6.0-alpha06
viene ritirata. La versione 1.6.0-alpha06 contiene questi commit.
Modifica che provoca un errore nel comportamento
- Funzionalità relative al riquadro rimosse da
BottomSheetScaffold
. InserisciBottomSheetScaffold
in un composable Drawer per ottenere la funzionalità precedente. Per un esempio, vediBottomSheetScaffoldWithDrawerSample
. (I1dcc8)
Modifiche alle API
- È stato introdotto un flag temporaneo per controllare se lo scaffolding deve misurare i suoi elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, la misurazione viene effettuata in unità di misura. Se riscontri problemi con il nuovo comportamento, segnala un problema. (If6e3b)
Versione 1.6.0-alpha05
6 settembre 2023
androidx.compose.material:material-*:1.6.0-alpha05
viene ritirata. La versione 1.6.0-alpha05 contiene questi commit.
Nuove funzionalità
- È stato aggiunto il supporto per le icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icons-core e material-icons-extended ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set sono preceduti da
Icons.AutoMirrored.Filled...
e così via e contengono icone che verranno automaticamente specchiate nei layout da destra a sinistra. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere sottoposte a mirroring automatico.
Modifiche alle API
- È stato aggiunto il supporto per le icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icons-core e material-icons-extended ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set sono preceduti da
Icons.AutoMirrored.Filled...
e così via e contengono icone che verranno automaticamente specchiate nei layout da destra a sinistra. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere sottoposte a mirroring automatico. Le proprietà delle icone fornite in precedenza per queste icone sono ora contrassegnate come deprecate e forniscono un suggerimento di blocco di sostituzione per facilitare la migrazione. Se non hai una gestione speciale per il mirroring delle icone su RTL, ti consigliamo di eseguire la migrazione al nuovo set di icone. Ad esempio,Icons.Filled.ArrowBack
deve essere sottoposto a refactoring inIcons.AutoMirrored.Filled.ArrowBack
. (I4b511)
Versione 1.6.0-alpha04
23 agosto 2023
androidx.compose.material:material-*:1.6.0-alpha04
viene ritirata. La versione 1.6.0-alpha04 contiene questi commit.
Correzioni di bug
- È stato risolto un problema per cui alcuni componenti che utilizzano
Subcomposition
(ad es.BottomSheetScaffold
) all'interno di uno Scaffold all'interno di unLookaheadScope
tentavano di leggere le proprie dimensioni troppo presto. (If2c5d) - È stato corretto il calcolo di
offset
diDropdownMenu
in modo che gli offset x dipendano esclusivamente dalla direzione del layout locale e gli offset y non vengano più invertiti quando il menu si trova vicino alla parte inferiore dello schermo. (Iccc74, b/294103942) - Sono stati ottimizzati gli elementi interni del layout di
BottomSheetScaffold
ed è stato risolto un potenziale problema conBottomSheetScaffold
all'interno di unLookaheadLayout
. (Ic0afa)
Versione 1.6.0-alpha03
9 agosto 2023
androidx.compose.material:material-*:1.6.0-alpha03
viene ritirata. La versione 1.6.0-alpha03 contiene questi commit.
Modifiche alle API
- I componenti Material2 ora hanno un'API separata per passare
windowInsets
per supportare la funzionalità edge-to-edge in Android. A differenza dei componenti Material3, i componenti Material2 non supportano gli inserti per impostazione predefinita e il valore deve essere passato manualmente. Per informazioni, consulta gli esempi corrispondenti. (I655e8)
Versione 1.6.0-alpha02
26 luglio 2023
androidx.compose.material:material-*:1.6.0-alpha02
viene ritirata. La versione 1.6.0-alpha02 contiene questi commit.
Modifiche alle API
- Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti:
SwipeToDismiss
e componenti basati su Fogli. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I1846e) - Annotazioni aggiuntive per specificare gli input consentiti per i composable (I51109)
- File API aggiornati per annotare la soppressione della compatibilità (I8e87a, b/287516207)
- Aggiunto un nuovo allineamento iniziale per
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
in Material 2 è stato ritirato a favore diTextFieldColors
. Quando esegui l'override dileadingIconColor
otrailingIconColor
, esegui l'override anche del sovraccarico coninteractionSource
. (Id57ed, b/199377790)
Versione 1.6.0-alpha01
21 giu 2023
androidx.compose.material:material-*:1.6.0-alpha01
viene ritirata. La versione 1.6.0-alpha01 contiene questi commit.
Modifiche al comportamento
includeFontPadding
è orafalse
per impostazione predefinita nella tipografia Material 2. Anche lo stile dell'altezza della linea predefinita è stato modificato inTrim.None
eAlignment.Center
e sono stati aggiuntilineHeight
espliciti (in sp) aiTextStyle
diTypography
. Consulta la documentazione dell'API se vuoi personalizzare questi valori e leggi il post del blog per una spiegazione dettagliata di queste modifiche. (Icabc3, I3f801, I04c03)
Modifiche alle API
- Le API
Swipeable
di Material sono state ritirate. Fai riferimento alle APIAnchoredDraggable
di Foundation, ottimizzate per casi d'uso semplici e complessi. (I732e0)
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5
Versione 1.5.4
18 ottobre 2023
androidx.compose.material:material-*:1.5.4
viene ritirata. La versione 1.5.4 contiene questi commit.
Versione 1.5.3
4 ottobre 2023
androidx.compose.material:material-*:1.5.3
viene ritirata. Questa versione non presenta modifiche
Versione 1.5.2
27 settembre 2023
androidx.compose.material:material-*:1.5.2
viene ritirata. La versione 1.5.2 contiene questi commit.
Versione 1.5.1
6 settembre 2023
androidx.compose.material:material-*:1.5.1
viene rilasciato senza modifiche. La versione 1.5.1 contiene questi commit.
Versione 1.5.0
9 agosto 2023
androidx.compose.material:material-*:1.5.0
viene ritirata. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0
Modifiche alle API
- Sono state incorporate modifiche alle API Swipeable1 in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominato inconfirmValueChange
.progress
ora è esposto come valore in virgola mobile.animateTo
esnapTo
sono interni. Utilizza inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito darequireOffset()
. I323b4 - Contrassegna la funzione
snapTo
in Drawer come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per la chiusura del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
confirmStateChange
diModalBottomSheetState
,ModalBottomSheetState.Saver
erememberModalBottomSheetState
rinominato inconfirmValueChange
. (Ib48d1)- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559) - Modifiche incorporate nelle API per lo scorrimento in
ModalBottomSheetLayout
. animateTo diModalBottomSheetState
non accetta più un parametroanimationSpec
e l'offset esposto ora è annullabile. UsarequireOffset
per richiedere l'offset. (Ia2e79) - Aggiunta dell'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Le modifiche incorporate nelle API Swipeable nella versione
animateTo
diModalDrawer. DrawerState
sono state sostituite dai metodi open e close e l'offset ora è annullabile. UsarequireOffset
per richiedere l'offset. (I3de9e) - Aggiornamento di riquadri e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
- È stato aggiunto il parametro
minLines
a Text,TextField
eOutlinedTextField
di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d).
Correzioni di bug
- Corregge un problema per cui
pullRefresh
non consumava la velocità, causando la visualizzazione dello scorrimento eccessivo. È stata inoltre modificata la firma API della lambdaonRelease
inModifier.pullRefresh
per restituire un valore Float per la velocità consumata (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- È stata corretta l'
AlertDialog
azione di chiusura in modo che venga visualizzata sotto l'azione di conferma quando le azioni sono impilate l'una sull'altra per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alle specifiche di Material Design. (I029de, b/235454277) BottomSheetScaffold
non parteciperà più allo scorrimento nidificato quandogesturesEnabled
è impostato su false. (I634f3, b/215403277)- È stato corretto un bug per cui
BottomSheetScaffold
si arrestava in modo anomalo quando venivano forniti contenuti vuoti per gli slot. (Ib24a5, b/235588730) - Correzioni
PullRefreshIndicator
intercettazione di clic/eventi puntatore. (2494256, b/271777421) - È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo in un caso limite al cambio di orientamento. Le animazioni del layout (ad es.Modifier.animateContentSize
) nei/sui contenuti del foglio ora funzionano senza problemi. (I2f981, b/266780234)
Versione 1.5.0-rc01
26 luglio 2023
androidx.compose.material:material-*:1.5.0-rc01
viene ritirata. La versione 1.5.0-rc01 contiene questi commit.
Versione 1.5.0-beta03
28 giugno 2023
androidx.compose.material:material-*:1.5.0-beta03
viene ritirata. La versione 1.5.0-beta03 contiene questi commit.
Correzioni di bug
BottomSheetState
,ModalBottomSheetState
eBottomDrawerState
ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilita) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Versione 1.5.0-beta02
7 giugno 2023
androidx.compose.material:material-*:1.5.0-beta02
viene ritirata. La versione 1.5.0-beta02 contiene questi commit.
Versione 1.5.0-beta01
24 maggio 2023
androidx.compose.material:material-*:1.5.0-beta01
viene ritirata. La versione 1.5.0-beta01 contiene questi commit.
Modifiche alle API
- L'offset di
DrawerState
eBottomDrawerState
non è più annullabile. Restituiscono inveceFloat.NaN
per indicare l'assenza dell'offset. (Ie9855) - È stata aggiunta un'opzione per passare un
ScrollState
durante la creazione di unDropdownMenu
o di unExposedDropdownMenu
per controllare lo stato di scorrimento verticale delle voci di menu visualizzate. (Idb009, b/185304441) - Aggiungi il supporto per l'attivazione/disattivazione del gesto di
ModalBottomSheetLayout
in modo che l'utente possa configurarlo per un foglio inferiore più ricco di funzionalità (I40af0). - È stato aggiunto un parametro di colore a
BasicText
per consentire l'animazione o l'impostazione del colore del testo in modo efficiente. (Iffd88, b/246961787) - Ridenominazione della proprietà Semantica
isContainer
inisTraversalGroup
(I121f6)
Correzioni di bug
- È stata corretta l'
AlertDialog
azione di chiusura in modo che venga visualizzata sotto l'azione di conferma quando le azioni sono impilate l'una sull'altra per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alla specifica Material Design. (I029de, b/235454277)
Versione 1.5.0-alpha04
10 maggio 2023
androidx.compose.material:material-*:1.5.0-alpha04
viene ritirata. La versione 1.5.0-alpha04 contiene questi commit.
Modifiche alle API
- Stiamo spostando la dipendenza dalla densità a livello di componente. Ciò vale per i seguenti componenti:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I8fbd8)
Versione 1.5.0-alpha03
19 aprile 2023
androidx.compose.material:material-*:1.5.0-alpha03
viene ritirata. La versione 1.5.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiorna gli elementi interni di
BottomDrawer
per utilizzare le nuove APISwipeableV2
. Per questo motivo,BottomDrawerState
ora avrà solo API definite a livello di classe e non erediterà metodi/proprietà daSwipeableState
. Stiamo utilizzando la composizione con unSwipeableV2State
interno. L'offset è ora una proprietà a virgola mobile nullable. È ancora possibile accedere al valore corrente e a un valore target di scorrimento tramite le proprietà currentValue e targetValue. I metodi di livello della classe precedenti, come open/expand/close e le proprietà comeisOpen/isClosed
, continuano a essere supportati. (Iad40c, b/178529942, b/220676296)
Correzioni di bug
- Aggiornamento degli elementi interni del componente Interruttore. Ora, quando lo trascini, il pulsante mostra l'anteprima dello stato più vicino (stato di destinazione). (Id90d4)
- I contenuti dei fogli animati (ad es.
Modifier.animateContentSize
sui contenuti dei fogli) inBottomSheetScaffold
sono stati ottimizzati e ora funzionano senza problemi. (Ia913c, b/270518202, b/254446195) BottomSheetScaffold
non parteciperà più allo scorrimento nidificato quandogesturesEnabled
è impostato sufalse
. (I634f3, b/215403277)
Versione 1.5.0-alpha02
5 aprile 2023
androidx.compose.material:material-*:1.5.0-alpha02
viene ritirata. La versione 1.5.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
si arrestava in modo anomalo quando venivano forniti contenuti vuoti per gli slot. (Ib24a5, b/235588730) - Correzioni
PullRefreshIndicator
intercettazione di clic / eventi puntatore (2494256, b/271777421)
Versione 1.5.0-alpha01
22 marzo 2023
androidx.compose.material:material-*:1.5.0-alpha01
viene ritirata. La versione 1.5.0-alpha01 contiene questi commit.
Correzioni di bug
- Aggiungi un esempio di reflow di chipgroup. Aggiorna il padding orizzontale tra i chip secondari nell'esempio di chipgroup a una sola riga in modo che corrisponda alle specifiche. (I3b155)
- È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo in un caso limite al cambio di orientamento. Le animazioni del layout (ad es.Modifier.animateContentSize
) nei/sui contenuti del foglio ora funzionano senza problemi. (I2f981, b/266780234)
Versione 1.4
Versione 1.4.3
3 maggio 2023
androidx.compose.material:material-*:1.4.3
viene rilasciato senza modifiche (solo un aumento della versione).
Versione 1.4.2
19 aprile 2023
androidx.compose.material:material-*:1.4.2
viene ritirata. La versione 1.4.2 contiene questi commit.
Versione 1.4.1
5 aprile 2023
androidx.compose.material:material-*:1.4.1
viene ritirata. La versione 1.4.1 contiene questi commit.
Versione 1.4.0
22 marzo 2023
androidx.compose.material:material-*:1.4.0
viene ritirata. La versione 1.4.0 contiene questi commit.
Modifiche importanti dalla versione 1.3.0
Modifiche alle API
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559) - Modifiche incorporate nelle API per lo scorrimento in
ModalDrawer
.DrawerState
'sanimateTo
è stato sostituito dai metodi open e close e l'offset ora è annullabile. UsarequireOffset
per richiedere l'offset. (I3de9e) - È stato aggiunto il parametro
minLines
a Text,TextField
eOutlinedTextField
di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d). - È stato aggiunto il parametro
minLines
aBasicText
eBasicTextField
. Consente di impostare l'altezza minima di questi composable in termini di numero di righe (I24294, b/122476634)
Versione 1.4.0-rc01
8 marzo 2023
androidx.compose.material:material-*:1.4.0-rc01
viene rilasciato senza modifiche. La versione 1.4.0-rc01 contiene questi commit.
Versione 1.4.0-beta02
22 febbraio 2023
androidx.compose.material:material-*:1.4.0-beta02
viene ritirata. La versione 1.4.0-beta02 contiene questi commit.
Modifiche alle API
- Modifiche incorporate nelle API per lo scorrimento in
BottomSheetScaffold
. Il parametroconfirmStateChange
diBottomSheetState
è stato rinominato inconfirmValueChange
.progress
ora è esposto come valore in virgola mobile.animateTo
esnapTo
sono interni. Utilizza inveceexpand()
ecollapse()
.direction
eoverflow
sono stati rimossi.offset
è stato sostituito darequireOffset()
. (I323b4)
Correzioni di bug
- Rimozione dei ruoli semantici dalle superfici selezionabili e cliccabili, aggiornamento dei componenti che li utilizzavano per impostare i ruoli utilizzando Modifier.semantics (Ibb4ba)
- Aggiornamento secondario delle icone Material estese che modifica le icone
desktop_mac
,directions
ekitchen
piene. (I65f5e)
Versione 1.4.0-beta01
8 febbraio 2023
androidx.compose.material:material-*:1.4.0-beta01
viene ritirata. La versione 1.4.0-beta01 contiene questi commit.
Modifiche alle API
- Corregge un problema per cui
pullRefresh
non consumava la velocità, causando la visualizzazione dello scorrimento eccessivo. È stata inoltre modificata la firma API della lambdaonRelease
inModifier.pullRefresh
per restituire un valore Float per la velocità consumata (I7db65, b/266874741) - Ripristina il getter della proprietà
LocalMinimuTouchTargetEnforcement
, contrassegnalo come ritirato e reindirizza aLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Versione 1.4.0-alpha05
25 gennaio 2023
androidx.compose.material:material-*:1.4.0-alpha05
viene ritirata. La versione 1.4.0-alpha05 contiene questi commit.
Correzioni di bug
- Risolto un problema per cui lo stato di
ModalBottomSheetLayout's HalfExpanded
veniva calcolato in modo errato e il foglio sembrava fluttuare. (I8c615, b/265610459) - È stato corretto un bug in
ModalBottomSheetLayout
a causa del quale il foglio si arrestava in modo anomalo quando passava dallo stato nascosto a quello visibile in alcune circostanze. (Ia9265, b/265444789)
Versione 1.4.0-alpha04
11 gennaio 2023
androidx.compose.material:material-*:1.4.0-alpha04
viene ritirata. La versione 1.4.0-alpha04 contiene questi commit.
Modifiche alle API
- Aggiunta della proprietà semantica
IsContainer
sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379) - Contrassegna la funzione
snapTo
in Drawer come API non sperimentale. (Ib9c18, b/261425368) - È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per la chiusura del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
confirmStateChange
diModalBottomSheetState
,ModalBottomSheetState.Saver
erememberModalBottomSheetState
rinominato inconfirmValueChange
. (Ib48d1)- Maggiore annullabilità del tipo restituito delle funzioni ritirate e nascoste (Ibf7b0)
- Aggiungi
Modifier.minimumInteractiveComponentSize
. Può essere utilizzato per riservare almeno 48 dp di dimensione per disambiguare le interazioni touch se l'elemento dovesse misurare meno. (I33f58, b/258495559) - Modifiche incorporate nelle API per lo scorrimento in
ModalBottomSheetLayout
.animateTo
diModalBottomSheetState
non accetta più un parametroanimationSpec
eoffset
esposto ora è annullabile. UtilizzarequireOffset
per richiedereoffset
. (Ia2e79)
Correzioni di bug
- Il foglio di un
ModalBottomSheetLayout
ora ha una larghezza massima di 640 dp. (I71a4f, b/234927577) - È stato risolto un problema per cui
rememberPullRefreshState
non aggiornavarefreshThreshold
erefreshingOffset
nel tempo. (Ifed10, b/263159832) - L'avanzamento degli indicatori di avanzamento è ora correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
- Quando
ModalBottomSheetState
non ha ancora ricevuto ancore, aggiorneràcurrentValue
senza un'animazione quando vengono chiamatisnapTo
oanimateTo
anziché generare un'eccezione. (I2c91b) - È stato corretto lo stato di attivazione nell'implementazione di Material 2
FilterChip
. (Id326a, b/261329817) - È stato corretto un bug per cui
ModalBottomSheetLayout
si arrestava in modo anomalo se eraHalfExpanded
quando si ruotava da verticale a orizzontale. Assicurati di passare ilinitialValue
corretto, ad esempio controllando la configurazione. (Ie8df7, b/182882364) - È stato risolto un problema per cui
ModalBottomSheetLayout
si arrestava in modo anomalo se il contenuto del foglio era vuoto.ModalBottomSheetLayout
ora consente contenuti del foglio vuoti. Se il contenuto del foglio è vuoto, avrà solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)
Problema noto
- Quando esegui l'aggiornamento da
androidx.compose.foundation:1.4.0-alpha03
aandroidx.compose.foundation:1.4.0-alpha04
, potresti riscontrare un errorejava.lang.NoSuchFieldError
. Qui è stato segnalato il problema originariamente. È stata inviata una correzione, che sarà disponibile nel prossimo aggiornamento di Compose. Come soluzione alternativa, aggiorna le librerieandroidx.compose.material
eandroidx.compose.material3
all'ultima versione(1.1.0-alpha04) o esegui il downgrade diandroidx.compose.foundation
alla versione 1.4.0-alpha03.
Versione 1.4.0-alpha03
7 dicembre 2022
androidx.compose.material:material-*:1.4.0-alpha03
viene ritirata. La versione 1.4.0-alpha03 contiene questi commit.
Modifiche alle API
- Aggiunta dell'annotazione
@JvmDefaultWithCompatibility
(I8f206) - Sono state incorporate modifiche alle API
Swipeable
inModalDrawer
.animateTo
diDrawerState
è stato sostituito dai metodiopen
eclose
e l'offset ora è annullabile. UsarequireOffset
per richiedere l'offset. (I3de9e) - È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento degli elementi principali. (I2ba9d, b/203141462)
- Utilizzato in
Clickable
per ritardare correttamente le interazioni di pressione, quando i gesti potrebbero diventare eventi di scorrimento. - È stato corretto il problema per cui
Clickables
non ritardava correttamente gli effetti ripple quando veniva utilizzato all'interno di unScrollable ViewGroup
. - Aggiornamento di riquadri e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
Correzioni di bug
- È stato risolto un problema per cui
PullRefreshIndicator
poteva bloccarsi dopo la chiamata dionRefresh
, se lo stato di aggiornamento non veniva impostato su true. (Ie2416, b/248274004)
Aggiornamenti delle dipendenze
- Compose UI e Compose Material ora dipendono da Lifecycle 2.5.1. (I05ab0, b/258038814)
Versione 1.4.0-alpha02
9 novembre 2022
androidx.compose.material:material-*:1.4.0-alpha02
viene ritirata. La versione 1.4.0-alpha02 contiene questi commit.
Modifiche alle API
awaitFirstDown
ewaitForUpOrCancellation
ora accettano unPointerEventPass
per una maggiore flessibilità. (I7579a, b/212091796)- È stato aggiunto il parametro
minLines
a Text,TextField
eOutlinedTextField
di Material e Material3, che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d). - È stato aggiunto il parametro
minLines
aBasicTex
eBasicTextField
. Consente di impostare l'altezza minima di questi composable in termini di numero di righe (I24294, b/122476634)
Versione 1.4.0-alpha01
24 ottobre 2022
androidx.compose.material:material-*:1.4.0-alpha01
viene ritirata. 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 il ciclo sui gesti opera interamente all'interno diAwaitPointerEventScope
, quindi gli eventi non possono essere persi tra le iterazioni. forEachGesture()
è stato ritirato a favore diawaitEachGesture()
perché consente di perdere eventi tra i gesti. (Iffc3f, b/251260206)
Versione 1.3
Versione 1.3.1
9 novembre 2022
androidx.compose.material:material-*:1.3.1
viene ritirata. La versione 1.3.1 contiene questi commit.
Versione 1.3.0
24 ottobre 2022
androidx.compose.material:material-*:1.3.0
viene ritirata. La versione 1.3.0 contiene questi commit.
Modifiche importanti dalla versione 1.2.0
Modifica che causa un'interruzione del comportamento
- L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.
Modifiche alle API
- Aggiungi un componente Pull-To-Refresh a Compose (I29168).
- Modifica il nome del parametro da valori a valore in RangeSlider (I3b79a).
Versione 1.3.0-rc01
5 ottobre 2022
androidx.compose.material:material-*:1.3.0-rc01
viene ritirata. La versione 1.3.0-rc01 contiene questi commit.
Versione 1.3.0-beta03
21 settembre 2022
androidx.compose.material:material-*:1.3.0-beta03
viene ritirata. La versione 1.3.0-beta03 contiene questi commit.
Modifiche alle API
- Aggiungi un componente Pull-To-Refresh a Compose (I29168)
Versione 1.3.0-beta02
7 settembre 2022
androidx.compose.material:material-*:1.3.0-beta02
viene ritirata. La versione 1.3.0-beta02 contiene questi commit.
Nessuna modifica dalla versione 1.3.0-beta01
Versione 1.3.0-beta01
24 agosto 2022
androidx.compose.material:material-*:1.3.0-beta01
viene ritirata. La versione 1.3.0-beta01 contiene questi commit.
Modifica che causa un'interruzione del comportamento
L'elevazione massima supportata nelle finestre di dialogo e nei popup è stata ridotta a 8 dp.
L'elevazione massima supportata per le finestre di dialogo e i popup di Compose è stata ridotta da 30 dp a 8 dp. Questa modifica riguarda sia le finestre di dialogo personalizzate sia i popup di Material e dell'interfaccia utente. Questa modifica viene apportata per mitigare un bug di accessibilità nelle versioni di Android precedenti alla S e per garantire che i servizi di accessibilità all'interno di queste finestre possano interagire con i contenuti all'interno della finestra di dialogo o del popup.
Questa modifica ti interesserà solo se stai creando un'implementazione personalizzata di finestre di dialogo o popup con un'elevazione impostata su livelli superiori a 8 dp. Valuta la possibilità di abbassare l'elevazione della finestra di dialogo o del popup. Se devi disattivare questo nuovo comportamento, valuta la possibilità di creare un tuo dialogo o popup con il livello di elevazione desiderato. Questa operazione non è consigliata, in quanto l'accessibilità potrebbe essere compromessa e spetta allo sviluppatore garantire che la parte inferiore della finestra di dialogo o del popup sia interattiva e leggibile dai servizi di accessibilità.
Versione 1.3.0-alpha03
10 agosto 2022
androidx.compose.material:material-*:1.3.0-alpha03
viene ritirata. La versione 1.3.0-alpha03 contiene questi commit.
Versione 1.3.0-alpha02
27 luglio 2022
androidx.compose.material:material-*:1.3.0-alpha02
viene ritirata. La versione 1.3.0-alpha02 contiene questi commit.
Contributo esterno
- Risolvi il problema
AnimatedVisibility
conFloatingActionButton
in Scaffold (I3a0ae, b/224005027)
Versione 1.3.0-alpha01
29 giugno 2022
androidx.compose.material:material-*:1.3.0-alpha01
viene ritirata. La versione 1.3.0-alpha01 contiene questi commit.
Modifiche alle API
- Modifica il nome del parametro da valori a valore in
RangeSlider
(I3b79a)
Correzioni di bug
- Aggiorna l'esempio di badge per fornire una descrizione dei contenuti più significativa. (I10b9d)
Versione 1.2
Versione 1.2.1
10 agosto 2022
androidx.compose.material:material-*:1.2.1
viene ritirata. La versione 1.2.1 contiene questi commit.
Versione 1.2.0
27 luglio 2022
androidx.compose.material:material-*:1.2.0
viene ritirata. La versione 1.2.0 contiene questi commit.
Versione 1.2.0-rc03
29 giugno 2022
androidx.compose.material:material-*:1.2.0-rc03
viene ritirata. 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
androidx.compose.material:material-*:1.2.0-rc02
viene ritirata. La versione 1.2.0-rc02 contiene questi commit.
Versione 1.2.0-rc01
15 giugno 2022
androidx.compose.material:material-*:1.2.0-rc01
viene ritirata. La versione 1.2.0-rc01 contiene questi commit.
Modifiche alle API
- Le interfacce nelle librerie Compose ora sono create utilizzando i metodi di interfaccia predefiniti di jdk8 (I5bcf1)
Correzioni di bug
- Aggiorna il badge con la scheda dell'icona principale per apporre il badge all'etichetta anziché all'icona. (I90993)
Versione 1.2.0-beta03
1 giugno 2022
androidx.compose.material:material-*:1.2.0-beta03
viene ritirata. La versione 1.2.0-beta03 contiene questi commit.
Correzioni di bug
- È stato corretto un bug per cui
BottomSheetScaffold
veniva disegnato sopra l'ombra della barra delle app superiore.BottomSheetScaffold
ora tiene conto anche dello stato del foglio quando posiziona le barre di notifica: nello stato compresso, le barre di notifica vengono posizionate sopra il foglio e il FAB; nello stato espanso, le barre di notifica sono ancorate alla parte inferiore del foglio. (Ia80b5, b/187771422)
Versione 1.2.0-beta02
18 maggio 2022
androidx.compose.material:material-*:1.2.0-beta02
viene ritirata. La versione 1.2.0-beta02 contiene questi commit.
Versione 1.2.0-beta01
11 maggio 2022
androidx.compose.material:material-*:1.2.0-beta01
viene ritirata. La versione 1.2.0-beta01 contiene questi commit.
Nuove funzionalità
- Questa è la prima release beta della versione 1.2.
Modifiche alle API
- Rinomina il composable
TextFieldDefaults.BorderStroke
che disegna un tratto del bordo inOutlinedTextField
inTextFieldDefaults.BorderBox
. (I5f295)
Versione 1.2.0-alpha08
20 aprile 2022
androidx.compose.material:material-*:1.2.0-alpha08
viene ritirata. La versione 1.2.0-alpha08 contiene questi commit.
Modifiche alle API
- Il consumo parziale (in basso O posizione) è stato ritirato in
PointerInputChange
. Puoi utilizzareconsume()
per utilizzare completamente la modifica. Puoi utilizzareisConsumed
per determinare se qualcun altro ha già utilizzato la modifica. PointerInputChange::copy()
ora crea sempre una copia superficiale. Ciò significa che le copie diPointerInputChange
verranno consumate una volta che una delle copie sarà stata consumata. Se vuoi creare unPointerInputChange
non associato, utilizza il costruttore. (Ie6be4, b/225669674)
Versione 1.2.0-alpha07
6 aprile 2022
androidx.compose.material:material-*:1.2.0-alpha07
viene ritirata. La versione 1.2.0-alpha07 contiene questi commit.
Versione 1.2.0-alpha06
23 marzo 2022
androidx.compose.material:material-*:1.2.0-alpha06
viene ritirata. La versione 1.2.0-alpha06 contiene questi commit.
Modifiche alle API
- Aggiornamenti all'API Card cliccabile per seguire le modifiche all'API Surface (I56bcb)
- Aggiornamenti dell'API Material 2 Surface che aggiungono ulteriori funzioni sovraccariche per le superfici selezionabili e attivabili/disattivabili. (Ifcca5)
Versione 1.2.0-alpha05
9 marzo 2022
androidx.compose.material:material-*:1.2.0-alpha05
viene ritirata. La versione 1.2.0-alpha05 contiene questi commit.
Modifiche alle API
LazyVerticalGrid
eLazyHorizontalGrid
ora sono stabili. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
e tutte le API correlate sono state spostate nel sottopacchetto .grid. Aggiorna le importazioni da androidx.compose.foundation.lazy ad androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- È stato ripristinato il precedente cambiamento di affidarsi esclusivamente a una View per
WindowInsetsControllerCompat
ed è nuovamente necessario un Window, che è necessario per gestire alcuni flag della finestra. RitiratoViewCompat.getWindowInsetsController
a favore diWindowCompat.getInsetsController
per garantire che venga utilizzata la finestra corretta (ad esempio se la visualizzazione si trova in una finestra di dialogo). (I660ae, b/219572936) - Testo:
includeFontPadding
è ora disattivato per impostazione predefinita. I problemi di ritaglio dovuti aincludeFontPadding=false
vengono gestiti e non dovrebbe verificarsi alcun ritaglio per gli script alti. (I31c84, b/171394808) - È stata aggiunta una nuova API
LazyVerticalGrid
per definire le dimensioni dell'asse trasversale (I17723)
Versione 1.2.0-alpha04
23 febbraio 2022
androidx.compose.material:material-*:1.2.0-alpha04
viene ritirata. La versione 1.2.0-alpha04 contiene questi commit.
Modifiche alle API
Add support for filter chips
(I39a6e, b/192585545)- Aggiunta di
TextFieldDecorationBox
eOutlinedTextFieldDecorationBox
. Se li utilizzi insieme aBasicTextField
, potrai creare campi di testo personalizzati basati sui campi di testo Material Design, ma con più opzioni di personalizzazione. - È stato fornito un modo per regolare i margini interni orizzontali e verticali nei campi di testo. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Sono stati aggiunti
ComposableTarget
,ComposableTargetMarker
eComposableOpenTarget
che consentono la generazione di report in fase di compilazione quando viene chiamata una funzione componibile che ha come target un applicatore per cui non è stata progettata.Nella maggior parte dei casi, le annotazioni possono essere dedotte dal plug-in del compilatore Compose, quindi l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un'applicazione personalizzata, funzioni componibili astratte (come metodi di interfaccia), campi o variabili globali che sono espressioni lambda componibili (le variabili e i parametri locali vengono dedotti), o quando si utilizza
ComposeNode
o una funzione componibile correlata.Per gli applicatori personalizzati, le funzioni componibili che chiamano
ComposeNode
oReusableComposeNode
devono aggiungere un'annotazioneCompoableTarget
per la funzione e per tutti i tipi di parametri lambda componibili. Tuttavia, ti consigliamo di creare un'annotazione contrassegnata conComposableTargetMarker
e di utilizzare l'annotazione contrassegnata anzichéComposableTarget
direttamente. Un'annotazione componibile contrassegnata conComposableTargetMarker
equivale a unComposbleTarget
con il nome completo della classe dell'attributo come parametro di applicazione. Per un esempio di utilizzo diComposableTargetMarker
, vedianroidx.compose.ui.UiComposable
. (I38f11)
Versione 1.2.0-alpha03
9 febbraio 2022
androidx.compose.material:material-*:1.2.0-alpha03
viene ritirata. La versione 1.2.0-alpha03 contiene questi commit.
Correzioni di bug
- Esempio di gruppo di chip aggiunto (I97080, b/192585545)
Versione 1.2.0-alpha02
26 gennaio 2022
androidx.compose.material:material-*:1.2.0-alpha02
viene ritirata. La versione 1.2.0-alpha02 contiene questi commit.
Modifiche alle API
- Aggiunta di
NonRestartableComposable
ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. In questo modo, si riducono i controlli di memorizzazione (equals) generati dal compilatore per tutti i parametri ripetuti nella funzione interna chiamata. (I90490) - Aggiunta del supporto per il chip di azione (I07100, b/192585545)
Versione 1.2.0-alpha01
12 gennaio 2022
androidx.compose.material:material-*:1.2.0-alpha01
viene ritirata. La versione 1.2.0-alpha01 contiene questi commit.
Aggiornamenti delle dipendenze
- Ora dipende da Kotlin
1.6.10
.
Contributo esterno
- Ora
ModalBottomSheetState
ha un flagisSkipHalfExpanded
. Può essere impostato tramite il costruttore o aggiornato in un secondo momento impostando la proprietàisSkipHalfExpanded
diModalBottomSheetState
sutrue
. L'aggiornamento del valore diisSkipHalfExpanded
causa una ricomposizione del foglio. (I18b86, b/186669820)
Versione 1.1
Versione 1.1.1
23 febbraio 2022
androidx.compose.material:material-*:1.1.1
viene ritirata. La versione 1.1.1 contiene questi commit.
Correzioni di bug
- Correzione
NullPointerException
alle oreandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - Correzione dell'arresto anomalo causato dai contenuti degli appunti durante la lettura dagli appunti su Android. (I06020, b/197769306)
- RTL corretto in
LazyVerticalGrid
(aosp/1931080, b/207510535)
Versione 1.1.0
9 febbraio 2022
androidx.compose.material:material-*:1.1.0
viene ritirata. La versione 1.1.0 contiene questi commit.
Modifiche importanti dalla versione 1.0.0
- Supporto stabile per l'effetto di overscroll di Android 12
- Miglioramenti alle dimensioni del target tocco
- Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno lo spazio del layout per soddisfare le linee guida sull'accessibilità di Material per le dimensioni del target di tocco. Ad esempio, il touch target del pulsante si espanderà fino a raggiungere una dimensione minima di 48 x 48 dp, anche se imposti dimensioni più piccole per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti Material Design, fornendo un comportamento coerente se combini Views e Compose. Questa modifica garantisce inoltre che, quando crei la tua UI utilizzando i componenti di Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
- Supporto stabile per la barra di spostamento
- Viene eseguito l'upgrade di una serie di API sperimentali precedenti alla versione stabile
- Supporto per le versioni più recenti di Kotlin
Versione 1.1.0-rc03
26 gennaio 2022
androidx.compose.material:material-*:1.1.0-rc03
viene ritirata. La versione 1.1.0-rc03 contiene questi commit.
Modifiche al comportamento
Tieni presente che, rispetto a Compose 1.0, i componenti Material espanderanno lo spazio del layout per soddisfare le dimensioni del touch target delle linee guida per l'accessibilità di Material. Ad esempio, il touch target del pulsante si espanderà fino a raggiungere una dimensione minima di 48 x 48 dp, anche se imposti dimensioni più piccole per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti Material Design, fornendo un comportamento coerente se combini Views e Compose. Questa modifica garantisce inoltre che, quando crei la tua UI utilizzando i componenti di Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
Correzioni di bug
- Sono state aggiunte informazioni di debug migliori per lo strumento di ispezione del layout durante l'ispezione dei modificatori del target di tocco minimo. (aosp/1955036)
Versione 1.1.0-rc01
15 dicembre 2021
androidx.compose.material:material-*:1.1.0-rc01
viene ritirata. La versione 1.1.0-rc01 contiene questi commit.
Correzioni di bug
- Correzione del raggio d'angolo applicato per
Checkbox
es (I38b03, b/175198975, b/202309440)
Versione 1.1.0-beta04
1° dicembre 2021
androidx.compose.material:material-*:1.1.0-beta04
viene ritirata. La versione 1.1.0-beta04 contiene questi commit.
Nuove funzionalità
- Aggiornato per essere compatibile con Kotlin
1.6.0
Versione 1.1.0-beta03
17 novembre 2021
androidx.compose.material:material-*:1.1.0-beta03
viene ritirata. La versione 1.1.0-beta03 contiene questi commit.
Versione 1.1.0-beta02
3 novembre 2021
androidx.compose.material:material-*:1.1.0-beta02
viene ritirata. La versione 1.1.0-beta02 contiene questi commit.
Correzioni di bug
- Le increspature e altre indicazioni ora verranno ritardate solo se si trovano all'interno di un contenitore Modifier.scrollable(), anziché essere sempre ritardate per un evento di pressione. (Ibefe0, b/203141462)
Versione 1.1.0-beta01
27 ottobre 2021
androidx.compose.material:material-*:1.1.0-beta01
viene ritirata. La versione 1.1.0-beta01 contiene questi commit.
Nuove funzionalità
- Gli effetti ripple ora supportano gli stati di passaggio del mouse e di messa a fuoco, quindi il passaggio del mouse / la messa a fuoco di un componente come Button ora mostrerà l'overlay di stato corretto.
Versione 1.1.0-alpha06
13 ottobre 2021
androidx.compose.material:material-*:1.1.0-alpha06
viene ritirata. La versione 1.1.0-alpha06 contiene questi commit.
Modifiche alle API
- È stato aggiunto un sovraccarico senza figli per Layout, con una maggiore efficienza (Ib0d9a)
- Implementazione di
ExposedDropdownMenu
in base aExposedDropdownMenuBox
conTextField
eDropdownMenu
all'interno (If60b2) dismissOnOutsideClick
è stato aggiunto aPopupProperties
, sostituendodismissOnClickOutside
, che è stato ritirato. La nuova proprietà riceve la posizione del clic e i limiti dell'ancora, fornendo un controllo più preciso sull'invocazione o meno di onDismissRequest. Ad esempio, può essere utile per impedire la chiusura dell'ancora quando viene toccata.updateAndroidWindowManagerFlags
è stato aggiunto aPopupProperties
, offrendo un controllo di basso livello sui flag passati dal popup a WindowManager di Android. Il parametro della funzione lambda saranno i flag calcolati dai valori PopupProperties che generano flag WindowManager, ad esempio focusable. Il risultato della lambda saranno i flag finali che verranno passati a WindowManager di Android. Per impostazione predefinita, updateAndroidWindowManagerFlags lascia invariati i flag calcolati dai parametri. Questa API deve essere utilizzata con cautela, solo nei casi in cui il popup ha requisiti di comportamento molto specifici. (I6e9f9)
Versione 1.1.0-alpha05
29 settembre 2021
androidx.compose.material:material-*:1.1.0-alpha05
viene ritirata. La versione 1.1.0-alpha05 contiene questi commit.
Modifiche alle API
- Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. Poiché aggiunge ulteriore spazio intorno ai componenti per assicurarsi che abbiano un touch target sufficientemente grande, potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti siano le loro dimensioni visive e non tengono conto delle dimensioni del touch target. Puoi utilizzare la composizione locale sperimentale
LocalMinimumTouchTargetEnforcement
per disattivare questo comportamento in una gerarchia, ma questa funzionalità è pensata solo per essere una soluzione temporanea durante l'aggiornamento delle UI esistenti per tenere conto delle nuove dimensioni minime. (I9b966, b/149691127, b/171509422) - È stata aggiunta l'interfaccia sperimentale TextFieldColorsWithIcons, che estende TextFieldColors per fornire InteractionSource a leadingColor e trailingColor. Consente di modificare l'aspetto di TextField in base allo stato attivo. (I66923, b/198402662)
Versione 1.1.0-alpha04
15 settembre 2021
androidx.compose.material:material-*:1.1.0-alpha04
viene ritirata. La versione 1.1.0-alpha04 contiene questi commit.
Modifiche alle API
performGesture
eGestureScope
sono stati ritirati e sostituiti daperformTouchInput
eTouchInjectionScope
. (Ia5f3f, b/190493367)- È stato aggiunto
touchBoundsInRoot
aSemanticsNode
che include le dimensioni minime del touch target, in modo che gli sviluppatori possano assicurarsi che i touch target soddisfino i requisiti minimi di accessibilità. (I2e14b, b/197751214)
Correzioni di bug
- Consenti al clip di estendere i limiti del touch target oltre la regione del clip per scopi di touch target minimo. (I43e10, b/171509422)
- Aggiornamento del composable
Divider
per rispettareDp.Hairline
per il parametro di spessore per supportare il disegno di divisori di un pixel indipendentemente dalla densità del display. (I16ffb, b/196840810)
Versione 1.1.0-alpha03
1° settembre 2021
androidx.compose.material:material-*:1.1.0-alpha03
viene ritirata. La versione 1.1.0-alpha03 contiene questi commit.
Nuove funzionalità
- Aggiornamento di Compose
1.1.0-alpha03
in modo che dipenda da Kotlin1.5.30
. (I74545)
Modifiche alle API
- È stato aggiunto un metodo di test per ottenere i limiti ritagliati. (I6b28e)
- È stata aggiunta la dimensione minima del touch target a ViewConfiguration per l'utilizzo nell'input semantico e del puntatore per garantire l'accessibilità. (Ie861c)
Versione 1.1.0-alpha02
18 agosto 2021
androidx.compose.material:material-*:1.1.0-alpha02
viene ritirata. La versione 1.1.0-alpha02 contiene questi commit.
Contributo esterno
- Correggi il comportamento di SwipeableState nel caso in cui l'offset di scorrimento rientri in un errore di arrotondamento di un ancoraggio. (I03d39, b/191993377)
Versione 1.1.0-alpha01
4 agosto 2021
androidx.compose.material:material-*:1.1.0-alpha01
viene ritirata. La versione 1.1.0-alpha01 contiene questi commit.
Modifiche alle API
- Aggiornamento del metodo
DrawScope#drawImage
che utilizza i rettangoli di origine e destinazione per utilizzare un parametro FilterQuality facoltativo. Questa opzione è utile per la pixel art che deve essere pixelata quando viene ingrandita. Aggiornamento di BitmapPainter e del composable Image per utilizzare anche un parametro FilterQuality facoltativo (Ie4fb0, b/180311607) - È stato rinominato BadgeBox in BadgedBox e sono stati modificati i parametri per accettare il componente componibile Badge. Aggiunto il componente Badge, che contiene i contenuti tipici di un badge per una BadgedBox. (I639c6)
- È stato aggiunto il componente NavigationRail. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I8de77).
Correzioni di bug
- È stato aggiunto un esempio di NavigationRail allineato in basso e una demo dell'app Catalog. (I3cffc)
- Le finestre di dialogo ora seguono il comportamento di ridimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per ignorare questo comportamento. (Iffaed, b/192682388)
- È stata aggiunta la demo della barra di navigazione all'app catalogo. (I04960)
- È stata aggiunta la demo del badge all'app Catalogo. (If285d)
Versione 1.0
Versione 1.0.5
3 novembre 2021
androidx.compose.material:material-*:1.0.5
viene ritirata. La versione 1.0.5 contiene questi commit.
Correzioni di bug
- È stato corretto un arresto anomalo durante il monitoraggio delle istanze derivedStateOf. (aosp/1792247)
Versione 1.0.4
13 ottobre 2021
androidx.compose.material:material-*:1.0.4
viene ritirata. La versione 1.0.4 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornato in modo che dipenda da Kotlin
1.5.31
Versione 1.0.3
29 settembre 2021
androidx.compose.material:material-*:1.0.3
viene ritirata. La versione 1.0.3 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornato in modo che dipenda da Kotlin
1.5.30
Versione 1.0.2
1° settembre 2021
androidx.compose.material:material-*:1.0.2
viene ritirata. La versione 1.0.2 contiene questi commit.
Aggiornato per supportare la release di Compose 1.0.2
. Compose 1.0.2
è ancora compatibile con Kotlin 1.5.21
.
Versione 1.0.1
4 agosto 2021
androidx.compose.material:material-*:1.0.1
viene ritirata. La versione 1.0.1 contiene questi commit.
Aggiornamenti delle dipendenze
- Aggiornato in modo da dipendere da Kotlin
1.5.21
.
Versione 1.0.0
28 luglio 2021
androidx.compose.material:material-*:1.0.0
viene ritirata. La versione 1.0.0 contiene questi commit.
Funzionalità principali della versione 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 a 24 o superiore nel file
build.gradle
. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP7.1
. (b/194289155)
Versione 1.0.0-rc02
14 luglio 2021
androidx.compose.material:material-*:1.0.0-rc02
viene ritirata. La versione 1.0.0-rc02 contiene questi commit.
Correzioni di bug
- Le finestre di dialogo ora seguono il comportamento di ridimensionamento della piattaforma. Imposta
usePlatformDefaultWidth
su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)
Versione 1.0.0-rc01
1° luglio 2021
androidx.compose.material:material-*:1.0.0-rc01
viene ritirata. La versione 1.0.0-rc01 contiene questi commit.
Modifiche alle API
- È stato aggiunto il componente
BadgeBox
. Per informazioni sull'utilizzo, consulta la documentazione e gli esempi (I5e284). useDefaultMaxWidth
inPopupProperties
è stato rinominato inusePlatformDefaultWidth
. (I05710)- Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
- Aggiunta dell'implementazione del cursore di intervallo sperimentale (I2f4b3)
Correzioni di bug
- In linea con le specifiche di Material Design, OutlinedTextField con input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando viene utilizzata come segnaposto. Quest'ultima condizione si verifica quando non è presente alcun testo di input nel campo di testo e il campo di testo non è attivo. Con questa modifica, è cambiato anche il significato del parametro
error:Boolean
nella funzioneTextFieldColors.labelColor()
: ora restituiràfalse
anche quando l'input non è valido se l'etichetta viene utilizzata come segnaposto. (I45f78)
Versione 1.0.0-beta09
16 giugno 2021
androidx.compose.material:material-*:1.0.0-beta09
viene ritirata. La versione 1.0.0-beta09 contiene questi commit.
Modifiche alle API
- È stato aggiunto il parametro Shape a OutlinedTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
- TextOverflow viene modificato in una classe in linea. (I433af)
Correzioni di bug
- Il velo in BottomDrawer, BackdropScaffold e ModalBottomSheetLayout scomparirà e verrà passato Color.Unspecified (I2d899, b/182063309)
Regole del profilo aggiunte
Questa release aggiunge regole del profilo ai seguenti moduli di composizione (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Che cosa sono le regole del profilo?
Le regole del profilo per una raccolta sono specificate in un file di testo
baseline-prof.txt
che si trova nella directorysrc/main
o in una 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 di queste regole è un superset del formato del profilo ART leggibile, utilizzato quando si utilizzaadb shell profman --dump-classes-and-methods ...
. Queste regole assumono una delle due forme per scegliere 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>
è uno o più dei caratteriH
,S
eP
per indicare se questo metodo deve essere contrassegnato come "Hot", "Startup" o "Post Startup".<CLASS_DESCRIPTOR>
è il descrittore della classe a cui appartiene il metodo di destinazione. Ad esempio, la classeandroidx.compose.runtime.SlotTable
avrebbe 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 contenere caratteri jolly (
**
,*
e?
) per consentire a una singola regola di includere più metodi o classi.
A cosa servono le regole?
Un metodo con il flag
H
indica che si tratta di un metodo "hot" e deve essere compilato in anticipo.Un metodo con il flag
S
indica che viene chiamato all'avvio e deve essere compilato in anticipo per evitare il costo della compilazione e dell'interpretazione del metodo all'avvio.Un metodo con il flag
P
indica che viene chiamato 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 incluse nei file AAR. Quando viene creato un APK che include questi artefatti, queste regole vengono unite e utilizzate per creare un profilo binario ART compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK viene installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione per migliorarne le prestazioni, in particolare la prima esecuzione. Tieni presente che questa operazione non avrà alcun effetto sulle applicazioni sottoposte a debug.
Versione 1.0.0-beta08
2 giugno 2021
androidx.compose.material:material-*:1.0.0-beta08
viene ritirata. La versione 1.0.0-beta08 contiene questi commit.
Nuove funzionalità
Modifica dell'API che interrompe il comportamento
- MODIFICA DEL COMPORTAMENTO: ora la scheda utilizza i clic, pertanto i clic aggiunti tramite
Card(Modifier.clickable)
non vengono eseguiti. Utilizza il nuovo overload sperimentale di una scheda che accetta onClick. (Ia8744, b/183775620)- È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una scheda normale non cliccabile con
Modifier.clickable
perché la scheda non ritaglia l'indicatore di increspatura in questi casi.
- È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una scheda normale non cliccabile con
- MODIFICA DEL COMPORTAMENTO: Surface ora utilizza i clic, pertanto i clic aggiunti tramite
Surface(Modifier.clickable)
non vengono eseguiti. Utilizza il nuovo overload sperimentale di Surface che accetta onClick. (I73e6c, b/183775620)- È stato aggiunto un nuovo overload di Surface che gestisce i clic e altre funzionalità selezionabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una normale Surface non cliccabile con
Modifier.clickable
perché in questi casi Surface non ritaglia l'indicatore di increspatura.
- È stato aggiunto un nuovo overload di Surface che gestisce i clic e altre funzionalità selezionabili: indicazione, interactionSource, attivato/disattivato. Non è stato possibile utilizzare una normale Surface non cliccabile con
Modifiche alle API
FabPosition
è stata convertita in una classe inline da enum per supportare una potenziale espansione in futuro (I030fb)- È stato eseguito il refactoring degli utilizzi di enum per le classi inline per evitare problemi con le istruzioni esaustive quando vengono aggiunti nuovi valori enum. (I2b5eb)
- Aggiunge un timeout di tocco agli elementi selezionabili / attivabili per evitare di mostrare un'increspatura durante lo scorrimento / trascinamento (Ia2704, b/168524931)
- Le proprietà semantiche ContentDescription e Text non sono più valori singoli, ma elenchi. In questo modo, possono essere uniti così come sono anziché concatenati. Sono state inoltre fornite API di test migliori per utilizzare queste modifiche (Ica6bf, b/184825850)
Modifier.focusModifier()
è deprecato e sostituito daModifier.focusTarget()
(I6c860)- Sostituito l'enum
FocusState
con un'interfacciaFocusState
(Iccc1a, b/187055290) - Rimossa
LocalRippleNativeRendering
ora che l'implementazione dell'effetto increspatura basato sulla visualizzazione è stabile (I7fab3, b/188569367)
Correzioni di bug
Modifier.onGloballyPositioned()
è stato modificato per riportare 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 che verranno riportate. (Ieb67d, b/177926591)- È stato aggiunto un file README per il catalogo esistente di componenti Material per Compose. (If9191)
Versione 1.0.0-beta07
18 maggio 2021
androidx.compose.material:material-*:1.0.0-beta07
viene ritirata. La versione 1.0.0-beta07 contiene questi commit.
Modifiche alle API
- Non è più necessario utilizzare i metodi di estensione per il supporto del percorso in Navigation Compose. (I22beb, b/172823546)
Versione 1.0.0-beta06
5 maggio 2021
androidx.compose.material:material-*:1.0.0-beta06
viene ritirata. La versione 1.0.0-beta06 contiene questi commit.
Modifiche alle API
- Ripple è stato migrato per utilizzare
RippleDrawable
internamente sui dispositivi Android. Ciò significa che le animazioni a increspatura verranno eseguite su RenderThread e saranno fluide anche quando il thread UI è sotto carico, ad esempio durante la navigazione tra le schermate. Ciò non modifica la superficie dell'API di ripple, ma potrebbero essere introdotte modifiche al comportamento in seguito a questa modifica. Per facilitare la migrazione, è stato aggiuntoLocalRippleNativeRendering
: fornisci un valore difalse
a questo CompositionLocal per ripristinare l'implementazione ripple precedente all'interno di CompositionLocalProvider. Questa API è temporanea e verrà rimossa in futuro, quindi se riscontri problemi che ti costringono a utilizzarla, segnala un bug. (I902f8, b/168777351, b/183019123) - Sono state aggiunte API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017).
- Aggiunta dell'API di accessibilità
error
che consente di contrassegnare un nodo contenente input non validi (I12997, b/180584804, b/182142737)
Correzioni di bug
- Implementazione aggiornata degli inserti del catalogo di Material Compose da: https://github.com/google/accompanist/pull/365. (I25dc3)
- Gli elementi secondari di riga e colonna con peso(fill = false) non fanno più in modo che l'elemento principale riempia l'intero spazio disponibile dell'asse principale. (Ied94d, b/186012444, b/184355105)
Versione 1.0.0-beta05
21 aprile 2021
androidx.compose.material:material-*:1.0.0-beta05
viene ritirata. La versione 1.0.0-beta05 contiene questi commit.
Correzioni di bug
- Sono state aggiunte immagini dei riquadri dei componenti, selettore di temi e URL di menu più specifici al catalogo esistente di Compose Material. (I9b58e)
Versione 1.0.0-beta04
7 aprile 2021
androidx.compose.material:material-*:1.0.0-beta04
viene ritirata. La versione 1.0.0-beta04 contiene questi commit.
Modifiche alle API
- MODIFICA API: lo stato
DrawerState
non estende più SwipeableState sperimentale.- MODIFICA API:
BottomDrawerState
ora è contrassegnato come sperimentale, in modo da corrispondere al componente BottomDrawer già sperimentale (I81114, b/181656094)
- MODIFICA API:
- Rinomina
hideSoftwareKeyboard
eshowSoftwareKeyboard
suSoftwareKeyboardController
inhide()
eshow()
rispettivamente.- Fornisci l'interfaccia CompositionLocal completa per LocalSoftwareKeyboardController, consentendo di impostarla (particolarmente utile nei test) (I579a6)
- È stata aggiunta l'API di accessibilità LiveRegion. Se il nodo è contrassegnato come regione in tempo reale, i servizi di accessibilità notificheranno automaticamente all'utente le modifiche (Idcf6f, b/172590946).
Correzioni di bug
- È stata aggiunta l'implementazione del catalogo di componenti Material al modulo esistente. Al momento mancano: immagini dei riquadri dei componenti, selettore di temi (da aggiungere nelle modifiche successive). (Ie7a94)
Versione 1.0.0-beta03
24 marzo 2021
androidx.compose.material:material-*:1.0.0-beta03
viene ritirata. La versione 1.0.0-beta03 contiene questi commit.
Modifiche alle API
DefaultMonotonicFrameClock
è deprecato. La chiamatawithFrameNanos
oRecomposer.runRecomposeAndApplyChanges
senzaMonotonicFrameClock
ora genereràIllegalStateException
. (I4eb0d)- È stata aggiunta una nuova API
LeadingIconTab
per supportare la visualizzazione di un'icona e di testo in linea in una scheda. (I23267)
Contributo esterno
- [di Jossi Wolf]
BottomDrawer
ora esegue il wrapping del contenuto dello slot del riquadro.BottomDrawer
non genera unIllegalStateException
quando l'elemento principale ha un'altezza infinita. Il riquadro inferiore si aprirà in uno stato espanso se è più piccolo del 50% del contenitore. I documenti relativi aBottomDrawerState
eModalBottomSheetLayoutState
sono stati aggiornati.BottomDrawerState#isOpen
restituisce true se si trova nello stato aperto o espanso. (I87241)
Versione 1.0.0-beta02
10 marzo 2021
androidx.compose.material:material-*:1.0.0-beta02
viene ritirata. La versione 1.0.0-beta02 contiene questi commit.
Modifiche alle API
- È stata aggiunta una nuova API locale di composizione
LocalSoftwareKeyboardController
per sostituire la precedente interfacciaSoftwareKeyboardController
su TextField. (I5951e, b/168778053)
Correzioni di bug
- Applica restrizioni all'utilizzo pubblico delle API sperimentali (I6aa29, b/174531520)
- È stato modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Inizio, in linea con Row (Ib2dc7)
- È stato aggiunto un nuovo modulo e un'interfaccia utente segnaposto per un catalogo di componenti Material Compose, attualmente nidificato nelle demo dei test di integrazione esistenti. (Idfcb3)
androidx.compose.ui:ui
non dipende più da AppCompat o Fragment. Se utilizzi un ComposeView nella tua applicazione e utilizzi Fragment e/o AppCompat, assicurati di utilizzare AppCompat 1.3+ / Fragment 1.3+, queste versioni sono necessarie per impostare correttamente i proprietari del ciclo di vita e dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)
Versione 1.0.0-beta01
24 febbraio 2021
androidx.compose.material:material-*:1.0.0-beta01
viene ritirata. La versione 1.0.0-beta01 contiene questi commit.
Questa è la prima release di Compose 1.0.0 Beta.
Modifiche alle API
- I modificatori di dimensioni sono stati rinominati. Modifier.width/height/size sono stati rinominati in requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize sono stati rinominati in width/height/size. (I5b414)
- imageResource e vectorResource ora sono funzioni di estensione rispettivamente sui companion ImageBitmap e ImageVector. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
- I modificatori per il dimensionamento in base alle dimensioni intrinseche non sono più sperimentali. (I15744)
- Rimozione delle asserzioni dp (I798d2)
- Callback SoftwareKeyboardController rimosso da tutti i campi di testo da sostituire a breve con una nuova API. (Iae869, b/168778053)
- Le espressioni lambda di azione per Switch, Checkbox e RadioButton ora sono annullabili. Esempi di caselle di controllo in righe selezionabili aggiornati per utilizzare questa funzionalità. (If601b, b/171819073)
InteractionState
è stato sostituito da[Mutable]InteractionSource
- Le interfacce sono responsabili dell'emissione / raccolta degli eventi di interazione.
- Anziché passare
interactionState = remember { InteractionState() }
a componenti comeButton
eModifier.clickable()
, utilizzainteractionSource = remember { MutableInteractionSource() }
. - Invece di:
Interaction.Pressed in interactionState
, dovresti utilizzare le funzioni di estensione su InteractionSource, ad esempio InteractionSource.collectIsPressedAsState(). - Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare il flusso di interazioni. Per ulteriori informazioni, consulta la documentazione e gli esempi di InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Aggiungi l'interfaccia AccessibilityMananger e LocalAccessibilityMananger in CompositionLocals (I53520)
- Sono stati rimossi i metodi LayoutCoordinates ritirati. Utilizza la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
- Il cursore ora supporta lo stato attivato/disattivato (I6d56b, b/179793072)
- È stata creata una nuova TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
- AnimationEndReason.Interrupted viene rimosso. CancellationException verrà generata se l'animazione viene interrotta. (I2cbbc, b/179695417)
- È stato rimosso
@ExperimentalRippleApi
eRippleAlpha
è stato modificato in modo che sia una classe con proprietà anziché un'interfaccia. (I6df7c) - È stata aggiunta l'interfaccia TextFieldColors per rappresentare i diversi colori utilizzati in TextField e OutlinedTextField in stati diversi. Per l'implementazione predefinita, consulta TextFieldDefaults.textFieldColors e TextFieldDefaults.outlinedTextFieldColors.
- Il parametro isErrorValue all'interno di TextField e OutlinedTextField è stato rinominato in isError. (I831f9, b/171305338, b/168004067)
- Aggiungi il modificatore selectionGroup che consente di contrassegnare la raccolta di schede o pulsanti di opzione per scopi di accessibilità (Ie5c29)
Aggiungi LazyListState.animateScrollToItem
Questo metodo scorre in modo fluido fino a un elemento specifico dell'elenco. (I4bfd7)
ScrollableState.smoothScrollBy()
è stato rinominato inanimateScrollBy()
LazyListState.snapToItemIndex()
è stato rinominato inscrollToItem()
ScrollState.smoothScrollTo()
è stato rinominato inanimateScrollTo()
(I35ded)Tutti i composable contrassegnati con
@ReadOnlyComposable
ora vengono convalidati in fase di compilazione per garantire che chiamino solo altri@ReadOnlyComposables
(I58961)L'API TargetAnimation è stata rimossa. (If47d1, b/177457083)
La posizione di scorrimento in Modifier.verticalScroll()/horizontalScroll() è ora rappresentata con numeri interi (I81298)
I pacchetti dei metodi smoothScrollBy e scrollBy sono stati modificati in
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)FlingConfig è stato rinominato FlingBehavior e ora consente la personalizzazione dell'animazione di sospensione anziché i decadimenti predefiniti. (I02b86, b/175294473)
I modificatori di dimensioni sono stati rinominati. Modifier.width/height/size sono stati rinominati in requiredWidth/requiredHeight/requiredSize. Modifier.preferredWidth/preferredHeight/preferredSize sono stati rinominati in width/height/size. (I5b414)
defaultMinSizeConstraints è stato rinominato defaultMinSize. (I4eaae)
L'orientamento è stato spostato nel pacchetto di base. VelocityTracker è stato spostato da ui.gesture a ui.input.pointer. (Iff4a8, b/175294473)
drawerState.open() e drawerState.close() sono ora funzioni di sospensione. Utilizza rememberCoroutineScope() per ottenere l'ambito della composizione per chiamarli (I16f60, b/175294473)
Providers è stato rinominato in CompositionLocalProvider
- Il costruttore Composition non accetta più un parametro chiave ed è stato ritirato.
- currentCompositeKeyHash è diventata una proprietà componibile di primo livello anziché una funzione componibile di primo livello.
- CompositionData e CompositionGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
- ComposableLambda è diventata un'interfaccia anziché una classe concreta e non ha più parametri di tipo.
- ComposableLambdaN è stata resa un'interfaccia anziché 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
@TestOnly
clearRoots di primo livello è 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, joinedKeyLeft e joinedKeyRight sono stati rimossi. Non sono più necessari.
- Diverse API di primo livello sono state spostate e riorganizzate in file diversi. A causa della semantica della classe di file di Kotlin, la compatibilità binaria verrà interrotta, ma non quella del codice sorgente, quindi non dovrebbe essere un problema per la maggior parte degli utenti.
- (I99b7d, b/177245490)
Modifier.scrollable è stato rielaborato. Ora utilizza l'interfaccia Scrollable anziché la classe ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable ora accetta DraggableState anziché una semplice espressione lambda. Puoi creare lo stato tramite
rememberDraggableState { delta -> }
per ottenere lo stesso comportamento di prima (Ica70f, b/175294473)ZoomableController.smoothScaleBy e ZoomableController.stopAnimation sono ora funzioni di sospensione. (I7f970, b/177457083)
Sono state eliminate alcune API ritirate in precedenza (Ice5da, b/178633932)
Sono state apportate le seguenti modifiche all'API Material:
- È stato aggiunto il parametro contentPadding a Top/BottomAppBar per consentire la personalizzazione del padding predefinito.
- Riorganizzazione dei parametri in BackdropScaffold in modo che seguano le linee guida dell'API per i parametri obbligatori prima di quelli facoltativi.
- Il parametro
icon
in BottomNavigationItem è stato spostato doposelected
eonClick
. - Il parametro
alwaysShowLabels
in BottomNavigationItem è stato rinominato inalwaysShowLabel
. - È stato rinominato il parametro
bodyContent
in alcuni componenti incontent
. - Parametri riordinati in
ButtonDefaults.buttonColors()
. Tieni presente che, poiché il tipo di parametri non è cambiato, non si verificherà un errore nel codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordinamento manualmente, altrimenti il codice non funzionerà come in precedenza. - Aggiunto il parametro
secondaryVariant
adarkColors()
. Questo colore è in genere lo stesso disecondary
nel tema scuro, ma viene aggiunto per coerenza e per una maggiore personalizzazione. - Rimossi ElevationDefaults e animateElevation() dalla superficie dell'API pubblica perché non erano di uso comune / utili.
- Rinominato
onValueChangeEnd
inSlider
inonValueChangeFinished
e reso nullabile. - Il parametro
text
inSnackbar
è stato rinominato incontent
per coerenza. - È stato aggiunto il parametro
contentPadding
aDropdownMenuItem
per consentire la personalizzazione del padding predefinito econtent
è diventata un'estensione diRowScope
. ModalDrawerLayout
rinominato inModalDrawer
.BottomDrawerLayout
rinominato inBottomDrawer
.- (I1cc66)
BasicTextField ora accetta Brush anziché Color per una migliore personalizzazione (I83a36)
imageResource e vectorResource ora sono funzioni di estensione rispettivamente sui companion ImageBitmap e ImageVector. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
È stato modificato Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) e il parametro InteractionState è stato rimosso da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo del disegno degli effetti visivi e non dell'avvio di animazioni / della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture di stato devono invece avvenire entro
rememberUpdatedIndication()
. Anche il parametroindication
inModifier.indication
è stato modificato in modo che sia un parametro obbligatorio. (Ic1764, b/152525426)
Correzioni di bug
- È stata aggiunta una nuova API LocalSoftwareKeyboardController di composizione locale per sostituire la precedente interfaccia SoftwareKeyboardController in TextField. (I658b6, b/168778053)
Versione 1.0.0-alpha12
10 febbraio 2021
androidx.compose.material:material-*:1.0.0-alpha12
viene ritirata. La versione 1.0.0-alpha12 contiene questi commit.
Modifiche alle API
- Modifier.pointerInput ora richiede chiavi remember per indicare quando la coroutine di rilevamento dell'input del puntatore deve essere riavviata per nuove dipendenze. (I849cd)
- BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
- È stato aggiunto PaddingValues.Absolute, che può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
- onImeActionPerformed è deprecato. Utilizza KeyboardActions (If0bbd, b/179071523)
- Per adattarsi meglio alle convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stato rinominato BitmapPainter per essere parallelo a VectorPainter. (Iba381, b/174565889)
- Animatable.snapTo e Animatable.stop sono ora funzioni di sospensione (If4288)
- ComponentActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
- I metodi di destrutturazione e copy() sono stati rimossi da diverse classi in cui venivano utilizzati raramente. (I26702, b/178659281)
- Rendi interne le funzioni halfExpand() ed expand() in ModalBottomSheetState (Ic914e)
- È stato modificato Indication#createInstance in modo che sia @Composable ed è stato modificato LocalIndication in modo che contenga un'indicazione, non () -> Indication. (I5eeea, b/157150564)
- Per il momento, AlertDialog e DropdownMenu sono stati spostati solo su Android. È stato aggiunto il parametro PopupProperties a DropdownMenu per configurare ulteriormente il popup sottostante. (I9c443)
- loadFontResource è deprecato. Utilizza fontResource. Le API imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecate. Usa painterResource. (I6b809)
- Rimossi i parametri
toggle
etoggleModifier
da DropdownMenu e rinominatidropdownModifier
,dropdownOffset
edropdownContent
rispettivamente inmodifier
,offset
econtent
. DropdownMenu ora si comporta in modo coerente conPopup
, dove il layout principale viene utilizzato per la posizione del menu. Nella maggior parte dei casi, puoi spostaretoggle
in modo che sia un elemento di pari livello diDropdownMenu
e racchiuderli entrambi in unBox
. Per saperne di più sull'utilizzo di questa API, consulta l'esempio aggiornato nella documentazione. (I884fb) - toIntPx() è stato rinominato in roundToPx(). (I9b7e4, b/173502290)
- IntBounds è stato rinominato in IntRect e l'API è stata migliorata. (I1f6ff)
- Sono state aggiunte azioni semantiche di espansione e compressione. Aggiunta di expand e halfExpand in ModalBottomSheetState (Ib5064)
- Modifier.dragGestureFilter è stato ritirato. Utilizza invece
Modifier.pointerInput { detectDragGestures (...)}
. In alternativa, utilizza Modifier.draggable per i trascinamenti su un solo asse (I0ba93, b/175294473) - Rinominate le impostazioni di Ambienti in modo che corrispondano al nuovo nome Ambient -> CompositionLocal. Gli ambienti venivano denominati AmbientFoo, ora le variabili locali di composizione vengono denominate LocalFoo. (I2d55d)
- La selezione è stata spostata nella base. (I7892b)
- Analogamente a come abbiamo rimosso in precedenza il composable
state { 0 }
e ora promuoviamo l'utilizzo diremember { mutableStateOf(0) }
, rimuoveremo il composablesavedInstanceState { 0 }
. Devi utilizzarerememberSaveable { mutableStateOf(0) }
, che salverà e ripristinerà automaticamente il tipo utilizzato all'interno di MutableState se può essere archiviato nel bundle. Se in precedenza passavi un oggetto di salvataggio personalizzato, ora devi utilizzare un nuovo overload di rememberSaveable che ha il parametrostateSaver
. L'utilizzo sarà simile al seguente:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - È stato aggiunto ProgressBarRangeInfo.Indeterminate per contrassegnare le barre di avanzamento indeterminate per l'accessibilità (I6fe05)
@ComposableContract è stato ritirato a favore di tre annotazioni più specifiche.
@ComposableContract(restartable = false)
è diventato@NonRestartableComposable
@ComposableContract(readonly = true)
è diventato@ReadOnlyComposable
@ComposableContract(preventCapture = true)
è diventato@DisallowComposableCalls
@ComposableContract(tracked = true)
è stato rimosso.- (I60a9d)
Le utilità
emptyContent()
e(@Composable () -> Unit).orEmpty()
sono state ritirate perché non hanno più alcun impatto o valore positivo sul rendimento (I0484d)rememberSavedInstanceState() è stato rinominato in rememberSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)
I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da sinistra/destra a inizio/fine per supportare il mirroring automatico della forma nella direzione da destra a sinistra. AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti per i casi in cui non è desiderato il mirroring automatico. (I61040, b/152756983)
Modificati i parametri
text
eicon
di Changed Tab e il parametrolabel
di BottomNavigationItem in modo che siano nullabili, per comunicare meglio il comportamento del componente quando questi parametri vengono / non vengono forniti, poiché influiscono sulle dimensioni e sul layout del componente. Se al momento passiemptyContent()
per rappresentare nessun testo / icona / etichetta, devi utilizzarenull
. (I57ed4)È stato rinominato il parametro di colore contentColorFor in backgroundColor (I5bb67)
È stato ritirato TabDefaults e sostituito con TabRowDefaults. (I0f189)
È stata introdotta l'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine. È stata eseguita la refactoring dell'API ColorFilter per renderla un'interfaccia e corrispondere all'implementazione di PathEffect. (Ica1e8)
AnimatedValue/Float è ora deprecato. Utilizza invece Animatable. (I71345, b/177457083)
Aggiungi l'API SemanticsProperties.PaneTitle. (I20d5a)
Sono stati aggiunti parametri abilitati a Tab e BottomNavigationItem per impedire che siano selezionabili. È stato modificato BottomNavigationItem in RowScope.BottomNavigationItem per esprimere meglio i requisiti di layout nella relativa API. (Id683d)
tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter e pressIndicaitonGestureFilter sono stati ritirati. Utilizza invece Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestures. (I6baf9, b/175294473)
Aggiungi il parametro layoutDirection a createOutline di Shape. Ciò consente di creare forme che tengono conto della direzione del layout. (I57c20, b/152756983)
Recomposer.current()
rimosso. [Abstract]ComposeView ora per impostazione predefinita crea in modo differito Recomposer con ambito finestra basati su ViewTreeLifecycleOwner per la finestra. La ricomposizione e i tick di animazione basati su withFrameNanos vengono messi in pausa mentre il ciclo di vita dell'host è interrotto. (I38e11)
Correzioni di bug
- L'icona ora verrà scalata per adattarsi alle sue dimensioni, rispettando i modificatori di dimensione applicati. Ad esempio,
Icon(.., modifier = Modifier.size(50.dp)
ora verrà disegnato in uno spazio di 50 x 50 dp. (Ib2ba9, b/178796190)
Versione 1.0.0-alpha11
28 gennaio 2021
androidx.compose.material:material-*:1.0.0-alpha11
viene ritirata. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche alle API
- Promuove alcune API Material in modo che non siano più
@Experimental
(I5d20e) - Al parametro Descrizione contenuti sono state aggiunte le immagini e le icone. Viene utilizzato per fornire una descrizione ai servizi di accessibilità (I2ac4c).
- Modifica le interfacce dei parametri stateful di Material in modo che abbiano funzioni @Composable che restituiscono
State<T>
. AggiungeAnimatable.asState()
per semplificare la conversione di un elemento animabile in uno stato. Inoltre, modifica animateElevation in modo che sia un'estensione di sospensione su Animatable. (If613c) - Snackbar, SnackbarHost, SnackbarHostState non sono più
@ExperimentalMaterialAPI
(Id1fb5) - Modifica Tipografia, Forme e TabPosition in modo che non siano più classi di dati. Aggiunge la funzione di copia per Tipografia e Forme per sostituire quelle generate. (I40037)
- Sono state eliminate alcune API Material precedentemente deprecate (Ifaa25)
Correzioni di bug
- onCommit, onDispose e onActive sono stati ritirati a favore delle API SideEffect e DisposableEffect (If760e)
- La transizione basata su TransitionDefinition è stata ritirata (I0ac57)
- Ora è supportato Initial State in updateTransition (Ifd51d)
- WithConstraints è stato rielaborato come BoxWithConstraints e spostato in foundation.layout. (I9420b, b/173387208)
Deprecate non-suspend scrollBy, remove non-suspend scrollTo
Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere che lo scorrimento termini. Nell'ambito di questa transizione, stiamo ritirando e/o rimuovendo le versioni non sospese di queste funzioni. (Ie9ced)
Ritiro di smoothScrollBy non sospeso Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere che lo scorrimento termini. Nell'ambito di questa transizione, stiamo ritirando le versioni non sospese di queste funzioni. (I12880)
È stato introdotto
ComposeContentTestRule
, che estendeComposeTestRule
e definiscesetContent
, che è stato rimosso daComposeTestRule
. È stato aggiunto un metodo di fabbricacreateEmptyComposeRule()
che restituisce unComposeTestRule
e non avvia un'attività per te. Utilizza questo intent quando vuoi avviare l'attività durante il test, ad esempio utilizzandoActivityScenario.launch
(I9d782, b/174472899)L'increspatura utilizzata in Button e FloatingActionButton non può più essere personalizzata fornendo una nuova indicazione tramite AmbientIndication. Questo non è mai stato pensato come un modo per personalizzare questi componenti e ora li rende coerenti con gli altri componenti Material. Per personalizzare gli effetti a catena in un'applicazione, vedi RippleTheme. (I546c5)
animateAsState ora è animateFooAsState, dove Foo è il tipo di variabile animata. Ad esempio, Float, Dp, Offset e così via (Ie7e25)
BasicTextField ha ricevuto un nuovo parametro chiamato
decorationBox
. Consente di aggiungere decorazioni come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area target di tocco. (I16996)Correzione di un bug che impediva di impostare la larghezza del campo di testo Materiale su un valore inferiore a 280 dp (I78373)
Il parametro canDrag è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)
Rimuovi displaySize perché deve essere evitato. In genere è meglio utilizzare almeno le dimensioni di onRoot() o della finestra. (I62db4)
Ora Surface può avere più elementi secondari di layout. (I66a92, b/144488459)
invalidate e compositionReference() sono ora ritirati a favore di currentRecomposeScope e rememberCompositionReference rispettivamente. (I583a8)
Modifica PopupPositionProvider in modo che utilizzi le coordinate relative alla finestra, non quelle globali. Rinomina parentGlobalBounds in anchorBounds e modifica windowGlobalBounds in
windowSize: IntSize
(I2994a)Durata e Uptime verranno sostituiti da Millisecondi lunghi e questo passaggio rimuove la dipendenza dell'input del puntatore da queste classi. (Ia33b2, b/175142755, b/177420019)
AnimatedFloat.fling che accetta FlingConfig è stato rimosso. Utilizza invece suspend Animatable.animateDecay. (I4659b, b/177457083)
Gli elementi selezionabili, attivabili/disattivabili e su cui è possibile fare clic ora possono essere creati al di fuori della composizione (I0a130, b/172938345, b/175294473)
L'easing è stato modificato in un'interfaccia funzionale (Ib14e5)
ScrollableColumn/Row sono stati ritirati. L'utilizzo di ScrollableColumn è meno efficiente rispetto a LazyColumn quando hai un grande contenuto scorrevole perché con LazyColumn possiamo comporre/misurare/disegnare solo gli elementi visibili. Per evitare che gli utenti utilizzino un metodo inefficiente, abbiamo deciso di ritirare ScrollableColumn e ScrollableRow e promuovere l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non utilizzare il comportamento pigro e utilizzare 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)
ora sono funzioni di estensione, quindi devi importarle manualmente quando le utilizzi. Nuovi overload di estensione per gli array:items(items: Array)
eitemsIndexed(Array)
(I803fc, b/175562574)Rimossi i metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)
Sono stati ritirati i metodi di coordinate globali e sono stati creati nuovi metodi di coordinate basati su finestre. (Iee284)
È stato aggiunto Modifier.toolingGraphicsLayer, che aggiunge un modificatore del livello di grafica quando l'ispezione è attivata. (I315df)
FocusRequester.createRefs è ora contrassegnato come sperimentale, in quanto potrebbe cambiare. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato con @ExperimentalComposeUiApi. AccessibilityRangeInfo è stato rinominato in ProgressBarRangeInfo. stateDescriptionRange è stato rinominato in progressBarRangeInfo. AccessibilityScrollState è stato rinominato in ScrollAxisRange. horizontalAccessibilityScrollState è stato rinominato in horizontalScrollAxisRange. verticalAccessibilityScrollState è stato rinominato in verticalScrollAxisRange. (Id3148)
Utilizza TestCoroutineDispatcher nei test (I532b6)
API per la grafica vettoriale aggiornata per supportare l'analisi della colorazione applicata alla radice della grafica vettoriale. (Id9d53, b/177210509)
Versione 1.0.0-alpha10
13 gennaio 2021
androidx.compose.material:material-*:1.0.0-alpha10
viene ritirata. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
- Modifica di Velocity per includere componenti e operazioni matematiche. (Ib0447)
@ExperimentalTesting
è stato rinominato in@ExperimentalTestApi
per essere coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)- Rinomina di Position in DpOffset e rimozione di getDistance() (Ib2dfd)
- Rinomina Color.useOrElse() in Color.takeOrElse() (Ifdcf5)
- Aggiungi l'opzione di attivazione/disattivazione a foundation Strings.kt (I4a5b7, b/172366489)
- FlowRow e FlowColumn sono stati ritirati. Utilizza invece un layout personalizzato. (I09027)
- Modifier.focus() e Modifier.focusRequester() sono deprecati. Utilizza invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass è stato spostato nel modulo ui ed è stato reso interno. Utilizzi aggiornati di nativeClass nelle implementazioni di equals per utilizzare 'is MyClass' invece. (I4f734)
Correzioni di bug
- È stato aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
animate()
è ora sostituito daanimateAsState()
, che restituisce unState<T>
anziché unT
. Ciò consente prestazioni migliori, in quanto l'ambito di invalidazione può essere ristretto al punto in cui viene letto il valore State. (Ib179e)- Aggiungi l'API del ruolo Semantics e aggiungi il ruolo come parametro a SemanticsModifier selezionabile, attivabile e disattivabile. Modificato Modifier.progressSemantics in modo che possa essere utilizzato anche da Slider. (I216cd)
Versione 1.0.0-alpha09
16 dicembre 2020
androidx.compose.material:material-*:1.0.0-alpha09
viene ritirata. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
- È stata aggiunta l'API per attivare manualmente l'animazione di assestamento e il trascinamento in Modifier.swipeable (Iaa17a, b/162408885).
- Rinominate le costanti come ButtonConstants in modo che terminino con Defaults, ad esempio ButtonDefaults. Rimuove anche i prefissi
default
non necessari dalle proprietà di questi nuovi oggetti. (Ibb915, b/159982740) Compose supporta i getter delle proprietà che possono effettuare chiamate componibili. Il supporto per questa funzionalità non verrà rimosso, ma la sintassi per dichiarare un getter di proprietà come @Composable sta cambiando.
La sintassi ora ritirata per eseguire questa operazione prevedeva l'annotazione della proprietà stessa:
@Composable val someProperty: Int get() = ...
La sintassi ora corretta per farlo è annotare il getter della proprietà:
val someProperty: Int @Composable get() = ...
Entrambe le sintassi funzioneranno per un po' di tempo, ma la sintassi precedente ritirata alla fine diventerà un errore di compilazione. (Id9197)
È stata aggiunta la libreria
androidx.compose.material:material-ripple
contenente le API ripple per consentire la creazione di componenti interattivi senza la necessità del resto della libreria Material. rememberRippleIndication è stato ritirato e sostituito con rememberRipple. (Ibdf11)
Correzioni di bug
- Le espressioni lambda nei modificatori di offset ora restituiscono IntOffset anziché Float. (Ic9ee5, b/174137212, b/174146755)
È stato eseguito il refactoring di ShaderBrush per creare in modo differito un'istanza dello shader quando sono disponibili le informazioni sulle dimensioni dell'ambiente di disegno. Ciò è utile per definire gradienti che occupano i limiti di disegno completi di un elemento componibile al momento della composizione, senza dover implementare implementazioni personalizzate di DrawModifier.
API costruttori di funzioni di sfumatura deprecate a favore dei metodi di fabbrica su un oggetto sfumatura. (I511fc, b/173066799)
Modifier.focusObserver è deprecato. Utilizza Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Ritira LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Utilizza invece LazyColumn e LazyRow (I5b48c)
Dp.VectorConverter, Position.VectorConverter e così via sono stati spostati in animation-core e i vecchi VectorConverter (If0c4b) sono stati ritirati.
L'API Autofill è ora un'API sperimentale e richiede l'attivazione (I0a1ec)
Aggiunta di dichiarazioni di destrutturazione per creare istanze FocusRequester (I35d84, b/174817008)
accessibilityLabel è stato rinominato in contentDescription. accessibilityValue è stato rinominato in stateDescription. (I250f2)
Nuova funzione infiniteRepeatable per la creazione di un InfiniteRepeatableSpec (I668e5)
Il comportamento di posizionamento dei menu a discesa è stato leggermente modificato in base alle specifiche di Material. (I34c72, b/168594123)
È stato aggiunto il supporto di InteractionState per i campi di testo. (I61d91)
È stato aggiunto Modifier.clearAndSetSemantics per cancellare la semantica dei discendenti e impostarne di nuove. (I277ca)
Spostato ContentDrawScope nel modulo ui-graphics per essere con DrawScope. (Iee043, b/173832789)
Versione 1.0.0-alpha08
2 dicembre 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
e androidx.compose.material:material-icons-extended:1.0.0-alpha08
sono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.
Modifiche alle API
- MaterialTheme ora imposta i colori corretti per i punti di manipolazione della selezione e lo sfondo della selezione. Le app non Material possono utilizzare manualmente AmbientTextSelectionColors per personalizzare i colori utilizzati per la selezione. (I1e6f4, b/139320372, b/139320907)
- È stato aggiunto il controllo lint per la denominazione e la posizione dei parametri lambda componibili, per verificare la coerenza con le linee guida di Compose.
Inoltre, sono state migrate alcune API utilizzando
children
come nome per la lambda finale incontent
, in base al controllo lint e alle indicazioni. (Iec48e) - VectorAsset è stato rinominato ImageVector VectorAsset è stato spostato e rinominato Builder per essere una classe interna di ImageVector in conformità con le linee guida del consiglio API. Aggiunta di un alias di tipo di VectorAssetBuilder per collegarsi a ImageVector.Builder per la compatibilità. (Icfdc8)
- ImageAsset e i metodi correlati sono stati rinominati ImageBitmap. (Ia2d99)
- Proprietà semantiche di base spostate nell'interfaccia utente (I6f05c)
fun RippleIndication()
è stato ritirato e sostituito conrememberRippleIndication()
per coerenza con altre API. (Id8e2c)- È stato aggiunto un parametro singeLine a BasicTextField, TextField e OutlinedTextField. Imposta questo parametro su true per fare in modo che il campo di testo sia una singola riga scorrevole orizzontalmente. (I57004, b/168187755)
Correzioni di bug
- Aggiungi azione semantica Ignora (I2b706)
- Le API DrawModifier sono state spostate dal pacchetto androidx.compose.ui al pacchetto androidx.compose.ui.draw. È stato creato il file DrawModifierDeprecated.kt per includere alias di tipo/metodi helper per facilitare la migrazione dalle API deprecate a quelle attuali. (Id6044, b/173834241)
- È stato rinominato Modifier.drawLayer in Modifier.graphicsLayer Sono state aggiornate anche le classi correlate a GraphicsLayer in base al feedback dell'API. (I0bd29, b/173834241)
<T>
è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)- Aggiunte API Modifier.scale/rotate
come comodità per drawLayer.
Modifier.drawOpacity
rinominato inModifier.alpha
Modifier.drawShadow
rinominato inModifier.shadow
(I264ca, b/173208140)
- Il parametro di allineamento di Box è stato rinominato contentAlignment. (I2c957)
- I modificatori offsetPx sono stati rinominati in offset. Ora accettano parametri lambda anziché State. (Ic3021, b/173594846)
- Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1)
- È stato aggiunto il controllo lint per i parametri Modifier nelle funzioni composable. Questo controllo lint verifica la denominazione, il tipo restituito, il valore predefinito e l'ordine del parametro per garantire la coerenza con le linee guida di Compose. (If493b)
- API TextFieldValue aggiornata
- TextFieldValue.composition è ora di sola lettura
- rimossa l'eccezione generata per l'intervallo di selezione non valido (I4a675, b/172239032)
- È stato aggiunto un nuovo sovraccarico
Modifier.drawLayer()
. Richiede un blocco lambda in un nuovo GraphicsLayerScope in cui definisci i parametri del livello in modo da saltare la ricomposizione e il ricalcolo del layout quando si verifica la modifica dello stato. DrawLayerModifier è ora interno in preparazione alla migrazione della sua logica nel metodoplaceable.placeWithLayer()
di LayoutModifier (I15e9f, b/173030831) - Gli Ambients ritirati denominati con
Ambient
come suffisso sono stati sostituiti con nuove proprietà con il prefisso Ambient, seguendo le altre linee guida per Ambients e API Compose. (I33440) - È stato aggiunto un controllo lint per verificare che le fabbriche di modificatori utilizzino internamente
androidx.compose.ui.composed {}
, anziché essere contrassegnate come@Composable
. (I3c4bc) - L'argomento Semantica mergeAllDescendants è stato rinominato in mergeDescendants. (Ib6250)
- Il controllo del tempo nei test (TestAnimationClock e i relativi utilizzi) è ora sperimentale (I6ef86, b/171378521)
- Rimuovi il vecchio modulo ui-test e i relativi stub (I3a7cb)
- TextUnit.Inherit viene rinominato TextUnit.Unspecified per coerenza con le altre unità. (Ifce19)
- L'interfaccia di allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
- id è stato rinominato in layoutId per LayoutIdParentData. Measurable.id è stato rinominato in Measurable.layoutId. (Iadbcb, b/172449643)
Versione 1.0.0-alpha07
11 novembre 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
e androidx.compose.material:material-icons-extended:1.0.0-alpha07
sono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.
Modifiche alle API
- Emphasis è stato ritirato e sostituito con AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alfa dei contenuti preferiti per una parte della gerarchia, in modo simile a come AmbientContentColor rappresenta il colore dei contenuti preferiti. Ora Text and Icon utilizzano per impostazione predefinita il valore corrente di AmbientContentAlpha e puoi eseguire manualmente
color.copy(alpha = AmbientContentAlpha.current)
per ottenere lo stesso effetto nei tuoi componenti. Anziché utilizzare ProvideEmphasis, puoi fornire direttamente un valore tramite AmbientContentAlpha e utilizzare i nuovi livelli predefiniti in ContentAlpha per sostituire i vecchi EmphasisLevels. (Idf03e, b/159017896) - Aggiunge androidx.compose.material.AmbientContentColor per sostituire androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- Aggiunge androidx.compose.material.Text per sostituire androidx.compose.foundation.Text come componente di testo di alto livello e con temi. Per un componente di testo di base che non utilizza lo stile di colore / testo del tema, utilizza BasicText. (Ie6ae0)
- Aggiunta di maxLines ai campi di testo (Ib2a5b)
- Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
- Ora Surface utilizza l'elevazione assoluta (totale) quando calcola le sovrapposizioni di elevazione, quindi un Surface nidificato in un altro Surface utilizzerà l'elevazione combinata per disegnare la sovrapposizione. (I7bd2b, b/171031040)
Correzioni di bug
captureToBitmap
spostati incaptureToImage
. (I86385)- Le classi AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono state ritirate. Utilizza invece le nuove versioni disponibili nella libreria di Material. Per le applicazioni non Material, devi invece creare un tuo sistema di progettazione con ambienti di temi specifici che possono essere utilizzati nei tuoi componenti. (I74acc, b/172067770)
- foundation.Text è stato ritirato e sostituito con material.Text. Per un'API di testo di base e non soggettiva che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb)
- Rinomina KeyboardOptions come ImeOptions (I82f36)
- KeyboardType e ImeAction sono stati spostati in KeyboardOptions (I910ce)
- BaseTextField è stato ritirato. Utilizza invece BasicTextField. (I896eb)
- L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora SubcomposeLayout può essere utilizzato senza aggiungere @OptIn (I708ad)
- FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
- API Icon aggiornata per accettare Color.Unspecified come possibile colore di tinta che disegnerà l'asset o il pittore fornito senza un ColorFilter. In precedenza, i tentativi di ignorare la colorazione con Color.Unspecified avrebbero colorato con un colore trasparente, con il risultato di non visualizzare nulla. (I049e2, b/171624632)
- relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline, per specificare più facilmente le distanze dai limiti del layout alle linee di base del testo. (I0440a, b/170633813)
- LaunchedTask è stato rinominato LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. LaunchedEffect senza parametri del soggetto non è consentito per incoraggiare le best practice. (Ifd3d4)
- MeasureResult è stato spostato fuori da MeasureScope. (Ibf96d, b/171184002)
- Diversi simboli correlati al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424)
Versione 1.0.0-alpha06
28 ottobre 2020
androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
e androidx.compose.material:material-icons-extended:1.0.0-alpha06
sono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.
Modifiche alle API
- androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non vuoi utilizzare la libreria Material, puoi anche utilizzare il componente / modificatore Image.paint() con un Painter. (I9f622)
- Aggiunge FloatingActionButtonElevation per rappresentare l'elevazione utilizzata dai FAB in stati diversi. Consulta FloatingActionButtonConstants.defaultElevation() per l'implementazione predefinita (I2d4f5)
- Aggiunge l'interfaccia SwitchColors per rappresentare i colori utilizzati da un interruttore in stati diversi. Consulta SwitchConstants.defaultColors per personalizzare questi colori. (I93805)
- Aggiunge le interfacce ButtonElevation e ButtonColors per rappresentare l'elevazione e i colori utilizzati dai pulsanti in diversi stati. Per personalizzare questi parametri, consulta le funzioni predefinite in ButtonConstants. (Ic5b7b)
- Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un pulsante di opzione in stati diversi. Consulta RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati nei diversi stati. (I74130)
- Aggiunge l'interfaccia CheckboxColors per rappresentare i colori utilizzati da una casella di controllo in stati diversi. Consulta CheckboxConstants.defaultColors() per personalizzare i colori utilizzati nei diversi stati. (I7dbdb)
Correzioni di bug
- I componenti Material non impostano più l'elevazione come zIndex. Ciò significa che all'interno dello stesso genitore il bambino con l'ombra più grande non verrà disegnato automaticamente sopra il bambino con l'ombra più piccola. Se hai ancora bisogno di questo comportamento, imposta Modifier.zIndex() manualmente dove necessario (I70417, b/170623932).
- VectorPainter è stato ritirato a favore di rememberVectorPainter per indicare meglio che l'API componibile sfrutta internamente "remember" per rendere persistenti i dati tra le composizioni. (Ifda43)
- Attiva le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3)
- È stata aggiunta l'opzione della tastiera a una sola riga a CoreTextField (I72e6d)
- È stata rinominata l'API Radius in CornerRadius per esprimere meglio il modo in cui viene utilizzata in tutto Compose. Documentazione aggiornata per indicare che i raggi d'angolo negativi sono bloccati a zero. (I130c7, b/168762961)
- DrawScope e
ContentDrawScope sono stati sottoposti a refactoring per essere interfacce
anziché classi astratte
- Implementazione di CanvasDrawScope di DrawScope
- Implementazioni sottoposte a refactoring di DrawScope per utilizzare CanvasScope
- Creato DrawContext per racchiudere le dipendenze per DrawScope
- Rimossi metodi obsoleti in DrawScope (I56f5e)
- Box è stato reso una funzione in linea. (Ibce0c, b/155056091)
Versione 1.0.0-alpha05
14 ottobre 2020
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
e androidx.compose.material:material-icons-extended:1.0.0-alpha05
sono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.
Modifiche alle API
- I popup e le finestre di dialogo ora ereditano FLAG_SECURE dalla finestra principale. È stata aggiunta anche l'opzione per configurare questa impostazione in modo esplicito (I64966, b/143778148, b/143778149).
- Modifier.swipeable ora ha soglie di 56 dp per gli stati per impostazione predefinita (Iab825, b/168610267)
- Tutti gli stati dello scaffold contrassegnati come @Stable. drawerGesturesEnabled in ScaffoldState spostato in Scaffold. (I36645, b/168297016)
- Rimuove il tipo Nullable dai parametri lambda di Scaffold. Puoi utilizzare emptyContent() per rappresentare l'assenza di contenuti per un determinato parametro. (I2b318, b/157633857, b/158551084)
Depreca le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambient AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando
.current
nella proprietà ambient, come per qualsiasi altro ambient. Questa modifica è stata apportata per coerenza e per evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà ambientali per descriverne meglio lo scopo come segue:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Aggiunge AmbientElevationOverlay, che consente di personalizzare / disattivare l'overlay di elevazione predefinito applicato alle superfici nel tema scuro. (I5b74d)
Correzioni di bug
- Nell'ambito della standardizzazione dei valori sentinella per le classi inline, rinomina Color.Unset in Color.Unspecified per coerenza con altre classi inline (I97611, b/169797763)
- Viene introdotto TextOverflow.None. Quando l'overflow è None, Text non gestirà più l'overflow e segnalerà le dimensioni effettive a LayoutNode. (I175c9, b/158830170)
- launchInComposition è stato rinominato LaunchedTask per rispettare le linee guida dell'API Compose (I99a8e)
- OnPositionedModifier è stato rinominato in OnGloballyPositionedModifier e onPositioned() è stato rinominato in onGloballyPositioned(). (I587e8, b/169083903)
Versione 1.0.0-alpha04
1° ottobre 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
e androidx.compose.material:material-icons-extended:1.0.0-alpha04
sono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
- Espone i parametri InteractionState nei componenti Material con stato, per consentire l'innalzamento dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
- Modifica i parametri
*color
in RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato, nonché la modifica dell'animazione dei colori tra gli stati, se necessario. Per ulteriori informazioni, consulta le nuove funzioni di colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532) - È stato rinominato rememberBackdropState in rememberBackdropScaffoldState ed è stato aggiunto un parametro aggiuntivo per l'orologio dell'animazione. È stato rinominato il parametro backdropScaffoldState di BackdropScaffold in scaffoldState. Rinominate BackdropConstants in BackdropScaffoldConstants. (Ib644d)
- È stato aggiunto il componente sperimentale BottomSheetScaffold. (Ie02f0, b/148996320)
- È stato aggiunto il componente sperimentale ModalBottomSheetLayout. (Ic209e, b/148996320)
- Rinomina ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation in defaultElevation e ora restituisce un valore Dp anziché un AnimatedValue. (I5f3ed)
Correzioni di bug
- Aggiornamento di molte API grafiche
- API di trasformazione di rotazione e scalabilità aggiornate per utilizzare un singolo parametro Offset per rappresentare la coordinata del punto di rotazione anziché parametri float separati per le coordinate x/y in DrawScope e DrawTransform
- Rimossi i metodi Rect.expandToInclude e Rect.join
- Aggiornamento della documentazione sul raggio per indicare ovale oltre a ellittico
- È stata aggiunta la documentazione per indicare che il costruttore pubblico per la classe Radius incorporata non deve essere chiamato direttamente, ma gli oggetti Radius devono essere istanziati tramite i relativi costruttori di funzioni
- Sono state rimosse le API RoundRect per eseguire query su topRight, bottomRight, bottomCenter e così via.
- Rect.shift ritirato a favore di Rect.translate
- Sono state rimosse le API RoundRect.grow e Rect.shrink
- È stato rinominato RoundRect.outerRect in Rect.boundingRect
- Rimozione dei metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
- Rinominato RoundRect.longestSide in RoundRect.maxDimension
- È stato rinominato RoundRect.shortestSide in RoundRect.minDimension
- Modifica di RoundRect.center in modo che sia una proprietà anziché una funzione
- Aggiornamento del costruttore RoundRect per utilizzare le proprietà Radius anziché i singoli parametri per i valori del raggio x/y
- Sono state rimosse le API Size che presupponevano che si trattasse di un rettangolo con origine in 0,0
- È stata aggiunta un'API di eliminazione a Radius
- È stata eseguita la migrazione di varie funzioni di estensione RoundRect in modo che siano invece proprietà
- (I8f5c7, b/168762961)
- foundation.Box è stato ritirato. Utilizza invece foundation.layout.Box. (Ie5950, b/167680279)
- L'elenco filtri è stato rinominato in Box. Il Box esistente verrà ritirato a favore del nuovo Box in compose.foundation.layout. Il comportamento della nuova casella è quello di impilare gli elementi secondari uno sopra l'altro quando ne ha più di uno. Questo è diverso dalla casella precedente, che si comportava in modo simile a una colonna. (I94893, b/167680279)
- I parametri di decorazione del riquadro sono stati ritirati. Se vuoi aggiungere decorazioni/spazi interni alla casella, utilizza i modificatori (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Aggiornamento di molte API grafiche
- API DrawScope aggiornate con metodi di trasformazione con ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo l'invocazione del callback
- È stata aggiornata la documentazione di clipPath in modo che faccia riferimento a Path anziché al rettangolo arrotondato
- Spaziatura fissa nella documentazione per il parametro right in clipPath
- Rinominate DrawScope.drawCanvas in drawIntoCanvas e rimosso il parametro size
- I parametri dx/dy nel metodo inset sono stati rinominati in orizzontale e verticale
- È stato aggiunto l'override dell'inset che fornisce lo stesso valore di inset a tutti e quattro i limiti
- È stata rimossa la documentazione sul metodo di inserimento che indicava che l'inserimento sarebbe stato applicato a tutti e quattro i lati
- Documentazione aggiornata per la classe Rect
- Commenti aggiornati sui parametri Rect per corrispondere allo stile kdoc
- Rimossi Rect.join e Rect.expandToInclude
- È stato creato l'overload per Rect.translate(offset) e Rect.shift è stato ritirato
- (If086a, b/167737376)
- Abbiamo impedito le importazioni statiche dei contenuti degli ambiti del layout (ad es. alignWithSiblings in RowScope). Deve essere utilizzata l'alternativa di ambito esplicito:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Versione 1.0.0-alpha03
16 settembre 2020
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
e androidx.compose.material:material-icons-extended:1.0.0-alpha03
sono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.
Modifiche alle API
- Rinomina il parametro
onSelect
diBottomNavigationItem
inonClick
(I91925, b/161809324) - Aggiunge il parametro InteractionState a BottomNavigationItem e Tab, consentendo di sollevare questo stato e di regolare l'aspetto del componente in stati diversi. (Ia3e9e, b/168025711)
- Rimuove i parametri
disabledBackgroundColor
edisabledContentColor
dai pulsanti. Al loro posto, devi utilizzare le nuove funzioni di colore predefinite all'interno di ButtonConstants. Se stai già impostando contentColor/backgroundColor in modo esplicito, devi utilizzare queste funzioni predefinite e personalizzare alcuni o tutti i parametri per evitare di sovrascrivere il colore per gli stati attivati/disattivati. (If9b52) - Il colore di sfondo del campo di testo non applica più implicitamente l'alpha di trasparenza. Al contrario, qualsiasi colore fornito tramite il parametro backgroundColor verrà applicato direttamente. (Iecee9, b/167951441)
- InnerPadding è stato rinominato PaddingValues. (I195f1, b/167389171)
- I parametri
resistanceFactorAtMin
eresistanceFactorAtMax
inModifier.swipeable
sono stati sostituiti da un unico parametro di resistenza. Un nuovo metododefaultResistanceConfig
è stato aggiunto inSwipeableConstants
. (I54238) - Aggiunge il supporto per l'elevazione animata con stato per Button e FloatingActionButton. L'elevazione ora viene animata tra gli stati predefinito e premuto. Per personalizzare l'elevazione tra gli stati, utilizza
ButtonConstants.defaultAnimatedElevation()
eFloatingActionButtonConstants.defaultAnimatedElevation()
anziché impostare un valore Dp piatto in tutti i casi. (I37925) - L'etichetta è diventata un parametro facoltativo all'interno di TextField e OutlinedTextField (I267f6, b/162234081)
Correzioni di bug
- Le funzioni di test globali come
onNode
owaitForIdle
sono ora deprecate. Esegui la migrazione alle nuove controparti definite in ComposeTestRule (I7f45a). - DpConstraints e le API che lo utilizzano sono state ritirate. (I90cdb, b/167389835)
- I parametri minWidth e maxWidth di widthIn sono stati rinominati in min e max. Lo stesso vale per preferredWidthIn, heightIn e preferredHeightIn. (I0e5e1, b/167389544)
- Rimuovi le azioni semantiche di scorrimento in avanti/indietro. Sono stati aggiunti passaggi in AccessibilityRangeInfo. (Ia47b0)
- Gli utilizzi di gravity sono stati rinominati in modo coerente in align o alignment nelle API di layout. (I2421a, b/164077038)
- Sono stati aggiunti onNode e altri metodi globali a ComposeTestRule, in quanto quelli globali attuali verranno ritirati. (Ieae36)
createAndroidComposeRule
eAndroidInputDispatcher
spostati daandroidx.ui.test.android
aandroidx.ui.test
(Idef08, b/164060572)
Versione 1.0.0-alpha02
2 settembre 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
e androidx.compose.material:material-icons-extended:1.0.0-alpha02
sono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stato aggiunto un componente BackdropScaffold sperimentale. (Iad908)
Correzioni di bug
- Matrix4 è stato sostituito da Matrix. Tutte le altre parti del pacchetto vectormath sono state rimosse. (Ibd665, b/160140398)
Versione 1.0.0-alpha01
26 agosto 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
e androidx.compose.material:material-icons-extended:1.0.0-alpha01
sono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.
Problema noto
= Il primo carattere di un materiale TextField
non può essere rimosso utilizzando il tasto Backspace (b/165956313)
Versione 0.1.0-dev
Versione 0.1.0-dev17
19 agosto 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
e androidx.compose.material:material-icons-extended:0.1.0-dev17
sono rilasciati. La versione 0.1.0-dev17 contiene questi commit.
Modifiche alle API
- RadioGroup e RadioGroupItems, precedentemente ritirati, sono stati rimossi. Utilizza invece Row e RadioBotton (I381b7, b/163806637)
- Sono stati rimossi i callback onFocusChanged da TextField. Utilizza Modifier.focusObserver. (I51089, b/161297615)
- Modifier.drawBorder è stato ritirato. Utilizza invece Modifier.border. La classe di dati del bordo è stata sostituita da BorderStroke (I4257d, b/158160576)
- Sono state rinominate alcune proprietà in SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. È stata aggiunta una funzione rememberSwipeableState per creare SwipeableStates. (I2fc9c, b/163129614, b/163132293)
- È stato aggiunto il supporto per le snackbar con posizionamento e accodamento corretti. Accedervi tramite la funzione di sospensione
SnackbarHostState.showSnackbar
. Inoltre:- Sono stati aggiunti i componenti SnackbarHost. Ospita le barre di notifica in base allo stato ed è responsabile della transizione tra le barre di notifica.
- È stato aggiunto SnackbarHostState per consentire il controllo di snackbar e host di snackbar e per separarlo da ScaffoldState. Puoi accedere a questo stato anche tramite
scaffoldState.snackbarHostState
. - È stato aggiunto l'overload dello snackbar per supportare l'interfaccia comune tra snackbarHostState e gli snackbar stessi. (I79aaa)
- Aggiunge il parametro enabled a IconButton e riordina i parametri in IconToggleButton (I0a941, b/161809385, b/161807956)
- La versione di ListItem con API basata su stringhe è stata rimossa. Utilizza la versione dello slot. (Ib8f57, b/161804681)
- È stato rimosso il componente FilledTextField deprecato. Utilizza invece TextField per ottenere l'implementazione Material Design del campo di testo compilato. (I5e889)
- AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
- Sono stati aggiunti parametri in Modifier.swipeable per modificare la quantità di resistenza quando si scorre oltre i limiti. Parametri [min/max]Value rimossi. (I93d98)
- È stato aggiunto il parametro backgroundColor a LinearProgressIndicator ed è stato rimosso il padding interno da CircularProgressIndicator. È stata aggiunta la nuova costante ProgressIndicatorConstants.DefaultProgressAnimationSpec, che può essere utilizzata come AnimationSpec predefinita per l'animazione dell'avanzamento tra i valori (If38b5, b/161809914, b/161804677).
- Parametro facoltativo velocityThreshold aggiunto a Modifier.swipeable. (I698ba)
- bottomBarSize, fabSize e altri e non più disponibili in ScaffoldState. Utilizza Modifier.onPosition sul componente di cui vuoi conoscere le dimensioni. I parametri contentColor e Modifier sono stati aggiunti a Scaffold (Ic6f7b, b/161811485, b/157174382)
- Rinomina e riordina alcuni parametri nella scheda per coerenza con altre API (Ia2d12, b/161807532)
- Divide TabRow in TabRow e ScrollableTabRow, rimuovendo isScrollable da TabRow. Espone anche edgePadding in ScrollableTabRow, che consente di controllare lo spazio libero prima / dopo le schede. (I583e8, b/161809544)
- L'oggetto
TabRow
è stato rimosso e sostituito con TabConstants. TabRow.TabPosition è stato spostato al primo livello (TabPosition) e indicatorContainer è stato rinominato inindicator
. Consulta gli esempi e la documentazione per informazioni dettagliate su come utilizzare l'API aggiornata e i valori predefiniti. (I54d45, b/161809544) - Il parametro thresholds in Modifier.swipeable è stato modificato. Ora accetta una coppia di stati (di tipo T) e restituisce la soglia tra loro sotto forma di ThresholdConfig. È stato aggiunto un parametro dismissThresholds a SwipeToDismiss, che è una funzione lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
- Il parametro del colore della scheda è stato rinominato in backgroundColor (I01fc1, b/161809546)
- Ora lo snackbar ha colori di sfondo e dei contenuti personalizzabili (I238f2, b/161804381)
- Sono stati aggiunti parametri di personalizzazione di modifier, backgroundColor, contentColor e scrimColor ai riquadri estraibili (I23655, b/161804378)
- Il composable
state { ... }
è ora ritirato a favore di chiamate esplicite aremember { mutableStateOf(...) }
per maggiore chiarezza. In questo modo si riduce la superficie complessiva dell'API e il numero di concetti per la gestione dello stato e si adatta al patternby mutableStateOf()
per la delega delle proprietà della classe. (Ia5727) - Il parametro di spaziatura interna del pulsante è stato rinominato in contentPadding (Id252e, b/161809394)
- Aggiungi un componente sperimentale del materiale SwipeToDismiss. (I129e5)
Correzioni di bug
- Rimossi
onChildPositioned
eOnChildPositionedModifier
. Gli sviluppatori devono utilizzareonPositioned
eOnPositionedModifier
nel layout secondario. (I4522e, b/162109766) - Aggiunta della lambda mergePolicy a SemanticsPropertyKey. Può essere utilizzato per definire un criterio personalizzato per la semantica di mergeAllDescendants unione. Il criterio predefinito prevede l'utilizzo del valore principale se già presente, altrimenti del valore secondario. (Iaf6c4, b/161979921)
- IntSize è ora una classe inline (I2bf42)
PlacementScope.placeAbsolute()
è stato rinominato inPlacementScope.place()
e il precedentePlacementScope.place()
è stato rinominato inPlacementScope.placeRelative()
. Di conseguenza, il metodoPlacementScope.place()
non rifletterà più automaticamente la posizione nei contesti da destra a sinistra. Se vuoi, utilizzaPlacementScope.placeRelative()
. (I873ac, b/162916675)- PxBounds è stato ritirato a favore di Rect. Sono stati aggiornati tutti gli utilizzi di PxBounds con rect e sono state aggiunte annotazioni di deprecazione/sostituzione appropriate per facilitare la migrazione. (I37038, b/162627058)
- RRect è stato rinominato RoundRect per adattarsi meglio ai pattern di denominazione di Compose Sono stati creati costruttori di funzioni simili a RRect e sono stati ritirati i costruttori di funzioni RRect (I5d325)
Versione 0.1.0-dev16
5 agosto 2020
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
e androidx.compose.material:material-icons-extended:0.1.0-dev16
sono rilasciati. La versione 0.1.0-dev16 contiene questi commit.
Modifiche alle API
- Colori ora è una classe finale anziché un'interfaccia. Anziché estendere e fornire un'implementazione personalizzata, devi creare un nuovo ambiente per l'oggetto tema personalizzato e accedere all'oggetto tema tramite il nuovo ambiente nei tuoi componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
- È stato rinominato ColorPalette in Colors per mappare meglio il sistema di colori Material e rimuovere la confusione sul fatto che ColorPalette sia un oggetto di temi "generico", anziché un'implementazione specifica del sistema di colori Material. Inoltre, rinomina lightColorPalette e darkColorPalette rispettivamente in lightColors e darkColors. (I9e976, b/161812111)
- Rinomina il parametro
text
di BottomNavigationItem inlabel
,onSelected
inonSelect
,activeColor
inselectedContentColor
,inactiveColor
inunselectedContentColor
e aggiorna l'ordine dei parametri in modo che corrisponda alle linee guida. (Icb605, b/161809324) Modifier.stateDraggable
è stato completamente rielaborato e rinominato in Modifier.swipeable. È stata introdotta una nuova classe SwipeableState e DrawerState e BottomDrawerState sono stati sottoposti a refactoring per ereditare da questa classe. [Modal/Bottom]DrawerLayout non accetta più un parametro onStateChange. (I72332, b/148023068)- Il pacchetto foundation.shape.corner è stato compresso in foundation.share (I46491, b/161887429)
- È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
- Material FilledTextField è stato rinominato TextField e TextField di base è stato rinominato BaseTextField per rendere l'API più semplice da scoprire e utilizzare (Ia6242, b/155482676)
Correzioni di bug
- OnChildPositioned è stato ritirato. Utilizza OnPositioned sul figlio. (I87f95, b/162109766)
- Correzioni generali dell'API Address (I077bc)
- Rimuovi l'interfaccia OffsetBase inutilizzata
- Allinea le classi Offset e IntOffset in modo da avere una superficie API coerente
- Rinomina IntOffset.Origin in IntOffset.Zero per coerenza con l'API Offset
- Il metodo nativeCanvas è stato spostato dall'interfaccia Canvas per consentire ai consumatori di creare le proprie istanze Canvas
- È stata creata la classe stub EmptyCanvas per eseguire il refactoring di DrawScope in modo che sia un parametro non nullo anziché lateinit e garantire la non nullabilità del campo
- Rinominate le enumerazioni ClipOp in Pascal Case
- Rinominate le enumerazioni FilterQuality in Pascal Case
- Rinominate le enumerazioni StrokeJoin in Pascal Case
- Rinominate le enumerazioni PointMode in Pascal Case
- Rinominate le enumerazioni PaintingStyle in Pascal Case
- Rinomina le enumerazioni PathFillType in Pascal Case
- Rinomina gli enum StrokeCap in Pascal Case
- Implementazione di DrawCache aggiornata per non utilizzare più i parametri lateinit
- Aggiornamento di DrawScope per non utilizzare più la delega pigra per i parametri interni fillPaint e strokePaint
- Aggiornamento del composable Image per evitare l'utilizzo di Box per un overhead inferiore
- Aggiornamento della classe Outline per includere annotazioni @Immutable
- Aggiornamento di PathNode per includere annotazioni @Immutable per ogni istruzione del percorso
- Aggiornamento della composizione secondaria Vector per rimuovere i controlli condizionali ridondanti per l'uguaglianza, poiché la composizione li gestisce già
- Metodi costruttori del componente complementare rettangolare ritirati a favore dei costruttori di funzioni
- Classi Brush e costruttori di funzioni aggiornati con le API @Immutable e @Stable
- Aggiornamento dell'enumerazione VertexMode in PascalCase
- Aggiornamento del metodo selectPaint di DrawScope per sovrascrivere in modo condizionale i parametri del tratto sulla pittura se sono cambiati
- Aggiornamento di Size per aggiungere l'API di destrutturazione, rinominare UnspecifiedSize in Unspecified e rimuovere i metodi inutilizzati
- Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
SemanticsNodeInteraction.performPartialGesture
rimosso. UtilizzaSemanticsNodeInteraction.performGesture
. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
rinominato inSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)- Le API per il supporto della scrittura 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.deternimateProgress è stato rinominato in Modifier.progressSemantics (I9c0b4)
- Aggiorna material-icons-extended con le ultime icone aggiunte a Material.io/icons (I4b1d3)
- Richiedi che il tipo T sia specificato in modo esplicito per transitionDefinition. (I1aded)
- Modifier.plus è stato ritirato, utilizza invece Modifier.then. "Poi" ha un segnale di ordinamento più forte e impedisce anche di digitare
Modifier.padding().background() + anotherModifier
, che interrompe la catena e rende più difficile la lettura (Iedd58, b/161529964) - È stato rinominato AndroidComposeTestRule in createAndroidComposeRule. (I70aaf)
- Aggiungi SemanticsMatcher isFocused() e isNotFocused(). (I0b760)
- È stato rimosso
BaseGestureScope.globalBounds
, che non deve essere utilizzato nei test. Utilizza invece le coordinate locali del nodo con cui stai interagendo. (Ie9b08) - Posizione fissa del popup sui display con ritaglio. (Idd7dd)
- Modifier.drawBackground è stato rinominato in Modifier.background (I13677)
Versione 0.1.0-dev15
22 luglio 2020
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
e androidx.compose.material:material-icons-extended:0.1.0-dev15
sono rilasciati. La versione 0.1.0-dev15 contiene questi commit.
Aggiornamento delle dipendenze
- Per utilizzare la versione
0.1.0-dev15
di Compose, devi aggiornare le dipendenze in base ai nuovi snippet di codice mostrati sopra nella sezione Dichiarazione delle dipendenze.
Modifiche alle API
L'annotazione
@Model
è ora deprecata. Utilizza state e mutableStateOf come alternative. Questa decisione di ritiro è stata presa dopo un'attenta discussione.Giustificazione
La motivazione include, a titolo esemplificativo:
- Riduce l'area di superficie e i concetti delle API che dobbiamo insegnare
- Più in linea con altri toolkit comparabili (Swift UI, React, Flutter)
- Decisione reversibile. Possiamo sempre ripristinare
@Model
in un secondo momento. - Rimuove l'utilizzo di casi limite e le domande difficili a cui rispondere sulla configurazione di
@Model
come elementi da gestire. @Model
classi di dati, equals, hashcode e così via.- Come faccio a impostare alcune proprietà come "osservate" e altre no?
- Come faccio a specificare l'uguaglianza strutturale e referenziale da utilizzare nell'osservazione?
- Riduce la "magia" nel sistema. Riduce la probabilità che qualcuno presuma che il sistema sia più intelligente di quanto non sia (ad esempio, che sappia come differenziare un elenco)
- Rende più intuitiva la granularità dell'osservazione.
- Migliora la refactorability da variabile a proprietà nella classe
- Potenzialmente apre le possibilità di eseguire ottimizzazioni specifiche per stato realizzate a mano
- Si allinea maggiormente al resto dell'ecosistema e riduce l'ambiguità nei confronti dello stato immutabile o del nostro "stato mutabile".
Note sulla migrazione
Quasi tutti gli utilizzi esistenti di
@Model
vengono trasformati in modo abbastanza semplice in uno dei due modi. L'esempio riportato di seguito include una classe@Model
con due proprietà solo a scopo esemplificativo e viene utilizzata in un elemento componibile.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
Alternativa 1: utilizza
State<OriginalClass>
e crea copie.Questo approccio è semplificato dalle classi di dati di Kotlin. In sostanza, trasforma tutte le proprietà
var
precedenti in proprietàval
di una classe di dati, quindi utilizzastate
anzichéremember
e assegna il valore di stato alle copie clonate dell'originale utilizzando il metodo praticocopy(...)
della classe di dati.È importante notare che questo approccio funziona solo quando le uniche mutazioni a quella classe sono state eseguite nello stesso ambito in cui viene creata l'istanza
State
. Se la classe si modifica internamente al di fuori dell'ambito di utilizzo e ti affidi all'osservazione di questa modifica, l'approccio successivo è quello che devi utilizzare.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
Alternativa 2: utilizzare mutableStateOf e i delegati di proprietà
Questo approccio è semplificato dai delegati di proprietà di Kotlin e dall'API
mutableStateOf
, che consente di creare istanze MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietàvar
della classe originale con le proprietàvar
conmutableStateOf
come delegato della proprietà. Il vantaggio è che l'utilizzo della classe non cambierà, ma solo la sua implementazione interna. Il comportamento non è completamente identico all'esempio originale, in quanto ogni proprietà viene ora osservata/sottoscritta individualmente, quindi le ricomposizioni che vedi dopo questo refactoring potrebbero essere più ristrette (il che è un bene).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Callback onFocusChange nei campi di testo rinominato in onFocusChanged (Ida4a1)
Aggiunto il parametro thresholds in stateDraggable per specificare le soglie tra gli ancoraggi. È stato utilizzato per impostare una soglia di 56 dp nel riquadro inferiore. Inoltre, BottomDrawerLayout ora utilizza un'enumerazione BottomDrawerState separata. (I533fa)
Rimuove Modifier.ripple precedentemente ritirato. Ora Clickable utilizza l'effetto increspatura come indicatore predefinito (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare Clickable e ottenere l'effetto increspatura senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'increspatura, puoi creare manualmente un RippleIndication e passarlo a clickable come parametro di indicazione. (I663b2, b/155375067)
Rimozione dell'override deprecato del componente FilledTextField (I7f8f8)
Rinomina l'oggetto Button (contenente i valori predefiniti utilizzati dalla funzione Button) in ButtonConstants (I7c5f7, b/159687878)
Lo spazio per i contenuti del pulsante ora si comporta come una riga (utile quando devi inserire un'icona con un testo, vedi esempi su come scrivere il pulsante) (I0ff10, b/158677863)
RadioGroup e RadioGroupItem sono stati ritirati. Utilizza Box con Modifier.selectable, Row e Column per creare il set corretto di scelte di pulsanti di opzione in base al tuo design (I7f5cf, b/149528535).
Aggiunto il campo di testo con contorno Material (I1a518)
androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecati. TextField, FilledTextField e CoreTextField che utilizzano questo tipo sono anch'essi deprecati. Utilizza androidx.ui.input.TextFieldValue (I4066d, b/155211005)
TabRow.TabPosition non contiene la posizione in Dp, non in IntPx (I34a07, b/158577776)
Sostituito l'utilizzo di IntPx con Int. Sostituito IntPxPosition con IntOffset. IntPxSize è stato sostituito con IntSize. (Ib7b44)
Per consolidare il numero di classi utilizzate per rappresentare le informazioni sulle dimensioni, standardizza l'utilizzo della classe Size anziché PxSize. In questo modo si ottengono i vantaggi di una classe inline per sfruttare un valore long per comprimere due valori float per rappresentare larghezza e altezza rappresentate come valori float. (Ic0191)
Depreca Modifier.ripple. Ora Clickable utilizza l'effetto increspatura come indicatore predefinito (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare Clickable e ottenere l'effetto increspatura senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'increspatura, puoi creare manualmente un RippleIndication e passarlo a clickable come parametro di indicazione. (I101cd, b/155375067)
L'API Scaffold è stata rielaborata: alcuni parametri hanno cambiato nome e sono stati aggiunti nuovi parametri per una migliore personalizzazione. Aggiunto getter per eseguire query sulle dimensioni di Fab, TopBar e BottomBar (I0e7ce)
È stato aggiunto il componente DropdownMenu in ui-material, un'implementazione del menu Material Design. (I9bb3d)
Consenti di mostrare/nascondere manualmente la tastiera software utilizzando SoftwareKeyboardController (Ifb9d6, b/155427736)
Modifier.indication è stato aggiunto al pacchetto di base. Utilizzalo per mostrare la pressione, il trascinamento o altre indicazioni sugli elementi interattivi personalizzati (I8425f, b/155287131).
Implementazioni consolidate di CanvasScope Ora sono disponibili solo DrawScope e ContentDrawScope CanvasScope è stato rinominato DrawScope. DrawScope è stato aggiornato per implementare l'interfaccia Density e fornire LayoutDirection La sottoclasse DrawScope è stata eliminata in ContentDrawScope Painter e PainterModifier sono stati aggiornati per non mantenere più una proprietà RTL in quanto DrawScope la fornisce già senza doverla fornire manualmente (I1798e)
Rinomina Emphasis.emphasize() in Emphasis.applyEmphasis() (Iceebe)
I pulsanti disattivati ora seguono visivamente la specifica Material Design (I47dcb, b/155076924)
FilledTextField supporta l'azione IME, la trasformazione visiva e il tipo di tastiera (I1f9cf, b/155075201)
Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare le dimensioni del tratto. Per modificare le dimensioni del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensioni. (Icea16, b/154919081)
Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare le dimensioni del tratto. Per modificare le dimensioni del tratto (altezza) di un LinearProgressIndicator, puoi utilizzare Modifier.preferredHeight() o un altro modificatore di dimensioni. (Icea16, b/154919081)
Aggiunta dell'API slot per le icone iniziali e finali in FilledTextField e gestione dello stato di errore (Ic12e0)
Il colore predefinito dei FAB e dei FAB estesi è stato modificato in MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Sono stati sostituiti tutti gli utilizzi di Color che accettano valori null nell'API con valori non nulli e viene utilizzato Color.Unset al posto di null (Iabaa7)
EdgeInsets è stato rinominato in InnerPadding. È stato rinominato il parametro innerPadding dei pulsanti Material in padding. (I66165)
Il cursore è ora stateless. Gli utenti dovranno superare e aggiornare lo stato autonomamente, proprio come in qualsiasi altro controllo. (Ia00aa)
StaticDrawer è stato rimosso. Se necessario, utilizza Box con larghezza specificata per i materiali (I244a7).
È stata aggiunta l'implementazione di Material Design del campo di testo compilato (Ic75cd)
Aggiunto il parametro modificatore a ListItem e riordinati i parametri per promuovere il corpo lambda finale (I66e21)
Aggiunge il parametro del costruttore defaultFontFamily a Typography, consentendo di specificare la famiglia di caratteri predefinita da utilizzare per tutti gli stili di testo forniti che non hanno una famiglia impostata. (I89d07)
Rimozione temporanea delle tabelle di dati sui materiali dalla superficie API. (Iaea61)
Parametri rinominati nel componente componibile Divider (Ic4373)
bambini (Ia6d19)
Rimuove MaterialTheme.emphasisLevels, utilizza invece EmphasisAmbient.current per recuperare i livelli di enfasi (Ib5e40)
Il sistema di temi delle forme viene aggiornato in base alla specifica di Material Design. Ora puoi fornire forme piccole, medie e grandi da utilizzare nella maggior parte dei componenti (Ifb4d1).
Le API MaterialTheme, come MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in modo che siano proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti, non è previsto alcun cambiamento nel comportamento. (I3565a)
È stato eseguito il refactoring delle API FloatingActionButton per accettare le espressioni lambda componibili anziché i primitivi. Consulta gli esempi aggiornati per le informazioni sull'utilizzo. (I00622)
aggiungi il parametro
enabled
a Casella di controllo, Interruttore e Attivabile/disattivabile (I41c16)Ripple è ora un modificatore. Sebbene Clickable non sia ancora stato convertito, l'utilizzo consigliato è
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Surface e Card sono stati spostati da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)
Button, FloatingActionButton e Clickable ora hanno un parametro
enabled
separato. Alcuni parametri del pulsante sono stati rinominati o riordinati. (I54b5a)È stato rinominato Image in ImageAsset per distinguere meglio la differenza tra i dati Image e il composable Image in arrivo utilizzato per partecipare al layout e disegnare i contenuti. _Body:Metodo di estensione creato su android.graphics.Bitmap, Bitmap.asImageAsset(), per creare un'istanza di ImageAsset utile per combinare lo sviluppo di applicazioni Android tradizionali con il framework Compose (Id5bbd)
È stata rimossa l'API Snackbar con parametri stringa a favore dell'utilizzo dell'overload che accetta le espressioni lambda componibili. Visualizza esempi aggiornati per le informazioni sull'utilizzo (I55f80)
È stato eseguito il refactoring delle API Tab per accettare le espressioni lambda
text
eicon
(Ia057e).È stato aggiunto il componente BottomNavigation. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0).
Sono stati aggiunti Icon, IconButton e IconToggleButton, mentre AppBarIcon è stato rimosso. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il touch target corretto. Consulta gli esempi per informazioni sull'utilizzo e le icone per le icone Material fornite che puoi utilizzare direttamente con questi componenti. (I96849)
Sostituito ButtonStyle con funzioni distinte e rimosso l'overload di testo (stringa). Consulta gli esempi aggiornati per le informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)
rinomina il modificatore
Border
inDrawBorder
(I8ffcc)LayoutCoordinates non ha più una proprietà position. La proprietà position non ha senso se si considerano LayoutModifiers, rotazione o scalabilità. Gli sviluppatori devono invece utilizzare parentCoordinates e childToLocal() per calcolare la trasformazione da una LayoutCoordinate a un'altra.
LayoutCoordinates utilizza IntPxSize per la proprietà size anziché PxSize. I layout utilizzano dimensioni in pixel interi, quindi tutte le dimensioni del layout devono utilizzare numeri interi e non valori in virgola mobile. (I9367b)
Modifiche che causano interruzioni all'API ambients. Per maggiori dettagli, consulta la documentazione relativa ai log e a
Ambient<T>
(I4c7ee, b/143769776)È stato aggiunto il componente Materiale per ponteggi. Implementi per ponteggi (I7731b)
Sostituito DrawBorder con Border Modifier (Id335a)
Correzioni di bug
- FocusModifier è obsoleto a favore di Modifier.focus, Modifier.focusRequester e Modifier.focusObserver. FocusState e FocusDetailedState sono ritirati a favore di FocusState2 (I46919, b/160822875, b/160922136)
- VerticalScroller e HoriziontalScroller sono stati ritirati. Utilizza ScrollableColumn e ScrollableRow per un'esperienza integrata con il comportamento e i parametri di Column/Row oppure Modifier.verticalScroll e Modifier.horizontalScroll sul tuo elemento. Analogamente, ScrollerPosition è stato ritirato a favore di ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- Le API Modifier.draggable e Modifier.scrollable sono state rielaborate. DragDirection è stato rimosso a favore di Orientation. Lo stato richiesto per lo scorrimento è stato semplificato. ScrollableState è stato rinominato in ScrollableController (Iab63c, b/149460415)
runOnIdleCompose
rinominato inrunOnIdle
(I83607)- Le proprietà semantiche a valore singolo ora utilizzano uno stile di chiamata. Ad esempio, "semantics { hidden = true }" ora viene scritto come: "semantics { hidden() }". (Ic1afd, b/145951226, b/145955412)
- Diverse API di test sono state rinominate per essere più intuitive. Tutte le API findXYZ sono state rinominate in onNodeXYZ. Tutte le API doXYZ sono state rinominate in performXYZ. (I7f164)
- L'API Transition è stata modificata per restituire un TransitionState anziché passarlo ai publisher secondari. In questo modo, l'API è più coerente con le API animate(). (I24e38)
- È stata aggiunta una classe di unità IntBounds, che rappresenta i limiti dei pixel interi dal layout. L'API di PopupPositionProvider è stata aggiornata per utilizzarla. (I0d8d0, b/159596546)
- È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai test finder. (I2ce48)
- Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
- Rimossa la classe inline Shader che conteneva la classe prevista NativeShader NativeShader è stata rinominata Shader. La classe inline Shader wrapper non ha aggiunto nulla di utile alla superficie dell'API ed era una classe inline, quindi utilizza direttamente la classe NativeShader. (I25e4d)
- Popup, finestre di dialogo e menu ora ereditano il tema Material contestuale (Ia3665, b/156527485)
- I menu a discesa Material sono ora scorrevoli. (Ide699)
- Rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). Tuttavia, la direzione del layout è disponibile all'interno del callback tramite l'oggetto ambito della misura (Ic7d9d).
- Utilizza AnimationSpec anziché AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica di animazione statica -Migliora il DSL di transizione rimuovendo il requisito lambda per creare AnimationSpec come tween e spring. ma accettano direttamente i parametri del costruttore. - Migliorare la facilità d'uso complessiva di AnimationSpec aprendo i costruttori anziché affidarsi ai builder - Modificare la durata e il ritardo per KeyFrames e Tween in Int. In questo modo si eliminano i cast di tipo e l'overload dei metodi non necessari (per supportare sia Long che Int). (Ica0b4)
- L'opzione di cambio ora viene visualizzata in stato disattivato quando
enabled
è impostato su false (If4624, b/155941869, b/159331694) - Modifier.tag è stato rinominato Modifier.layoutId per evitare confusione con Modifier.testTag. (I995f0)
- Le posizioni Int della linea di allineamento restituite da Placeable#get(AlignmentLine) ora non sono nulle. Se la linea di allineamento richiesta non è presente, verrà restituito AlignmentLine.Unspecified. (I896c5, b/158134875)
È stato eseguito il refactoring della classe Radius per renderla una classe inline. Sono stati rimossi i metodi di creazione del componente aggiuntivo a favore del costruttore di funzioni con il parametro predefinito per fare in modo che il raggio lungo l'asse y corrisponda a quello del parametro del raggio dell'asse x obbligatorio.
Aggiornamento di DrawScope.drawRoundRect per utilizzare un singolo parametro Radius anziché due valori float separati per il raggio lungo gli assi x e y (I46d1b)
Per consolidare il numero di classi utilizzate per rappresentare le informazioni sul posizionamento, standardizza l'utilizzo della classe Offset anziché PxPosition. In questo modo, puoi sfruttare i vantaggi di una classe inline per utilizzare un valore long per comprimere due valori float per rappresentare gli offset x e y rappresentati come valori float. (I3ad98)
È stato sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel. Eliminazione dell'intera classe Px (I3ff33)
Il componente attivabile/disattivabile è stato ritirato. Utilizza Modifier.toggleable (I35220, b/157642842)
Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I086f4)
Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Id3434)
Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I97a5a)
È stato corretto il problema per cui onClick non veniva richiamato per DropdonMenuItems. (I3998b, b/157673259)
MutuallyExclusiveSetItem è stato ritirato. Utilizza invece Modifier.selectable. (I02b47, b/157642842)
TestTag è ora deprecato. Utilizza invece Modifier.testTag. (If5110, b/157173105)
Il cursore di TextField ha un'animazione lampeggiante (Id10a7)
Sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I19d02)
VerticalScroller ora fornisce Column out of the box. HorizontalScroller ora fornisce Row out of the box. (Ieca5d, b/157020670)
È stato sostituito l'utilizzo della classe Px in varie classi Compose nell'ambito del grande refactoring per fare affidamento solo su Dp e sui tipi primitivi per i parametri dei pixel (Iede0b).
Modifier.semantics è stato ripristinato per consentire l'utilizzo per i componenti di alto livello. (I4cfdc)
L'API dei modificatori DrawLayer è stata modificata: outlineShape è stato rinominato in shape e ha il valore predefinito RectangleShape ed è ora non nullabile; clipToOutline è stato rinominato in clip; clipToBounds è stato rimosso perché è uguale a clip == true con RectangleShape (I7ef11, b/155075735)
API Compose di livello superiore aggiornate che espongono una tela per esporre invece CanvasScope. In questo modo i consumatori non devono più gestire i propri oggetti Paint. Per i consumatori che hanno ancora bisogno di accedere a un canvas, possono utilizzare il metodo drawCanvas dell'estensione che fornisce un callback per emettere comandi di disegno con il canvas sottostante. (I80afd)
Il composable AlignmentLineOffset è deprecato. Utilizza invece il modificatore relativePaddingFrom(). Il composable CenterAlignmentLine è stato rimosso. (I60107)
L'API lambda finale WithConstraints è stata modificata. Ora, anziché due parametri, ha un ambito del destinatario che, oltre a vincoli e layoutDirection, fornisce le proprietà minWidth, maxWidth, minHeight e maxHeight in Dp (I91b9a, b/149979702)
È stato aggiunto il modificatore di layout defaultMinSizeConstraints, che imposta i vincoli di dimensione sul layout di 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)
FocusManagerAmbient è stato rimosso. Utilizza FocusModifier.requestFocus per ottenere lo stato attivo. (Ic4826)
È stata creata l'API CanvasScope che racchiude un oggetto Canvas per esporre una superficie API di disegno dichiarativa e senza stato. Le trasformazioni sono contenute nel proprio ambito del destinatario e le informazioni sulle dimensioni sono anche limitate ai limiti dell'inserto corrispondente. Non richiede a un consumatore di mantenere il proprio oggetto stato Paint per configurare le operazioni di disegno.
È stato aggiunto CanvasScopeSample ed è stata aggiornata l'app demo per includere una demo di grafica dichiarativa (Ifd86d).
Aggiungi la personalizzazione del colore del cursore al campo di testo (I6e33f)
TextFieldValue utilizzato con TextField ora può sopravvivere alla ricreazione dell'attività se utilizzato in questo modo:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2 è stato rinominato LayoutModifier. (Id29f3)
Rimossa l'interfaccia LayoutModifier deprecata. (I2a9d6)
Sostituito il parametro focusIdentifier di CoreTextField/TextField con FocusNode per l'integrazione con il sottosistema di messa a fuoco. (I7ea48)
Le funzioni di misurazione intrinseca in Layout e LayoutModifier2 ora hanno un ricevitore IntrinsicMeasureScope che fornisce l'API di query intrinseca con la direzione del layout propagata implicitamente. (Id9945)
È stato aggiunto il nuovo Modifier.zIndex() per controllare l'ordine di disegno degli elementi secondari all'interno dello stesso layout principale. La proprietà elevation di DrawLayerModifier è stata rinominata shadowElevation e non controlla più l'ordine di disegno. L'ordine dei parametri di DrawShadow è cambiato: l'elevazione è ora il primo e la forma è il secondo con un RectangleShape predefinito. (I20150, b/152417501)
RectangleShape è stato spostato da androidx.ui.foundation.shape.* a androidx.ui.graphics.* (Ia74d5, b/154507984)
Aggiornamento dell'API TextField: unione dei callback onFocus e onBlur in un unico callback onFocusChange(Boolean) con parametro (I66cd3)
Sono stati aggiunti i parametri verticalGravity e horizontalGravity rispettivamente a Riga e Colonna. (I7dc5a)
Sono stati aggiornati wrapContentWidth e wrapContentHeight in modo che prevedano l'allineamento verticale o orizzontale anziché un allineamento qualsiasi. Il modificatore di gravità è stato aggiornato per accettare l'allineamento verticale o orizzontale. Riga, Colonna e Stack sono stati aggiornati per supportare gli allineamenti continui personalizzati. (Ib0728)
È stata creata l'API PixelMap per supportare l'interrogazione delle informazioni sui pixel da un ImageAsset. (I69ad6)
Rimuove ProvideContentColor, utilizza invece ContentColorAmbient direttamente con
Providers
(Iee942)Il modulo ui-text-compose è stato rinominato in ui-text. ui-text ora contiene i composable CoreText e CoreTextField (Ib7d47)
Il modulo ui-text viene rinominato ui-text-core (I57dec)
Sono stati spostati i composable ui-framework/CoreText e CoreTextField in ui-text-compose. Ti consigliamo di includere ui-text-compose nel tuo progetto. (I32042)
Migliora l'API DrawModifier:
- È stato creato l'ambito del ricevitore per draw() ContentDrawScope
- Rimossi tutti i parametri in draw()
- DrawScope ha la stessa interfaccia di CanvasScope
- ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
runOnIdleCompose
erunOnUiThread
sono ora funzioni globali anziché metodi di ComposeTestRule. (Icbe8f)Gli operatori delegati della proprietà [Mutable]State sono stati spostati nelle estensioni per supportare le ottimizzazioni dei delegati della proprietà di Kotlin 1.4. I chiamanti devono aggiungere le importazioni per continuare a utilizzare
by state { ... }
oby mutableStateOf(...)
. (I5312c)Aggiunta di positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)
ColoredRect è stato ritirato. Utilizza Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)
LayoutResult è stato rinominato in MeasureResult. (Id8c68)
Aggiunta di LayoutModifier2, una nuova API per la definizione dei modificatori di layout; deprecazione di LayoutModifier (If32ac)
Sostituito l'operatore Modifier plus con le funzioni di estensione della fabbrica (I225e4)
Draggable è stato spostato nel modificatore (Id9b16, b/151959544)
Il composable ParentData è deprecato. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier o utilizzare il modificatore LayoutTag se devi semplicemente taggare i figli del layout per riconoscerli all'interno del blocco di misurazione. (I51368, b/150953183)
Composable Center deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAlign.Center oppure con uno dei composable Box o Stack a cui sono stati applicati modificatori adatti (Idf5e0).
È stata aggiunta l'API VectorPainter per sostituire l'API di composizione secondaria esistente per la grafica vettoriale. Il risultato della composizione secondaria è un oggetto VectorPainter anziché un DrawModifier. Sono stati ritirati i composable DrawVector precedenti a favore di VectorPainter.
È stata rinominata l'API Image(Painter) in PaintBox(Painter). È stato creato un composable Vector che si comporta come il composable Image, ma con un VectorAsset anziché un ImageAsset (I9af9a, b/149030271)
LayoutFlexible è stato rinominato LayoutWeight. Il parametro stretto è stato rinominato in riempimento. (If4738)
Rimozione di RepaintBoundary a favore di DrawLayerModifier (I00aa4)
DrawVector è stata modificata da una normale funzione componibile per restituire un Modifier drawVector() che disegnerà il vettore come sfondo di un layout. (I7b8e0)
La funzione componibile Opacity è stata sostituita con il modificatore drawOpacity. (I5fb62)
Sostituisci la funzione componibile Clip con il modificatore drawClip(). DrawClipToBounds è un modificatore pratico da utilizzare quando devi ritagliare solo i limiti del livello con una forma rettangolare. (If28eb)
La funzione composable DrawShadow è stata sostituita con il modificatore drawShadow(). Ora le ombre vengono disegnate come parte di LayerModifier. (I0317a)
Aggiunta di LayerModifier, un modificatore che consente di aggiungere un RenderNode per un layout. Consente di impostare ritaglio, opacità, rotazione, scalabilità e ombre. Questo sostituirà RepaintBoundary. (I7100d, b/150774014)
androidx.compose.ViewComposer è stato spostato in androidx.ui.node.UiComposer androidx.compose.Emittable è stato rimosso. Era ridondante con ComponentNode. androidx.compose.ViewAdapters è stato rimosso. Non sono più un caso d'uso supportato. Compose.composeInto è stato ritirato. Utilizza invece
setContent
osetViewContent
. Compose.disposeComposition è stato ritirato. Utilizza invece il metododispose
suComposition
restituito dasetContent
. 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)Componente componibile Created Image per gestire il dimensionamento/layout, oltre a disegnare un determinato ImageAsset sullo schermo. Questo elemento componibile supporta anche il disegno di qualsiasi istanza di Painter rispettando le sue dimensioni intrinseche, nonché il supporto di una dimensione fissa o minima (Ibcc8f).
Composable Wrap deprecato. Può essere sostituito con il modificatore LayoutAlign o con il composable Stack (Ib237f).
WithConstraints ha ricevuto il parametro LayoutDirection (I6d6f7)
È stata propagata la direzione del layout dal nodo del layout principale ai nodi secondari. È stato aggiunto il modificatore della direzione del layout. (I3d955)
Il componente Stack supporta la direzionalità da destra a sinistra (Ic9e00)
Il composable DrawShape è stato rimosso. Utilizza invece il modificatore DrawBackground. (I7ceb2)
Supportare la direzione da destra a sinistra nel modificatore LayoutPadding (I9e8da)
È stato aggiunto AdapterList, un componente di elenco scorrevole che compone e dispone solo gli elementi visibili. I problemi noti al momento includono il fatto che è solo verticale e non gestisce completamente tutti i casi di modifiche ai relativi elementi secondari. (Ib351b)
È stato aggiornato il flag
ComposeFlags.COMPOSER_PARAM
in modo che siatrue
, il che modificherà la strategia di generazione del codice per il plug-in di composizione. A livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene passato alle chiamate @Composable successive affinché il runtime gestisca correttamente l'esecuzione. Si tratta di una modifica binaria significativa, ma dovrebbe preservare la compatibilità a livello di codice sorgente in tutti gli utilizzi approvati di Compose. (I7971c)È stato aggiunto il componente Canvas. Questo elemento componibile occupa una parte dello spazio (fornito dall'utente) e ti consente di disegnare utilizzando CanvasScope (I0d622).
Density e DensityScope sono stati uniti in un'unica interfaccia. Anziché ambientDensity(), ora puoi utilizzare DensityAmbient.current. Invece di withDensity(density), usa with(density) (I11cb1)
È stato modificato LayoutCoordinates per fare in modo che providedAlignmentLines sia un set anziché una mappa e che LayoutCoordinates implementi l'operatore get() per recuperare un valore. In questo modo, è più facile per i modificatori modificare uno o più valori del set senza creare una nuova raccolta per ogni modificatore. (I0245a)
Gli scorrimenti ora mostrano il comportamento di movimento di scorrimento nativo di Android. (I922af, b/147493715)
Miglioramenti alla superficie API dei vincoli (I0fd15)