Componi materiale

Crea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di contatto di primo livello di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Versione alpha
13 novembre 2024 1.7.5 - - 1.8.0-alpha06

Struttura

Compose è una combinazione di 7 ID gruppo Maven in androidx. Ogni gruppo contiene un sottoinsieme mirato di funzionalità, ciascuna con il proprio insieme di note di rilascio.

Questa tabella illustra i gruppi e i link a ogni set di note di rilascio.

GruppoDescrizione
compose.animationCreare animazioni nelle loro applicazioni Jetpack Compose per arricchire l'esperienza utente.
compose.compilerTrasforma le funzioni @Composable e abilita le ottimizzazioni con un plug-in del compilatore Kotlin.
compose.foundationScrivi applicazioni Jetpack Compose con componenti di base pronti all'uso ed espandi la base per creare i componenti del tuo sistema di progettazione.
compose.materialCrea interfacce utente Jetpack Compose con componenti Material Design pronti all'uso. Si tratta del punto di contatto di primo livello di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io.
compose.material3Crea interfacce utente Jetpack Compose con i componenti Material Design 3, la prossima evoluzione di Material Design. Material 3 include temi e componenti aggiornati e funzionalità di personalizzazione di Material You come i colori dinamici ed è progettato per essere coerente con il nuovo stile visivo e l'interfaccia utente di sistema di Android 12.
compose.runtimeComponenti di base del modello di programmazione e della gestione dello stato di Compose, nonché del runtime di base per il plug-in del compilatore Compose come target.
compose.uiComponenti fondamentali dell'interfaccia utente di composizione necessari per interagire con il dispositivo, inclusi layout, disegno e input.

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da Compose, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.8

Versione 1.8.0-alpha06

13 novembre 2024

androidx.compose.material:material-*:1.8.0-alpha06 viene rilasciato. 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 rilasciato. La versione 1.8.0-alpha05 contiene questi commit.

Correzioni di bug

  • Ottimizza il comportamento di contentPadding di Scaffold per evitare di ricomporre sempre i contenuti del corpo quando contentPadding cambia. (I8c8e2, b/373904168)
  • Fai in modo che il dispositivo di scorrimento 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 rilasciato. La versione 1.8.0-alpha04 contiene questi commit.

Modifiche all'API

  • Rimuovi readOnly da TextFields per bloccare la versione stabile della base. (I3aaba)

Correzioni di bug

  • Aggiunge il supporto delle increspature nei componenti espandibili su Android S e versioni successive, ad esempio una scheda che si espande al clic. In precedenza, l'effetto ripple 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 rilasciato. 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 rilasciato. La versione 1.8.0-alpha01 contiene questi commit.

Modifiche all'API

  • È stato aggiunto un nuovo generatore NavGraphBuilder.bottomSheet per creare un bottomSheet con argomenti sicuri ((I28589, I777db, b/351858980))

Versione 1.7

Versione 1.7.5

30 ottobre 2024

androidx.compose.material:material-*:1.7.5 viene rilasciato. La versione 1.7.5 contiene questi commit.

Versione 1.7.4

16 ottobre 2024

androidx.compose.material:material-*:1.7.4 viene rilasciato. La versione 1.7.4 contiene questi commit.

Versione 1.7.2

18 settembre 2024

androidx.compose.material:material-*:1.7.2 viene rilasciato. La versione 1.7.2 contiene questi commit.

Versione 1.7.1

10 settembre 2024

  • Nessuna modifica agli elementi Android. Sono stati rimossi -desktop elementi e aggiunti -jvmStubs e -linuxx64Stubs elementi. Nessuno di questi target è destinato all'uso, ma sono segnaposto per supportare le attività di JetBrains Compose.

Versione 1.7.0

4 settembre 2024

androidx.compose.material:material-*:1.7.0 viene rilasciato. La versione 1.7.0 contiene questi commit.

Modifiche importanti dalla versione 1.6.0

  • È stata eseguita la migrazione dei componenti Material per utilizzare le nuove API di ripple e non eseguono più query su RippleTheme.
  • I componenti Material che in precedenza accettavano un MutableInteractionSource e avevano un valore predefinito di remember { MutableInteractionSource() } ora accettano un MutableInteractionSource con valori null e hanno un valore predefinito di null. Se non esegui l'elevazione e non utilizzi MutableInteractionSource, devi passare null. In questo modo, alcuni componenti possono creare un'istanza in modo lazy solo quando necessario, migliorando le prestazioni. Ti consigliamo inoltre di apportare modifiche simili nei tuoi componenti.
  • BottomDrawer, ModalBottomSheet, BackdropScaffold e il riquadro in basso standard sono stati promossi ad API stabili.

Versione 1.7.0-rc01

21 agosto 2024

androidx.compose.material:material-*:1.7.0-rc01 viene rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. La versione 1.7.0-beta02 contiene questi commit.

Modifiche all'API

  • Aggiornamento dell'API per lo stile dei link: spostato TextLinkStyles in TextStyle e rimosso TextDefaults da Material (I5477b)

Versione 1.7.0-beta01

14 maggio 2024

androidx.compose.material:material-*:1.7.0-beta01 viene rilasciato. La versione 1.7.0-beta01 contiene questi commit.

Modifiche all'API

  • L'API per ottenere link con temi Material in Testo è stata aggiornata. Nello specifico, sono stati rimossi i metodi dal TextDefaults per la costruzione di LinkAnnotations a tema e l'analisi del codice HTML con link a tema. È stata invece aggiunta una classe TextLinkStyles che consente di applicare uno stile ai link come parametro al composable di testo. (I31b93)

Versione 1.7.0-alpha08

1° maggio 2024

androidx.compose.material:material-*:1.7.0-alpha08 viene rilasciato. La versione 1.7.0-alpha08 contiene questi commit.

Modifiche all'API

  • Correggi il problema relativo all'applicazione di backgroundColor a TextFieldDecorationBox e OutlinedTextFieldDecorationBox. Le caselle decorative ora accettano un parametro shape. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled è stato rimosso e LocalRippleConfiguration è stato impostato come non obbligatorio. Per disattivare un'eco, anziché fornire un RippleConfiguration con isEnabled = false, fornisci null a LocalRippleConfiguration. (I22725)
  • I link di testo hanno un'opzione di stile per lo stato premuto, oltre agli stili normali, con il mouse sopra e attivo. I metodi TextDefaults hanno ciascuno un argomento pressedStyle per supportarlo. (Ic473f, b/139312671)

Correzioni di bug

  • OutlinedTextField Il padding superiore per l'etichetta ora tiene conto delle dimensioni dei caratteri di sistema. (Idc781)

Versione 1.7.0-alpha07

17 aprile 2024

androidx.compose.material:material-*:1.7.0-alpha07 viene rilasciato. La versione 1.7.0-alpha07 contiene questi commit.

Modifiche all'API

  • I link di testo hanno ricevuto l'opzione di stile per lo stato premuto, oltre allo stile normale, al passaggio del mouse e allo stato attivo. (I5f864, b/139312671)
  • È stato aggiunto un oggetto TextDefaults contenente metodi per creare un LinkAnnotation e analizzare la stringa con tag HTML che applica MaterialTheme ai link. (I98532, b/139312671)

Versione 1.7.0-alpha06

3 aprile 2024

androidx.compose.material:material-*:1.7.0-alpha06 viene rilasciato. La versione 1.7.0-alpha06 contiene questi commit.

Annuncio

  • androidx.compose.material non richiede più l'utilizzo della stessa versione di ogni elemento in questo gruppo Maven. Gli utenti possono combinare le versioni delle librerie di base di Compose (Ie5fba)

Modifiche all'API

  • Sono stati spostati altri valori predefiniti di ModalDrawer e BottomDrawer nell'oggetto DrawerDefaults. (Ib5b2e)

Versione 1.7.0-alpha05

20 marzo 2024

androidx.compose.material:material-*:1.7.0-alpha05 viene rilasciato. La versione 1.7.0-alpha05 contiene questi commit.

Modifiche all'API

  • L'indicatore ScaffoldSubcomposeInMeasureFix è stato rimosso. (I67363)

Versione 1.7.0-alpha04

6 marzo 2024

androidx.compose.material:material-*:1.7.0-alpha04 viene rilasciato. La versione 1.7.0-alpha04 contiene questi commit.

Nuove funzionalità

Versione 1.7.0-alpha03

21 febbraio 2024

androidx.compose.material:material-*:1.7.0-alpha03 viene rilasciato. La versione 1.7.0-alpha03 contiene questi commit.

Modifiche all'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 e confirmStateChange non è più un lambda finale. (I9c029, b/261423850)
  • BackdropScaffold è stato promosso da sperimentale a stabile. La specifica dell'animazione ora è una specifica tween in conformità con le linee guida. Il parametro snackbarHost di BackdropScaffold non è più l'ultimo parametro per evitare confusione con le lambda finali. BackdropScaffoldState espone un'API progress(from, to) per eseguire query sull'avanzamento tra le ancore. (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

  • È stato risolto un problema per cui BackdropScaffold poteva arrestarsi in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I51396)
  • È stata rimossa la composizione secondaria all'interno di BottomSheetScaffold per migliorare le prestazioni. È stato risolto un problema per cui BottomSheetScaffold si arrestava in modo anomalo in scenari specifici in combinazione con LookaheadScope. (I2f90c)
  • È stata 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 rilasciato. 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 rilasciato. La versione 1.7.0-alpha01 contiene questi commit.

Modifiche al comportamento

  • È stata eseguita la migrazione dei componenti Material per utilizzare le nuove API di ripple e non eseguono più query su RippleTheme.

Modifiche all'API

  • rememberRipple e RippleTheme sono stati ritirati da material-ripple, con nuove API ripple e RippleConfiguration aggiunte alle librerie Material e di altri sistemi di design.

  • I componenti Material che in precedenza accettavano un MutableInteractionSource e avevano come valore predefinito remember { MutableInteractionSource() } ora accettano un MutableInteractionSource nullable e hanno come valore predefinito null. Se non esegui l'elevazione e non utilizzi MutableInteractionSource, devi passare null. In questo modo, alcuni componenti possono creare un'istanza in modo lazy 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 rilasciato. La versione 1.6.8 contiene questi commit.

Versione 1.6.7

1° maggio 2024

androidx.compose.material:material-*:1.6.7 viene rilasciato. La versione 1.6.7 contiene questi commit.

Versione 1.6.6

17 aprile 2024

androidx.compose.material:material-*:1.6.6 viene rilasciato. Nessuna modifica dall'ultima release.

Versione 1.6.5

3 aprile 2024

androidx.compose.material:material-*:1.6.5 viene rilasciato. La versione 1.6.5 contiene questi commit.

Versione 1.6.4

20 marzo 2024

androidx.compose.material:material-*:1.6.4 viene rilasciato. La versione 1.6.4 contiene questi commit.

Versione 1.6.3

6 marzo 2024

androidx.compose.material:material-*:1.6.3 viene rilasciato. La versione 1.6.3 contiene questi commit.

Correzioni di bug

  • Correggi la 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 rilasciato. La versione 1.6.2 contiene questi commit.

Versione 1.6.1

7 febbraio 2024

androidx.compose.material:material-*:1.6.1 viene rilasciato. La versione 1.6.1 contiene questi commit.

Versione 1.6.0

24 gennaio 2024

androidx.compose.material:material-*:1.6.0 viene rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. La versione 1.6.0-alpha08 contiene questi commit.

Modifiche all'API

  • Ritira una funzione materialIcon a favore del suo sovraccarico che accetta un parametro autoMirror. (Ia338d)

Correzioni di bug - Aumento automatico dell'altezza dell'elemento 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 rilasciato. 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 rilasciato. La versione 1.6.0-alpha06 contiene questi commit.

Modifica che comporta un cambiamento nel comportamento

  • La funzionalità relativa al riquadro è stata rimossa da BottomSheetScaffold. Inserisci BottomSheetScaffold in un componente componibile Drawer per ottenere la funzionalità precedente. Per un esempio, vedi BottomSheetScaffoldWithDrawerSample. (I1dcc8)

Modifiche all'API

  • È stato introdotto un flag temporaneo per controllare se Scaffold deve misurare i relativi elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, la misurazione viene eseguita in misurazione. 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 rilasciato. 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 hanno il prefisso Icons.AutoMirrored.Filled... e così via e contengono icone che vengono specchiate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere specchiate automaticamente.

Modifiche all'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 hanno il prefisso Icons.AutoMirrored.Filled... e così via e contengono icone che vengono specchiate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per l'elenco delle icone che possono (e devono) essere specchiate automaticamente. Le proprietà delle icone fornite in precedenza per queste icone sono ora contrassegnate come deprecate e viene fornito un suggerimento per il blocco di sostituzione per facilitare la migrazione. Se non hai una gestione speciale per le icone specchiate in RTL, ti consigliamo di eseguire la migrazione al nuovo set di icone. Ad esempio, Icons.Filled.ArrowBack deve essere sottoposto a refactoring in Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

Versione 1.6.0-alpha04

23 agosto 2023

androidx.compose.material:material-*:1.6.0-alpha04 viene rilasciato. 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 un Scaffold all'interno di un LookaheadScope tentavano di leggere le dimensioni troppo presto. (If2c5d)
  • È stato corretto il calcolo di offset di DropdownMenu 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 nella parte inferiore dello schermo. (Iccc74, b/294103942)
  • Sono stati ottimizzati gli elementi interni del layout di BottomSheetScaffold ed è stato risolto un potenziale problema con BottomSheetScaffold all'interno di un LookaheadLayout. (Ic0afa)

Versione 1.6.0-alpha03

9 agosto 2023

androidx.compose.material:material-*:1.6.0-alpha03 viene rilasciato. La versione 1.6.0-alpha03 contiene questi commit.

Modifiche all'API

  • I componenti Material2 ora hanno un'API separata per passare windowInsets al fine di 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 i sample corrispondenti. (I655e8)

Versione 1.6.0-alpha02

26 luglio 2023

androidx.compose.material:material-*:1.6.0-alpha02 viene rilasciato. La versione 1.6.0-alpha02 contiene questi commit.

Modifiche all'API

  • Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti: SwipeToDismiss e componenti basati su fogli. Utilizza la nuova sovraccarica fornita in cui la densità è un parametro. (I1846e)
  • Annotazioni aggiuntive per specificare gli input consentiti per i composabili (I51109)
  • File API aggiornati per annotare la soppressione della compatibilità (I8e87a, b/287516207)
  • È stato aggiunto un nuovo allineamento di inizio per FabPosition (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons nel Materiale 2 è stato deprecato in favore di TextFieldColors. Quando sostituisci leadingIconColor o trailingIconColor, sostituisci anche il sovraccarico con interactionSource. (Id57ed, b/199377790)

Versione 1.6.0-alpha01

21 giu 2023

androidx.compose.material:material-*:1.6.0-alpha01 viene rilasciato. La versione 1.6.0-alpha01 contiene questi commit.

Modifiche al comportamento

  • includeFontPadding ora è false per impostazione predefinita nella tipografia Material 2. Anche lo stile dell'altezza della riga predefinito è stato modificato in Trim.None e Alignment.Center e sono stati aggiunti lineHeight espliciti (in sp) ai TextStyle di Typography. 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 all'API

  • Le API Swipeable di Material sono state ritirate. Fai riferimento alle API AnchoredDraggable di Foundation, ottimizzate per casi d'uso sia semplici che complessi. (I732e0)

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) 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 rilasciato. La versione 1.5.4 contiene questi commit.

Versione 1.5.3

4 ottobre 2023

androidx.compose.material:material-*:1.5.3 viene rilasciato. Questa versione non presenta modifiche

Versione 1.5.2

27 settembre 2023

androidx.compose.material:material-*:1.5.2 viene rilasciato. 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 rilasciato. La versione 1.5.0 contiene questi commit.

Modifiche importanti dalla versione 1.4.0

Modifiche all'API

  • Sono state incorporate modifiche nelle API Swipeable1 in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato confirmValueChange. progress è ora visualizzato come valore in virgola mobile. animateTo e snapTo sono interni. Utilizza invece expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito con requireOffset(). I323b4
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro di colore del tracciato per gli indicatori di avanzamento circolari e un parametro di tratto finale per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • confirmStateChange di ModalBottomSheetState, ModalBottomSheetState.Saver e rememberModalBottomSheetState è stato rinominato in confirmValueChange. (Ib48d1)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559)
  • Le modifiche alle API Swipeable sono state incorporate in ModalBottomSheetLayout. La funzione animateTo di ModalBottomSheetState non accetta più un parametro animationSpec e l'offset esposto ora è nullable. Usa requireOffset per richiedere l'offset. (Ia2e79)
  • Aggiunta di un'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Le modifiche incorporate nelle API Swipeable in ModalDrawer. DrawerState di animateTo sono state sostituite dai metodi open e close e l'offset ora è nullable. Usa requireOffset per richiedere l'offset. (I3de9e)
  • È stato aggiornato il riquadro e i riquadri per posticipare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
  • È stato aggiunto il parametro minLines in Material e Material3 Text, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)

Correzioni di bug

  • È stato risolto un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione del movimento orizzontale eccessivo. È stata modificata anche la firma dell'API della lambda onRelease in Modifier.pullRefresh in modo da restituire un valore float per la velocità consumata (I7db65, b/266874741)
  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) e l'ancora più vicina nella direzione dello scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • È stato corretto l'errore relativo all'azione di chiusura AlertDialog che appariva sotto l'azione di conferma quando le azioni erano impilate una sopra l'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 quando gesturesEnabled è 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)
  • Corregge i problemi di intercettazione degli eventi di clic/cursore PullRefreshIndicator. (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 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 rilasciato. 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 rilasciato. La versione 1.5.0-beta03 contiene questi commit.

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora espongono una proprietà di avanzamento che indica l'avanzamento tra l'ancora corrente (stabilizzata) 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 rilasciato. 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 rilasciato. La versione 1.5.0-beta01 contiene questi commit.

Modifiche all'API

  • L'offset di DrawerState e BottomDrawerState non è più nullable. Restituisce invece Float.NaN per indicare l'assenza dell'offset. (Ie9855)
  • È stata aggiunta un'opzione per passare un ScrollState durante la creazione di un DropdownMenu o un ExposedDropdownMenu per controllare lo stato di scorrimento verticale dei menu visualizzati. (Idb009, b/185304441)
  • Aggiungere il supporto per l'attivazione/la disattivazione del gesto ModalBottomSheetLayout in modo che l'utente possa configurarlo per un riquadro in basso più in primo piano (I40af0)
  • È stato aggiunto un parametro di colore a BasicText per consentire di animare o impostare il colore del testo in modo efficiente. (Iffd88, b/246961787)
  • Ridenominazione della proprietà Semantics da isContainer a isTraversalGroup (I121f6)

Correzioni di bug

  • È stato corretto l'errore relativo all'azione di chiusura AlertDialog che appariva sotto l'azione di conferma quando le azioni erano impilate una sopra l'altra per adattarsi alla larghezza della finestra di dialogo. Questa correzione allinea l'implementazione alle specifiche di Material Design. (I029de, b/235454277)

Versione 1.5.0-alpha04

10 maggio 2023

androidx.compose.material:material-*:1.5.0-alpha04 viene rilasciato. La versione 1.5.0-alpha04 contiene questi commit.

Modifiche all'API

  • Stiamo spostando la dipendenza dalla densità a livello di componente. Questo vale per i seguenti componenti: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Utilizza la nuova sovraccarica fornita in cui la densità è un parametro. (I8fbd8)

Versione 1.5.0-alpha03

19 aprile 2023

androidx.compose.material:material-*:1.5.0-alpha03 viene rilasciato. La versione 1.5.0-alpha03 contiene questi commit.

Modifiche all'API

  • Aggiorna gli elementi interni di BottomDrawer per utilizzare le nuove API SwipeableV2. Per questo motivo, BottomDrawerState ora avrà solo API definite a livello di classe e non erediterà metodi/proprietà da SwipeableState. Utilizziamo la composizione con un SwipeableV2State interno. Ora Offset è una proprietà a virgola mobile con valori null, ma è comunque possibile accedere al valore corrente e a un valore target di scorrimento tramite le proprietà currentValue e targetValue. I metodi a livello di classe precedenti, come open/expand/close, e le proprietà come isOpen/isClosed continuano a essere supportati. (Iad40c, b/178529942, b/220676296)

Correzioni di bug

  • Componenti interni del componente Switch aggiornati. Ora il pulsante mostrerà l'anteprima del valore più vicino (stato target) durante il trascinamento. (Id90d4)
  • I contenuti animati del foglio (ad es. Modifier.animateContentSize nei contenuti del foglio) in BottomSheetScaffold sono stati ottimizzati e ora funzionano senza problemi. (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold non parteciperà più allo scorrimento nidificato quando gesturesEnabled è impostato su false. (I634f3, b/215403277)

Versione 1.5.0-alpha02

5 aprile 2023

androidx.compose.material:material-*:1.5.0-alpha02 viene rilasciato. 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)
  • Corregge i problemi relativi all'intercettazione di clic / eventi del cursore da parte di PullRefreshIndicator (2494256, b/271777421)

Versione 1.5.0-alpha01

22 marzo 2023

androidx.compose.material:material-*:1.5.0-alpha01 viene rilasciato. La versione 1.5.0-alpha01 contiene questi commit.

Correzioni di bug

  • Aggiungi un esempio di ricollegamento del gruppo di chip. Aggiornare la spaziatura orizzontale tra i chip secondari nell'esempio di gruppo di chip a riga singola 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 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 aggiornamento della versione).

Versione 1.4.2

19 aprile 2023

androidx.compose.material:material-*:1.4.2 viene rilasciato. La versione 1.4.2 contiene questi commit.

Versione 1.4.1

5 aprile 2023

androidx.compose.material:material-*:1.4.1 viene rilasciato. La versione 1.4.1 contiene questi commit.

Versione 1.4.0

22 marzo 2023

androidx.compose.material:material-*:1.4.0 viene rilasciato. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

Modifiche all'API

  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559)
  • Le modifiche alle API Swipeable sono state incorporate in ModalDrawer. animateTo di DrawerState è stato sostituito dai metodi open e close e l'offset ora è nullable. Usa requireOffset per richiedere l'offset. (I3de9e)
  • È stato aggiunto il parametro minLines in Material e Material3 Text, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • È stato aggiunto il parametro minLines a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi composabili 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 rilasciato. La versione 1.4.0-beta02 contiene questi commit.

Modifiche all'API

  • Le modifiche alle API Swipeable sono state incorporate in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato confirmValueChange. progress è ora visualizzato come valore in virgola mobile. animateTo e snapTo sono interni. Utilizza invece expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito con requireOffset(). (I323b4)

Correzioni di bug

  • Sono stati rimossi i ruoli semantici dalle aree cliccabili e selezionabili e sono stati aggiornati i componenti che li utilizzavano per impostare i ruoli utilizzando Modifier.semantics (Ibb4ba)
  • Aggiornamento minore alle icone Materiale estese che modifica le icone riempite desktop_mac, directions e kitchen. (I65f5e)

Versione 1.4.0-beta01

8 febbraio 2023

androidx.compose.material:material-*:1.4.0-beta01 viene rilasciato. La versione 1.4.0-beta01 contiene questi commit.

Modifiche all'API

  • È stato risolto un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione del movimento orizzontale eccessivo. È stata modificata anche la firma dell'API della lambda onRelease in Modifier.pullRefresh in modo da restituire un valore float per la velocità consumata (I7db65, b/266874741)
  • Ripristina il getter della proprietà LocalMinimuTouchTargetEnforcement, contrassegnalo come deprecato e reindirizza a LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Versione 1.4.0-alpha05

25 gennaio 2023

androidx.compose.material:material-*:1.4.0-alpha05 viene rilasciato. La versione 1.4.0-alpha05 contiene questi commit.

Correzioni di bug

  • Risolto un problema per cui lo stato ModalBottomSheetLayout's HalfExpanded veniva calcolato in modo errato e il foglio sembrava galleggiare. (I8c615, b/265610459)
  • È stato corretto un bug in ModalBottomSheetLayout per cui il foglio si arrestava in modo anomalo quando passava dallo stato nascosto a uno visibile in alcune circostanze. (Ia9265, b/265444789)

Versione 1.4.0-alpha04

11 gennaio 2023

androidx.compose.material:material-*:1.4.0-alpha04 viene rilasciato. La versione 1.4.0-alpha04 contiene questi commit.

Modifiche all'API

  • Aggiunta nella proprietà di semantica IsContainer su Surfaces. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le piattaforme. (I63379)
  • Contrassegna la funzione snapTo in Drawer come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro di colore del tracciato per gli indicatori di avanzamento circolari e un parametro di tratto finale per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • confirmStateChange di ModalBottomSheetState, ModalBottomSheetState.Saver e rememberModalBottomSheetState è stato rinominato in confirmValueChange. (Ib48d1)
  • Maggiore nullabilità del tipo di ritorno delle funzioni nascoste ritirate (Ibf7b0)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per riservare dimensioni di almeno 48 dp per distinguere le interazioni tocco se l'elemento è più piccolo. (I33f58, b/258495559)
  • Le modifiche alle API Swipeable sono state incorporate in ModalBottomSheetLayout. animateTo di ModalBottomSheetState non accetta più un parametro animationSpec e l'offset esposto ora è nullable. Utilizza requireOffset per richiedere offset. (Ia2e79)

Correzioni di bug

  • Ora il foglio di un ModalBottomSheetLayout ha una larghezza massima di 640 dp. (I71a4f, b/234927577)
  • È stato risolto un problema per cui rememberPullRefreshState non aggiornava refreshThreshold e refreshingOffset nel tempo. (Ifed10, b/263159832)
  • L'avanzamento per gli indicatori di avanzamento ora è correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
  • Quando ModalBottomSheetState non ha ancora ricevuto ancore, aggiorna currentValue senza un'animazione quando vengono chiamati snapTo o animateTo 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 era HalfExpanded durante la rotazione da verticale a orizzontale. Assicurati di passare il valore initialValue corretto, ad esempio controllando la configurazione. (Ie8df7, b/182882364)
  • Risolto un problema per cui ModalBottomSheetLayout si arrestava in modo anomalo se i contenuti del foglio erano vuoti. ModalBottomSheetLayout ora consente contenuti vuoti del foglio. Se i contenuti del foglio sono vuoti, avrà solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)

Problema noto

  • Quando esegui l'aggiornamento da androidx.compose.foundation:1.4.0-alpha03 a androidx.compose.foundation:1.4.0-alpha04, potresti riscontrare un errore java.lang.NoSuchFieldError. Qui è dove è stato segnalato il problema per la prima volta. È stata inviata una correzione che sarà disponibile nel prossimo aggiornamento di Scrivi. Come soluzione alternativa, aggiorna le librerie androidx.compose.material e androidx.compose.material3 all'ultima versione(1.1.0-alpha04) o esegui il downgrade di androidx.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 rilasciato. La versione 1.4.0-alpha03 contiene questi commit.

Modifiche all'API

  • Aggiunta di un'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Sono state incorporate modifiche nelle API Swipeable in ModalDrawer. animateTo di DrawerState è stato sostituito dai metodi open e close e l'offset ora è nullable. Usa requireOffset per richiedere l'offset. (I3de9e)
  • È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento degli antenati. (I2ba9d, b/203141462)
  • Utilizzato in Clickable per ritardare correttamente le interazioni con i tasti, quando i gesti potrebbero diventare eventi di scorrimento.
  • È stato corretto il problema per cui Clickables non ritardava correttamente le increspature quando veniva utilizzato all'interno di un Scrollable ViewGroup.
  • È stato aggiornato il riquadro e i riquadri per posticipare 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 l'istruzione onRefresh, se lo stato di aggiornamento non veniva modificato in 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 rilasciato. La versione 1.4.0-alpha02 contiene questi commit.

Modifiche all'API

  • awaitFirstDown e waitForUpOrCancellation ora accettano un PointerEventPass per una maggiore flessibilità. (I7579a, b/212091796)
  • È stato aggiunto il parametro minLines in Material e Material3 Text, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • È stato aggiunto il parametro minLines a BasicTex e BasicTextField. Consente di impostare l'altezza minima di questi composabili 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 rilasciato. La versione 1.4.0-alpha01 contiene questi commit.

Modifiche all'API

  • È stato aggiunto un nuovo metodo, awaitEachGesture(), per i rilevatori di gesti. Funziona in modo simile a forEachGesture(), ma il ciclo dei gesti opera interamente all'interno di AwaitPointerEventScope, quindi gli eventi non possono essere persi tra le iterazioni.
  • forEachGesture() è stato ritirato a favore di awaitEachGesture() perché consente la perdita di eventi tra un gesto e l'altro. (Iffc3f, b/251260206)

Versione 1.3

Versione 1.3.1

9 novembre 2022

androidx.compose.material:material-*:1.3.1 viene rilasciato. La versione 1.3.1 contiene questi commit.

Versione 1.3.0

24 ottobre 2022

androidx.compose.material:material-*:1.3.0 viene rilasciato. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

Modifica che comporta una rottura del comportamento

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

Modifiche all'API

  • Aggiungi un componente Aggiorna tirando a Compose (I29168).
  • Modifica il nome del parametro da values a value in RangeSlider (I3b79a).

Versione 1.3.0-rc01

5 ottobre 2022

androidx.compose.material:material-*:1.3.0-rc01 viene rilasciato. 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 rilasciato. La versione 1.3.0-beta03 contiene questi commit.

Modifiche all'API

  • Aggiungere un componente di aggiornamento a scorrimento a Componi (I29168)

Versione 1.3.0-beta02

7 settembre 2022

androidx.compose.material:material-*:1.3.0-beta02 viene rilasciato. 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 rilasciato. La versione 1.3.0-beta01 contiene questi commit.

Modifica che comporta una rottura 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 popup di Scrittura è stata ridotta da 30 dp a 8 dp. Questa modifica interessa sia le finestre di dialogo e popup personalizzate Material sia quelle ui. Questa modifica è stata apportata per attenuare un bug di accessibilità nelle versioni di Android precedenti a S e per garantire che i servizi di accessibilità all'interno di queste finestre siano in grado di interagire con i contenuti all'interno della finestra di dialogo o del popup.

Questa modifica ti interesserà solo se stai creando un'implementazione di una finestra di dialogo o di un popup personalizzato 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, ti consigliamo di creare una copia della finestra di dialogo o del popup con l'elevazione impostata. Questa operazione non è consigliata, in quanto l'accessibilità potrebbe essere influenzata negativamente e lo sviluppatore deve assicurarsi 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 rilasciato. 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 rilasciato. La versione 1.3.0-alpha02 contiene questi commit.

Contributo esterno

  • Risolvere il problema AnimatedVisibility relativo a FloatingActionButton in Scaffold (I3a0ae, b/224005027)

Versione 1.3.0-alpha01

29 giugno 2022

androidx.compose.material:material-*:1.3.0-alpha01 viene rilasciato. La versione 1.3.0-alpha01 contiene questi commit.

Modifiche all'API

  • Modifica il nome del parametro da values a value in RangeSlider (I3b79a)

Correzioni di bug

  • Aggiorna il Sample 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 rilasciato. La versione 1.2.1 contiene questi commit.

Versione 1.2.0

27 luglio 2022

androidx.compose.material:material-*:1.2.0 viene rilasciato. 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 rilasciato. 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 rilasciato. 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 rilasciato. La versione 1.2.0-rc01 contiene questi commit.

Modifiche all'API

  • Le interfacce nelle librerie di composizione ora vengono create utilizzando i metodi di interfaccia predefiniti di JDK8 (I5bcf1)

Correzioni di bug

  • Aggiorna il badge con la scheda dell'icona iniziale per applicarlo all'etichetta anziché all'icona. (I90993)

Versione 1.2.0-beta03

1° giugno 2022

androidx.compose.material:material-*:1.2.0-beta03 viene rilasciato. La versione 1.2.0-beta03 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug per cui BottomSheetScaffold veniva visualizzato sopra l'ombra della barra delle app superiore. BottomSheetScaffold ora prende in considerazione anche lo stato del foglio quando posiziona le barre di app. Nello stato compresso, le barre di app vengono posizionate sopra il foglio e il pulsante flottante; nello stato espanso, le barre di app vengono 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 rilasciato. 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 rilasciato. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • Questa è la prima release beta di 1.2.

Modifiche all'API

  • Il composable TextFieldDefaults.BorderStroke che disegna un tratto del bordo in OutlinedTextField è stato rinominato in TextFieldDefaults.BorderBox. (I5f295)

Versione 1.2.0-alpha08

20 aprile 2022

androidx.compose.material:material-*:1.2.0-alpha08 viene rilasciato. La versione 1.2.0-alpha08 contiene questi commit.

Modifiche all'API

  • Il consumo parziale (posizione OR verso il basso) è stato ritirato in PointerInputChange. Puoi utilizzare consume() per consumare completamente la modifica. Puoi utilizzare isConsumed per determinare se qualcun altro ha già utilizzato la modifica.
  • PointerInputChange::copy() ora crea sempre una copia superficiale. Ciò significa che le copie di PointerInputChange verranno consumate una volta consumata una delle copie. Se vuoi creare un PointerInputChange non vincolato, utilizza il costruttore. (Ie6be4, b/225669674)

Versione 1.2.0-alpha07

6 aprile 2022

androidx.compose.material:material-*:1.2.0-alpha07 viene rilasciato. 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 rilasciato. La versione 1.2.0-alpha06 contiene questi commit.

Modifiche all'API

  • Aggiornamenti all'API Card cliccabile per seguire le modifiche all'API Surface (I56bcb)
  • Aggiornamenti all'API Material 2 Surface che aggiungono ulteriori funzioni sovraccaricate 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 rilasciato. La versione 1.2.0-alpha05 contiene questi commit.

Modifiche all'API

  • LazyVerticalGrid e LazyHorizontalGrid 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 a androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • È stata ripristinata la modifica precedente che si basava esclusivamente su una visualizzazione per WindowInsetsControllerCompat e di nuovo è richiesta una finestra, obbligatoria per la gestione di alcuni flag della finestra. È stata ritirata la funzionalità ViewCompat.getWindowInsetsController a favore di WindowCompat.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 a includeFontPadding=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 delle assi trasversali (I17723)

Versione 1.2.0-alpha04

23 febbraio 2022

androidx.compose.material:material-*:1.2.0-alpha04 viene rilasciato. La versione 1.2.0-alpha04 contiene questi commit.

Modifiche all'API

  • Add support for filter chips (I39a6e, b/192585545)
  • Sono stati aggiunti TextFieldDecorationBox e OutlinedTextFieldDecorationBox. Se li utilizzi insieme a BasicTextField puoi creare un campo di testo personalizzato basato sui campi di testo di Material Design, ma con più opzioni di personalizzazione.
  • È stato fornito un modo per regolare i margini 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 e ComposableOpenTarget che consentono di generare report in fase di compilazione quando viene chiamata una funzione componibile che ha come target un applicatore per il quale non è stata progettata.

    Nella maggior parte dei casi, le annotazioni possono essere dedotte dal plug-in del compilatore di compose, pertanto l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un applicatore personalizzato, funzioni composable astratte (come metodi di interface), campi o variabili globali che sono lambda composable (le variabili e i parametri locali vengono dedotti), o quando si utilizza ComposeNode o una funzione composable correlata.

    Per gli applicatori personalizzati, le funzioni composable che chiamano ComposeNode o ReusableComposeNode devono aggiungere un'annotazione CompoableTarget per la funzione e per eventuali tipi di parametri lambda composable. Tuttavia, è consigliabile creare un'annotazione annotata con ComposableTargetMarker e poi utilizzare l'annotazione contrassegnata anziché ComposableTarget direttamente. Un'annotazione componibile contrassegnata con ComposableTargetMarker è equivalente a un ComposbleTarget con il nome completo della classe dell'attributo come parametro dell'applicatore. Per un esempio di utilizzo di ComposableTargetMarker, consulta anroidx.compose.ui.UiComposable. (I38f11)

Versione 1.2.0-alpha03

9 febbraio 2022

androidx.compose.material:material-*:1.2.0-alpha03 viene rilasciato. La versione 1.2.0-alpha03 contiene questi commit.

Correzioni di bug

Versione 1.2.0-alpha02

26 gennaio 2022

androidx.compose.material:material-*:1.2.0-alpha02 viene rilasciato. La versione 1.2.0-alpha02 contiene questi commit.

Modifiche all'API

  • È stato aggiunto NonRestartableComposable ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. In questo modo, vengono ridotti i controlli di memorizzazione (uguale) generati dal compilatore per tutti i parametri che vengono ripetuti nella funzione interna chiamata. (I90490)
  • Aggiunta del supporto per il chip di azioni (I07100, b/192585545)

Versione 1.2.0-alpha01

12 gennaio 2022

androidx.compose.material:material-*:1.2.0-alpha01 viene rilasciato. La versione 1.2.0-alpha01 contiene questi commit.

Aggiornamenti delle dipendenze

  • Ora dipende da Kotlin 1.6.10.

Contributo esterno

  • ModalBottomSheetState ora ha un flag isSkipHalfExpanded. Può essere impostato tramite il costruttore o aggiornato in un secondo momento impostando la proprietà isSkipHalfExpanded di ModalBottomSheetState su true. L'aggiornamento del valore di isSkipHalfExpanded provoca una ricostituzione del foglio. (I18b86, b/186669820)

Versione 1.1

Versione 1.1.1

23 febbraio 2022

androidx.compose.material:material-*:1.1.1 viene rilasciato. La versione 1.1.1 contiene questi commit.

Correzioni di bug

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

Versione 1.1.0

9 febbraio 2022

androidx.compose.material:material-*:1.1.0 viene rilasciato. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • Supporto stabile per l'effetto overscroll di Android 12
  • Miglioramenti alle dimensioni dei target di 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 touch target. Ad esempio, il touch target del pulsante verrà espanso fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design, garantendo un comportamento coerente se combini le viste e Compose. Questa modifica garantisce inoltre che, quando crei l'interfaccia utente utilizzando i componenti Material di Compose, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.
  • Supporto stabile per la barra di spostamento
  • Passa a una versione stabile un certo numero di API precedentemente sperimentali
  • 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 rilasciato. 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 indicate nelle linee guida sull'accessibilità di Material. Ad esempio, il touch target del pulsante verrà espanso fino a una dimensione minima di 48 x 48 dp, anche se imposti dimensioni inferiori per il pulsante. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design, garantendo un comportamento coerente se combini le viste e Compose. Questa modifica garantisce inoltre che, quando crei l'interfaccia utente utilizzando i componenti Material di Compose, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.

Correzioni di bug

  • Sono state aggiunte informazioni di debug migliori per l'ispettore 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 rilasciato. La versione 1.1.0-rc01 contiene questi commit.

Correzioni di bug

Versione 1.1.0-beta04

1° dicembre 2021

androidx.compose.material:material-*:1.1.0-beta04 viene rilasciato. La versione 1.1.0-beta04 contiene questi commit.

Nuove funzionalità

  • Aggiornata 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 rilasciato. 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 rilasciato. 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 scorrimento verso il basso. (Ibefe0, b/203141462)

Versione 1.1.0-beta01

27 ottobre 2021

androidx.compose.material:material-*:1.1.0-beta01 viene rilasciato. La versione 1.1.0-beta01 contiene questi commit.

Nuove funzionalità

  • Le increspature ora supportano gli stati di passaggio del mouse e di attivazione, quindi il passaggio del mouse sopra un componente come Pulsante ora mostrerà l'overlay dello stato corretto.

Versione 1.1.0-alpha06

13 ottobre 2021

androidx.compose.material:material-*:1.1.0-alpha06 viene rilasciato. La versione 1.1.0-alpha06 contiene questi commit.

Modifiche all'API

  • È stata aggiunta un'overload senza elementi secondari per Layout, con un'efficienza migliorata (Ib0d9a)
  • Implementazione di ExposedDropdownMenu in base a ExposedDropdownMenuBox con TextField e DropdownMenu all'interno (If60b2)
  • dismissOnOutsideClick è stato aggiunto a PopupProperties, sostituendo dismissOnClickOutside, che è stato deprecato. La nuova proprietà riceve la posizione del clic e i limiti dell'ancora, fornendo un controllo più preciso sull'eventuale chiamata di onDismissRequest. Ad esempio, può essere utile per impedire la chiusura dell'ancora per i tocchi sull'ancora.
    • updateAndroidWindowManagerFlags è stato aggiunto a PopupProperties, offrendo un controllo a basso livello sui flag passati dal popup a WindowManager di Android. Il parametro della funzione lambda sarà costituito dagli indicatori calcolati dai valori PopupProperties che generano indicatori WindowManager: ad esempio, focusable. Il risultato della funzione 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 abbia requisiti di comportamento molto specifici. (I6e9f9)

Versione 1.1.0-alpha05

29 settembre 2021

androidx.compose.material:material-*:1.1.0-alpha05 viene rilasciato. La versione 1.1.0-alpha05 contiene questi commit.

Modifiche all'API

  • Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. Poiché vengono aggiunte spaziature aggiuntive attorno ai componenti per assicurarsi che abbiano un touch target sufficientemente grande, questo potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti corrispondano alle dimensioni visive e non tengano conto delle dimensioni del touch target. Puoi utilizzare la proprietà sperimentale LocalMinimumTouchTargetEnforcement composition local per disattivare questo comportamento in una gerarchia, ma si tratta solo di una via di fuga 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. In questo modo è possibile modificare l'aspetto di TextField in base allo stato di attivazione. (I66923, b/198402662)

Versione 1.1.0-alpha04

15 settembre 2021

androidx.compose.material:material-*:1.1.0-alpha04 viene rilasciato. La versione 1.1.0-alpha04 contiene questi commit.

Modifiche all'API

  • performGesture e GestureScope ritirati, sostituiti da performTouchInput e TouchInjectionScope. (Ia5f3f, b/190493367)
  • È stato aggiunto touchBoundsInRoot a SemanticsNode per includere 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 minimi. (I43e10, b/171509422)
  • È stato aggiornato il composable Divider per rispettare Dp.Hairline per il parametro di spessore al fine di supportare il disegno di divisori di pixel singoli 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 rilasciato. La versione 1.1.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Compose 1.1.0-alpha03 è stato aggiornato in modo da dipendere da Kotlin 1.5.30. (I74545)

Modifiche all'API

  • È stato aggiunto il metodo di test per ottenere i limiti ritagliati. (I6b28e)
  • È stata aggiunta una dimensione minima del touch target a ViewConfiguration per l'utilizzo nella semantica e nell'input del cursore per garantire l'accessibilità. (Ie861c)

Versione 1.1.0-alpha02

18 agosto 2021

androidx.compose.material:material-*:1.1.0-alpha02 viene rilasciato. La versione 1.1.0-alpha02 contiene questi commit.

Contributo esterno

  • Correggere il comportamento di SwipeableState nel caso in cui l'offset scorrimento rientri in un errore di arrotondamento di un'ancora. (I03d39, b/191993377)

Versione 1.1.0-alpha01

4 agosto 2021

androidx.compose.material:material-*:1.1.0-alpha01 viene rilasciato. La versione 1.1.0-alpha01 contiene questi commit.

Modifiche all'API

  • Metodo DrawScope#drawImage aggiornato che utilizza i rettangoli di origine e di destinazione per utilizzare un parametro facoltativo FilterQuality. Questa opzione è utile per l'arte pixel che deve essere pixelata quando viene aumentata di dimensioni per l'arte basata su pixel. È stato aggiornato il composable BitmapPainter + Image per utilizzare anche un parametro facoltativo FilterQuality (Ie4fb0, b/180311607)
  • BadgeBox è stato rinominato in BadgedBox e i parametri sono stati modificati per accettare il composable Badge. È stato aggiunto il componente Badge, che corrisponde ai contenuti tipici di un badge per una casella con badge. (I639c6)
  • È stato aggiunto il componente NavigationRail. Consulta la documentazione e i sample per informazioni sull'utilizzo (I8de77)

Correzioni di bug

  • È stato aggiunto un esempio di NavigationRail allineato in basso e una demo dell'app Catalog. (I3cffc)
  • Ora i dialoghi seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultWidth su false per eseguire l'override di questo comportamento. (Iffaed, b/192682388)
  • È stata aggiunta una demo della barra di navigazione all'app del catalogo. (I04960)
  • È stata aggiunta una demo del badge all'app del catalogo. (If285d)

Versione 1.0

Versione 1.0.5

3 novembre 2021

androidx.compose.material:material-*:1.0.5 viene rilasciato. 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 rilasciato. La versione 1.0.4 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornata per dipendere da Kotlin 1.5.31

Versione 1.0.3

29 settembre 2021

androidx.compose.material:material-*:1.0.3 viene rilasciato. La versione 1.0.3 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornata per dipendere da Kotlin 1.5.30

Versione 1.0.2

1° settembre 2021

androidx.compose.material:material-*:1.0.2 viene rilasciato. La versione 1.0.2 contiene questi commit.

Aggiornamento 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 rilasciato. La versione 1.0.1 contiene questi commit.

Aggiornamenti delle dipendenze

  • Aggiornata per dipendere da Kotlin 1.5.21.

Versione 1.0.0

28 luglio 2021

androidx.compose.material:material-*:1.0.0 viene rilasciato. 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 relativo al rilascio di Compose.

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 versioni successive nel file build.gradle. Questo problema verrà risolto nella prossima versione di Android Studio Bumblebee e AGP 7.1. (b/194289155)

Versione 1.0.0-rc02

14 luglio 2021

androidx.compose.material:material-*:1.0.0-rc02 viene rilasciato. La versione 1.0.0-rc02 contiene questi commit.

Correzioni di bug

  • Ora i dialoghi seguono il comportamento di dimensionamento 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 rilasciato. La versione 1.0.0-rc01 contiene questi commit.

Modifiche all'API

  • È stato aggiunto il componente BadgeBox. Consulta la documentazione e i sample per informazioni sull'utilizzo (I5e284)
  • useDefaultMaxWidth in PopupProperties è stato rinominato in usePlatformDefaultWidth. (I05710)
  • Ora le finestre di dialogo possono utilizzare l'intera larghezza dello schermo. (I83929, b/190810877)
  • È stata aggiunta l'implementazione del cursore dell'intervallo sperimentale (I2f4b3)

Correzioni di bug

  • Per allinearsi alle specifiche di Material Design, OutlinedTextField con input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando l'etichetta viene utilizzata come segnaposto. Quest'ultimo è vero quando non è presente testo di immissione nel campo di testo e il campo di testo non è attivo. Con questa modifica è cambiato anche il significato del parametro error:Boolean nella funzione TextFieldColors.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 rilasciato. La versione 1.0.0-beta09 contiene questi commit.

Modifiche all'API

  • È stato aggiunto il parametro Forma a OutlinedTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
  • TextOverflow viene modificato in un'entità in linea. (I433af)

Correzioni di bug

  • Lo scrim in BottomDrawer, BackdropScaffold e ModalBottomSheetLayout scompare quando viene 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 situato nella directory src/main o equivalente. Il file specifica una regola per riga, dove una regola in questo caso è un pattern per la corrispondenza a metodi o classi nella libreria. La sintassi di queste regole è un superset del formato del profilo ART leggibile da persone che viene utilizzato quando si utilizza adb shell profman --dump-classes-and-methods .... Queste regole possono assumere una di 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 caratteri H, S e P 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 scelto come target. Ad esempio, la classe androidx.compose.runtime.SlotTable avrà un descrittore Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> è la firma del metodo e include il nome, i tipi di parametro e i tipi di ritorno del metodo. Ad esempio, il metodo fun isPlaced(): Boolean in LayoutNode ha la firma isPlaced()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 che ha il flag S indica che si tratta di un metodo 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 si tratta di un metodo 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 pacchettizzate negli elementi AAR. Quando viene creato un APK che include questi elementi, le regole vengono unite e utilizzate per creare un profilo ART binario compatto specifico per l'APK. ART può quindi sfruttare questo profilo quando l'APK è installato sui dispositivi per compilare in anticipo un sottoinsieme specifico dell'applicazione al fine di migliorarne le prestazioni, in particolare la prima esecuzione. Tieni presente che questo non avrà alcun effetto sulle applicazioni di debug.

Versione 1.0.0-beta08

2 giugno 2021

androidx.compose.material:material-*:1.0.0-beta08 viene rilasciato. La versione 1.0.0-beta08 contiene questi commit.

Nuove funzionalità

Modifica dell'API che comporta una modifica del comportamento

  • MODIFICHE AL COMPORTAMENTO: ora la scheda consuma i clic, rendendo nulli i clic aggiunti tramite Card(Modifier.clickable). Utilizza il nuovo sovraccarico sperimentale di una scheda che accetta onClick. (Ia8744, b/183775620)
    • È stato aggiunto un nuovo sovraccarico della scheda che gestisce i clic e altre funzionalità cliccabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale scheda non cliccabile con il simbolo Modifier.clickable perché in questi casi la scheda non taglia l'indicazione dell'eco.
  • BEHAVIOUR-BREAKING: Surface ora consuma i clic, rendendo i clic aggiunti tramite Surface(Modifier.clickable) non operativi. Utilizza il nuovo sovraccarico sperimentale di Surface che accetta onClick. (I73e6c, b/183775620)
    • È stata aggiunta una nuova sovraccarica di Surface che gestisce i clic e altre funzionalità selezionabili: indication, interactionSource, enabled/disabled. Non è stato possibile utilizzare una normale superficie non cliccabile con il simbolo Modifier.clickable perché in questi casi la superficie non taglia l'indicazione dell'ondulazione.

Modifiche all'API

  • FabPosition è stato convertito in una classe in linea da enum per supportare una potenziale espansione in futuro (I030fb)
  • È stato eseguito il refactoring degli utilizzi degli enum nelle classi in linea per evitare problemi con le istruzioni when esaustive quando vengono aggiunti nuovi valori di enum. (I2b5eb)
  • Aggiunge un timeout per i tocchi agli elementi cliccabili/attivabili/disattivabili per impedire la visualizzazione di un'eco durante lo scorrimento/trascinamento (Ia2704, b/168524931)
  • Le proprietà ContentDescription e Semantica testo non sono più valori singoli, ma elenchi. In questo modo è possibile unirli così come sono anziché concatenarli. Sono state inoltre fornite API di test migliori per utilizzare queste modifiche (Ica6bf, b/184825850)
  • Modifier.focusModifier() è deprecato e sostituito da Modifier.focusTarget() (I6c860)
  • Enum FocusState sostituito con un'interfaccia FocusState (Iccc1a, b/187055290)
  • LocalRippleNativeRendering è stato rimosso ora che l'implementazione dell'effetto ripple 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 registrate. (Ieb67d, b/177926591)
  • È stato aggiunto un file README per il catalogo di materiale di Compose esistente. (If9191)

Versione 1.0.0-beta07

18 maggio 2021

androidx.compose.material:material-*:1.0.0-beta07 viene rilasciato. La versione 1.0.0-beta07 contiene questi commit.

Modifiche all'API

  • Non è più necessario utilizzare i metodi di estensione per il supporto dei percorsi in Navigation Compose. (I22beb, b/172823546)

Versione 1.0.0-beta06

5 maggio 2021

androidx.compose.material:material-*:1.0.0-beta06 viene rilasciato. La versione 1.0.0-beta06 contiene questi commit.

Modifiche all'API

  • È stata eseguita la migrazione di Ripple per utilizzare RippleDrawable internamente sui dispositivi Android. Ciò significa che le animazioni di ripple verranno eseguite su RenderThread e saranno fluide anche quando il thread dell'interfaccia utente è sotto carico, ad esempio quando si passa da una schermata all'altra. Ciò non modifica l'API di Ripple, ma potrebbero essere introdotte modifiche al comportamento a seguito di questa modifica. Per facilitare la migrazione, è stato aggiunto LocalRippleNativeRendering: fornisci un valore false a questo CompositionLocal per eseguire il fallback all'implementazione dell'effetto ripple precedente all'interno di CompositionLocalProvider. Questa API è temporanea e verrà rimossa in futuro, quindi se riscontri problemi che ti inducono a utilizzarla, segnala un bug. (I902f8, b/168777351, b/183019123)
  • Sono state aggiunte le API di accessibilità CollectionInfo e CollectionItemInfo che consentono di contrassegnare la raccolta e i relativi elementi per i servizi di accessibilità (Id54ef, b/180479017)
  • È stata aggiunta l'API di accessibilità error che consente di contrassegnare un nodo contenente input non validi (I12997, b/180584804, b/182142737)

Correzioni di bug

  • Aggiornamento dell'implementazione degli inserti del catalogo Material di Compose da: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Le righe e le colonne secondarie con weight(fill = false) non fanno più in modo che l'elemento principale riempia l'intero spazio dell'asse principale disponibile. (Ied94d, b/186012444, b/184355105)

Versione 1.0.0-beta05

21 aprile 2021

androidx.compose.material:material-*:1.0.0-beta05 viene rilasciato. La versione 1.0.0-beta05 contiene questi commit.

Correzioni di bug

  • Sono state aggiunte immagini dei riquadri dei componenti, un selettore di temi e URL di menu più specifici al catalogo di Materiale di Compose esistente. (I9b58e)

Versione 1.0.0-beta04

7 aprile 2021

androidx.compose.material:material-*:1.0.0-beta04 viene rilasciato. La versione 1.0.0-beta04 contiene questi commit.

Modifiche all'API

  • MODIFICAZIONE ALL'API: lo stato DrawerState non estende più lo stato sperimentale SwipeableState.
    • MODIFICA ALL'API: BottomDrawerState ora è contrassegnato come sperimentale, in modo da corrispondere al componente BottomDrawer già sperimentale (I81114, b/181656094)
  • Rinomina hideSoftwareKeyboard e showSoftwareKeyboard su SoftwareKeyboardController in hide() e show() 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à informeranno automaticamente l'utente delle relative modifiche (Idcf6f, b/172590946)

Correzioni di bug

  • È stata aggiunta l'implementazione del catalogo di materiali di Compose al modulo esistente. Al momento mancano: immagini 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 rilasciato. La versione 1.0.0-beta03 contiene questi commit.

Modifiche all'API

  • DefaultMonotonicFrameClock è deprecato. La chiamata a withFrameNanos o Recomposer.runRecomposeAndApplyChanges senza MonotonicFrameClock ora genera un errore IllegalStateException. (I4eb0d)
  • È stata aggiunta una nuova API LeadingIconTab per supportare la visualizzazione di un'icona e di un testo in linea in una scheda. (I23267)

Contributo esterno

  • [di Jossi Wolf] BottomDrawer ora inserisce un a capo nei contenuti della sezione del riquadro. BottomDrawer non genera un IllegalStateException quando l'elemento principale ha un'altezza infinita. Ora il riquadro a scomparsa inferiore si aprirà in uno stato espanso se è più piccolo del 50% del riquadro principale. I documenti relativi a BottomDrawerState e ModalBottomSheetLayoutState sono stati aggiornati. Ora BottomDrawerState#isOpen restituisce true se è nello stato aperto o espanso. (I87241)

Versione 1.0.0-beta02

10 marzo 2021

androidx.compose.material:material-*:1.0.0-beta02 viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.

Modifiche all'API

  • È stata aggiunta una nuova API locale di composizione LocalSoftwareKeyboardController per sostituire l'interfaccia SoftwareKeyboardController precedente su TextField. (I5951e, b/168778053)

Correzioni di bug

  • Applicare limitazioni all'utilizzo pubblico delle API sperimentali (I6aa29, b/174531520)
  • È stato modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Inizia, in linea con la riga (Ib2dc7)
  • È stato aggiunto un nuovo modulo e un'interfaccia utente segnaposto per un catalogo di materiali di Compose, attualmente nidificato nelle demo dei test di integrazione esistenti. (Idfcb3)
  • androidx.compose.ui:ui non dipende più da AppCompat o Fragment. Se nella tua applicazione utilizzi ComposeView e Fragment e/o AppCompat, assicurati di utilizzare AppCompat 1.3 o versioni successive / Fragment 1.3 o versioni successive. Queste versioni sono necessarie per impostare correttamente il ciclo di vita e i proprietari 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 rilasciato. La versione 1.0.0-beta01 contiene questi commit.

Questa è la prima release di Compose 1.0.0 Beta.

Modifiche all'API

  • I modificatori delle taglie 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 su ImageBitmap e ImageVector companion. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
  • I modificatori per le dimensioni in base ai valori intrinseci non sono più sperimentali. (I15744)
  • Affermazioni dp rimosse (I798d2)
  • È stato rimosso il callback SoftwareKeyboardController da tutti i campi di testo per essere sostituito a breve da una nuova API. (Iae869, b/168778053)
  • Le funzioni lambda di azioni Switch, Checkbox e RadioButton ora sono facoltative. I Sample di caselle di controllo in riga cliccabile sono stati 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 come Button e Modifier.clickable(), utilizza interactionSource = remember { MutableInteractionSource() }.
    • Anziché: 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 lo stream 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 AccessibilityManager e LocalAccessibilityManager in CompositionLocals (I53520)
  • Sono stati rimossi i metodi LayoutCoordinates deprecati. Utilizza la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
  • Il dispositivo di scorrimento ora supporta lo stato attivo/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 viene lanciata se l'animazione viene interrotta. (I2cbbc, b/179695417)
  • È stato rimosso @ExperimentalRippleApi e RippleAlpha è stato modificato in modo da essere 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.
  • Aggiunge il modificatore selectionGroup che consente di contrassegnare una raccolta di schede o pulsanti di opzione per motivi di accessibilità (Ie5c29)
  • Aggiungi LazyListState.animateScrollToItem

    Questo metodo scorre in modo fluido fino a un elemento specifico dell'elenco. (I4bfd7)

  • ScrollableState.smoothScrollBy() è stato rinominato in animateScrollBy() LazyListState.snapToItemIndex() è stato rinominato in scrollToItem() ScrollState.smoothScrollTo() è stato rinominato in animateScrollTo() (I35ded)

  • Tutti i composabili contrassegnati con @ReadOnlyComposable ora vengono convalidati in fase di compilazione per garantire che effettuino chiamate solo ad altri @ReadOnlyComposables (I58961)

  • L'API TargetAnimation è stata rimossa. (If47d1, b/177457083)

  • La posizione di scorrimento in Modifier.verticalScroll()/horizontalScroll() è ora rappresentata con interi (I81298)

  • I pacchetti dei metodi smoothScrollBy e scrollBy sono stati modificati in androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)

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

  • I modificatori delle taglie 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 in defaultMinSize. (I4eaae)

  • L'orientamento è stato spostato nel pacchetto di base. VelocityTracker è passato 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 da chiamare (I16f60, b/175294473)

  • Providers è stato rinominato in CompositionLocalProvider

    • Il costruttore Composition non accetta più un parametro chiave ed è stato ritirato.
    • currentCompositeKeyHash è stata trasformata in una proprietà di primo livello componibile anziché in una funzione di primo livello componibile.
    • CompositionData e CompositionGroup sono stati spostati nello spazio dei nomi androidx.compose.runtime.tooling
    • ComposableLambda è stata creata come interfaccia anziché come classe concreta e non ha più parametri di tipo.
    • ComposableLambdaN è stata creata come interfaccia anziché come classe concreta e non ha più parametri di tipo.
    • La funzione snapshotFlow è stata spostata nello spazio dei nomi androidx.compose.runtime
    • Il metodo di unione di SnapshotMutationPolicy non è più sperimentale
    • La funzione clearRoots di primo livello @TestOnly è stata rimossa. Non è più necessario.
    • Le funzioni keySourceInfoOf e resetSourceInfo sono state rimosse. Non sono più necessari.
    • La funzione Composer.collectKeySourceInformation è stata rimossa. 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 file di Kotlin, la compatibilità binaria verrà interrotta, ma non la compatibilità con il codice sorgente, pertanto 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 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 precedentemente ritirate (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.
    • I parametri in BackdropScaffold sono stati riordinati in modo da rispettare le linee guida dell'API per i parametri obbligatori che precedono i parametri facoltativi.
    • Il parametro icon in BottomNavigationItem è stato spostato dopo selected e onClick.
    • Il parametro alwaysShowLabels in BottomNavigationItem è stato rinominato in alwaysShowLabel.
    • I parametri bodyContent in alcuni componenti sono stati rinominati in content.
    • Parametri riordinati in ButtonDefaults.buttonColors(). Tieni presente che, poiché il tipo di parametri non è cambiato, non verrà generato un errore nel codice. Assicurati di utilizzare parametri denominati o di aggiornare l'ordinamento manualmente, altrimenti il codice non funzionerà come in precedenza.
    • Parametro secondaryVariant aggiunto a darkColors(). Questo colore è in genere uguale a secondary nel tema scuro, ma viene aggiunto per coerenza e ulteriore personalizzazione.
    • Sono stati rimossi ElevationDefaults e animateElevation() dall'API pubblica perché non erano di uso comune / utili.
    • onValueChangeEnd in Slider è stato rinominato in onValueChangeFinished e impostato come nullable.
    • Il parametro text in Snackbar è stato rinominato in content per coerenza.
    • È stato aggiunto il parametro contentPadding a DropdownMenuItem per consentire la personalizzazione del padding predefinito e content è stato reso un'estensione di RowScope.
    • ModalDrawerLayout rinominato in ModalDrawer.
    • BottomDrawerLayout rinominato in BottomDrawer.
    • (I1cc66)
  • BasicTextField ora accetta Brush anziché Color per una migliore personalizzazione (I83a36)

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

  • È stata modificata la funzione Indication#createIndication() in Indication#rememberUpdatedIndication(InteractionState) ed è stato rimosso il parametro InteractionState da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo del disegno degli effetti visivi e non dell'avvio delle animazioni / della scrittura dello stato in risposta alle modifiche di InteractionState. Queste animazioni e scritture dello stato devono invece avvenire entro rememberUpdatedIndication(). Anche il parametro indication in Modifier.indication è stato modificato in modo da essere obbligatorio. (Ic1764, b/152525426)

Correzioni di bug

  • È stata aggiunta una nuova API locale di composizione LocalSoftwareKeyboardController per sostituire l'interfaccia SoftwareKeyboardController precedente su TextField. (I658b6, b/168778053)

Versione 1.0.0-alpha12

10 febbraio 2021

androidx.compose.material:material-*:1.0.0-alpha12 viene rilasciato. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche all'API

  • Modifier.pointerInput ora richiede chiavi di memorizzazione per indicare quando deve essere riavviata la coroutine di rilevamento dell'input del cursore per le nuove dipendenze. (I849cd)
  • BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
  • È stato aggiunto PaddingValues.Absolute e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
  • onImeActionPerformed è deprecato. Utilizza KeyboardActions (If0bbd, b/179071523)
  • Per una migliore corrispondenza delle convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stato rinominato in BitmapPainter per allinearsi a VectorPainter. (Iba381, b/174565889)
  • Animatable.snapTo e Animatable.stop ora sono 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 diversi classi in cui venivano utilizzati raramente. (I26702, b/178659281)
  • Rendi halfExpand() ed expand() in ModalBottomSheetState interni (Ic914e)
  • È stato modificato Indication#createInstance in modo che sia @Composable e 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 una configurazione ulteriore del popup sottostante. (I9c443)
  • loadFontResource è deprecato. Utilizza invece fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecati. Utilizza invece painterResource. (I6b809)
  • Sono stati rimossi i parametri toggle e toggleModifier da DropdownMenu e sono stati rinominati rispettivamente dropdownModifier, dropdownOffset e dropdownContent in modifier, offset e content. DropdownMenu ora si comporta in modo coerente con Popup, in cui il layout principale viene utilizzato per la posizione del menu. Nella maggior parte dei casi, puoi spostare toggle in modo che sia un fratello di DropdownMenu e racchiudere entrambi in un Box. Per ulteriori informazioni 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 le azioni di semantica di espansione e compressione. Aggiunti metodi 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 asse (I0ba93, b/175294473)
  • Gli ambienti sono stati rinominati in modo che corrispondano alla ridenominazione di Ambient -> CompositionLocal. Gli ambienti in precedenza si chiamavano AmbientFoo, ora i CompositionLocals si chiamano 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 di remember { mutableStateOf(0) }, rimuoveremo il composable savedInstanceState { 0 }. Dovresti utilizzare rememberSaveable { mutableStateOf(0) }, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno di MutableState può essere archiviato nel bundle. Se in precedenza passavi un oggetto di salvataggio personalizzato, ora devi utilizzare un nuovo sovraccarico di rememberSaveable che ha il parametro stateSaver. 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 sono stati spostati da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)

  • I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da left/right a start/end per supportare lo specchio automatico della forma nella direzione RTL. AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti per i casi in cui non è desiderato lo specchio automatico. (I61040, b/152756983)

  • I parametri text e icon di Tab e il parametro label di BottomNavigationItem sono stati modificati in modo da essere null, per trasmettere meglio il comportamento del componente quando questi parametri sono / non sono forniti, poiché influiscono sulle dimensioni e sul layout del componente. Se al momento passi emptyContent() per rappresentare nessun testo / icona / etichetta, devi utilizzare null. (I57ed4)

  • Il parametro di colore contentColorFor è stato rinominato in backgroundColor (I5bb67)

  • È stata ritirata la funzionalità TabDefaults e sostituita con TabRowDefaults. (I0f189)

  • È stata introdotta l'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine. È stata ristrutturata l'API ColorFilter in modo che sia un'interfaccia e corrisponda all'implementazione di PathEffect. (Ica1e8)

  • AnimatedValue/Float è ora deprecato. Utilizza invece Animatable. (I71345, b/177457083)

  • Aggiungi l'API SemanticsProperties.PaneTitle. (I20d5a)

  • Sono stati aggiunti i parametri abilitati a Tab e BottomNavigationItem per impedire che siano cliccabili. BottomNavigationItem è stato modificato in RowScope.BottomNavigationItem per esprimere meglio i requisiti di layout nell'API. (Id683d)

  • I filtri tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter e pressIndicaitonGestureFilter sono stati ritirati. Utilizza Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestures. (I6baf9, b/175294473)

  • Aggiungi il parametro layoutDirection a createOutline della forma. In questo modo è possibile creare forme che tengano conto della direzione del layout. (I57c20, b/152756983)

  • Recomposer.current() rimosso. [Abstract]Per impostazione predefinita, ComposeView ora utilizza Recomposer con ambito finestra creati in modo lazy e gestiti da ViewTreeLifecycleOwner per la finestra. I tick di animazione basati su recomposition e withFrameNanos vengono messi in pausa quando il ciclo di vita dell'host è interrotto. (I38e11)

Correzioni di bug

  • L'icona verrà ora ridimensionata in base alle sue dimensioni, rispettando i modificatori di dimensioni applicati. Ad esempio, Icon(.., modifier = Modifier.size(50.dp) ora verrà visualizzato 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 rilasciato. La versione 1.0.0-alpha11 contiene questi commit.

Modifiche all'API

  • Alcune API Material non saranno più @Experimental (I5d20e)
  • Il parametro Descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione ai servizi di accessibilità (I2ac4c)
  • Modifica le interfacce dei parametri con stato di Material per avere funzioni @Composable che restituiscono State<T>. Aggiunge Animatable.asState() per semplificare la conversione di un elemento Animatable in uno stato. Modifica anche animateElevation in modo che sia un'estensione di sospensione su Animatable. (If613c)
  • Snackbar, SnackbarHost e SnackbarHostState non sono più @ExperimentalMaterialAPI (Id1fb5)
  • Le classi di dati Typography, Shapes e TabPosition non sono più disponibili. Aggiunge la funzione di copia per la tipografia e le forme per sostituire quelle generate. (I40037)
  • Sono state eliminate alcune API Material precedentemente ritirate (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)
  • Lo stato iniziale in updateTransition è ora supportato (Ifd51d)
  • Con restrizioni è stato rielaborato come BoxWithConstraints e spostato in foundation.layout. (I9420b, b/173387208)
  • Ritirare scrollBy non in sospensione, rimuovere scrollTo non in sospensione

    Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere la fine dello scorrimento. Nell'ambito di questa transizione, stiamo ritirando e/o rimuovendo le versioni non sospese di queste funzioni. (Ie9ced)

  • Ritiro della funzionalità smoothScrollBy non in sospensione Ora consigliamo di utilizzare le funzioni in sospensione per controllare lo scorrimento e attendere il completamento dello scorrimento. Nell'ambito di questa transizione, stiamo ritirando le versioni non in sospensione di queste funzioni. (I12880)

  • È stato introdotto ComposeContentTestRule, che estende ComposeTestRule e definisce setContent, che è stato rimosso da ComposeTestRule. È stato aggiunto un metodo di fabbrica createEmptyComposeRule() che restituisce un ComposeTestRule e non avvia un'attività per lo sviluppatore. Da utilizzare quando vuoi avviare l'attività durante il test, ad esempio utilizzando ActivityScenario.launch (I9d782, b/174472899)

  • L'effetto ripple utilizzato in Button e FloatingActionButton non può più essere personalizzato fornendo una nuova indicazione tramite AmbientIndication. Non è mai stato inteso come un modo per personalizzare questi componenti e ora li rende coerenti con gli altri componenti Material. Per personalizzare le increspature in un'applicazione, consulta RippleTheme. (I546c5)

  • animateAsState ora è animateFooAsState, dove Foo è il tipo della variabile da animare, ad esempio Float, Dp, Offset e così via (Ie7e25)

  • BasicTextField ha ricevuto un nuovo parametro denominato decorationBox. Consente di aggiungere decorazioni come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area target di hit. (I16996)

  • Correzione di un bug che non consentiva 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 le dimensioni della finestra. (I62db4)

  • Ora la superficie può avere più elementi secondari di layout. (I66a92, b/144488459)

  • invalidate e compositionReference() sono ora deprecati a favore di currentRecomposeScope e rememberCompositionReference rispettivamente. (I583a8)

  • Modifica PopupPositionProvider in modo che utilizzi coordinate relative alla finestra, non coordinate globali. Rinomina parentGlobalBounds in anchorBounds e modifica windowGlobalBounds in windowSize: IntSize (I2994a)

  • La durata e il tempo di attività verranno sostituiti da Long millisecondi e questo passaggio rimuove la dipendenza dell'input del cursore da queste classi. (Ia33b2, b/175142755, b/177420019)

  • AnimatedFloat.fling che accetta FlingConfig è stato rimosso. Utilizza invece suspend Animatable.animateDecay. (I4659b, b/177457083)

  • ora è possibile creare elementi cliccabili, attivabili e selezionabili al di fuori della composizione (I0a130, b/172938345, b/175294473)

  • La funzionalità di attenuazione è stata modificata in un'interfaccia funzionale (Ib14e5)

  • Le colonne/le righe scorrevoli sono state ritirate. L'utilizzo di ScrollableColumn è meno efficiente rispetto a LazyColumn quando hai contenuti di scorrimento di grandi dimensioni, perché con LazyColumn possiamo comporre/misurare/disegnare solo gli elementi visibili. Per evitare che gli utenti utilizzino un metodo inefficace, abbiamo deciso di ritirare ScrollableColumn e ScrollableRow e di promuovere l'utilizzo di LazyColumn e LazyRow. Gli utenti possono comunque decidere di non avere bisogno del comportamento lazy e utilizzare direttamente i modificatori come questo: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

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

  • Sono stati rimossi i metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)

  • Sono stati ritirati i metodi per le coordinate globali e sono stati creati nuovi metodi per le coordinate basate su finestre. (Iee284)

  • È stato aggiunto Modifier.toolingGraphicsLayer, che aggiunge un modificatore del livello grafico quando l'ispezione è attivata. (I315df)

  • FocusRequester.createRefs è ora contrassegnato come sperimentale perché potrebbe cambiare. (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato come @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)

  • È stata aggiornata l'API di grafica vettoriale 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 rilasciato. La versione 1.0.0-alpha10 contiene questi commit.

Modifiche all'API

  • Velocità modificata per includere componenti e operazioni matematiche. (Ib0447)
  • @ExperimentalTesting è stato rinominato in @ExperimentalTestApi per essere coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)
  • È stata rinominata la posizione in DpOffset ed è stato rimosso getDistance() (Ib2dfd)
  • È stato rinominato Color.useOrElse() in Color.takeOrElse() (Ifdcf5)
  • Aggiungi il pulsante di attivazione/disattivazione a Strings.kt di base (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 e reso interno. Sono stati aggiornati gli utilizzi di nativeClass nelle implementazioni di equals in modo da utilizzare "è MyClass". (I4f734)

Correzioni di bug

  • È stato aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
  • animate() viene ora sostituito con animateAsState(), che restituisce un State<T> anziché T. Ciò consente un miglior rendimento, in quanto l'ambito dell'invalidazione può essere ridotto al punto in cui viene letto il valore di Stato. (Ib179e)
  • Aggiungi l'API di ruolo Semantics e aggiungi il ruolo come parametro a SemanticsModifier, che è selezionabile, attivabile e disattivabile. È stato 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 rilasciato. La versione 1.0.0-alpha09 contiene questi commit.

Modifiche all'API

  • È stata aggiunta un'API per attivare manualmente l'animazione di assestamento e il trascinamento in Modifier.swipeable (Iaa17a, b/162408885)
  • Gli oggetti *Constants, come ButtonConstants, sono stati rinominati in modo che terminino con Defaults, ad esempio ButtonDefaults. Rimuove anche i prefissi default non necessari dalle proprietà in questi nuovi oggetti. (Ibb915, b/159982740)
  • Compose supporta i getter delle proprietà che possono eseguire invocazioni composable. Il supporto per questa funzionalità non verrà rimosso, ma la sintassi per dichiarare un getter della proprietà come @Composable sta cambiando.

    La sintassi ora non più supportata per farlo consisteva nell'annotare la 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 diventerà eventualmente un errore di compilazione. (Id9197)

  • È stata aggiunta la libreria androidx.compose.material:material-ripple contenente le API di ripple per consentire la creazione di componenti interattivi senza il resto della libreria Material. rememberRippleIndication è stato ritirato e sostituito da rememberRipple. (Ibdf11)

Correzioni di bug

  • Le 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 lazy un'istanza di shader quando sono disponibili informazioni sulle dimensioni dell'ambiente di disegno. Questo è utile per definire gradienti che occupano l'intero spazio di disegno di un composable al momento della composizione, senza dover implementare DrawModifier personalizzati.

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

  • Modifier.focusObserver è deprecato. Utilizza Modifier.onFocusChanged o Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)

  • Ritiro di LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Utilizza LazyColumn e LazyRow (I5b48c)

  • È stato spostato Dp.VectorConverter, Position.VectorConverter e così via in animation-core e sono stati ritirati i vecchi VectorConveters (If0c4b)

  • L'API Autofill è ora un'API sperimentale e richiede l'attivazione (I0a1ec)

  • Aggiunta di dichiarazioni di scomposizione per creare istanze di FocusRequester (I35d84, b/174817008)

  • accessibilityLabel è stata rinominata contentDescription. accessibilityValue è stata rinominata stateDescription. (I250f2)

  • Nuova funzione infiniteRepeatable per la creazione di un'istanza 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 le semantiche dei discendenti e impostarne di nuove. (I277ca)

  • È stato spostato ContentDrawScope nel modulo ui-graphics per essere associato a 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 vengono rilasciati. La versione 1.0.0-alpha08 contiene questi commit.

Modifiche all'API

  • MaterialTheme ora imposta i colori corretti per i manici 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 il nome e la posizione dei parametri lambda componibili, per verificare la coerenza con le linee guida di Compose. È stata inoltre eseguita la migrazione di alcune API che utilizzano children come nome per la funzione lambda finale a content, in base alle indicazioni e al controllo lint. (Iec48e)
  • È stato rinominato VectorAsset in ImageVector. È stato spostato e rinominato VectorAsset in Builder per essere una classe interna di ImageVector in base alle linee guida del Consiglio API. È stato aggiunto un alias di tipo di VectorAssetBuilder per collegarsi a ImageVector.Builder per la compatibilità. (Icfdc8)
  • I metodi ImageAsset e correlati sono stati rinominati in ImageBitmap. (Ia2d99)
  • Le proprietà di semantica di base sono state spostate nella UI (I6f05c)
  • fun RippleIndication() è stato ritirato e sostituito con rememberRippleIndication() per coerenza con altre API. (Id8e2c)
  • È stato aggiunto un parametro a riga singola in 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 l'azione di 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 metodi di tipo/helper per assistere nella migrazione dalle API non più supportate alle API attuali. (Id6044, b/173834241)
  • Modifier.drawLayer è stato rinominato in Modifier.graphicsLayer. Inoltre, sono state aggiornate le classi correlate a GraphicsLayer in base al feedback sull'API. (I0bd29, b/173834241)
  • <T> è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)
  • Sono state aggiunte le API Modifier.scale/rotate per comodità di drawLayer.
    • Modifier.drawOpacity rinominato in Modifier.alpha
    • Modifier.drawShadow rinominato in Modifier.shadow (I264ca, b/173208140)
  • Il parametro di allineamento della casella è stato rinominato in contentAlignment. (I2c957)
  • I modificatori offsetPx sono stati rinominati in offset. Ora accettano parametri lambda anziché stato. (Ic3021, b/173594846)
  • Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1)
  • È stato aggiunto il controllo lint per i parametri di modificatore nelle funzioni Composable. Questo controllo lint verifica la consistenza di nome, tipo di ritorno, valore predefinito e ordine del parametro con le linee guida di Compose. (If493b)
  • API TextFieldValue aggiornata
    • è stato impostato TextFieldValue.composition come di sola lettura
    • Eccezione rimossa lanciata per 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 ricompozione e il nuovo layout quando si verifica la modifica dello stato. DrawLayerModifier è ora interno in preparazione alla migrazione della relativa logica nel metodo placeable.placeWithLayer() di LayoutModifier (I15e9f, b/173030831)
  • Sono stati ritirati gli ambienti con il suffisso Ambient e sostituiti con nuove proprietà con prefisso Ambient, seguendo le linee guida per gli altri ambienti e l'API Compose. (I33440)
  • È stato aggiunto il controllo lint per verificare che le fabbriche di modificatori utilizzino androidx.compose.ui.composed {} internamente, anziché essere contrassegnate come @Composable. (I3c4bc)
  • L'argomento semantico 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 in TextUnit.Unspecified per coerenza con le altre unità. (Ifce19)
  • L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
  • L'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 vengono rilasciati. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche all'API

  • L'evidenziazione è stata ritirata e sostituita da AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alpha dei contenuti preferiti per una parte della gerarchia, in modo simile a come AmbientContentColor rappresenta il colore dei contenuti preferiti. Per impostazione predefinita, il testo e l'icona ora utilizzano il valore corrente di AmbientContentAlpha e puoi eseguire manualmente: color.copy(alpha = AmbientContentAlpha.current) per ottenere lo stesso effetto nei componenti. Anziché utilizzare ProvideEmphasis, puoi semplicemente fornire un valore direttamente 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 personalizzabile di alto livello. Per un componente di testo di base che non utilizza il colore / lo stile di testo del tema, utilizza BasicText. (Ie6ae0)
  • È stato aggiunto maxLines ai campi di testo (Ib2a5b)
  • Aggiorna TextFields in modo che accetti KeyboardOptions (Ida7f3)
  • Ora la superficie utilizza l'elevazione assoluta (totale) per calcolare gli overlay di elevazione, quindi una superficie nidificata in un'altra utilizzerà l'elevazione combinata per disegnare l'overlay. (I7bd2b, b/171031040)

Correzioni di bug

  • captureToBitmap spostati in captureToImage. (I86385)
  • Gli elementi di base AmbientTextStyle, ProvideTextStyle e AmbientContentColor sono stati ritirati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, devi invece creare ambienti di temi specifici del tuo sistema di design 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 senza opinioni che non utilizza i valori di un tema, consulta androidx.compose.foundation.BasicText. (If64cb)
  • Rinomina KeyboardOptions in 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)
  • L'API Icon è stata aggiornata in modo da accettare Color.Unspecified come possibile colore di tinta che disegnerà l'asset o il pittore fornito senza un filtro di colore. In precedenza, gli tentativi di ignorare la colorazione con Color.Unspecified coloravano con un colore trasparente, senza che venisse visualizzato nulla. (I049e2, b/171624632)
  • relativePaddingFrom è stato rinominato in paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare facilmente le distanze dai limiti del layout alle linee di base del testo. (I0440a, b/170633813)
  • LaunchedTask è stato rinominato in LaunchedEffect per coerenza con le API SideEffect e DisposableEffect. Per promuovere le best practice, non è consentito LaunchedEffect senza parametri subject. (Ifd3d4)
  • MeasureResult è stato spostato da MeasureScope. (Ibf96d, b/171184002)
  • Diversi simboli relativi al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424)

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 vengono rilasciati. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche all'API

  • androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non vuoi utilizzare la libreria Material, puoi anche utilizzare il componente immagine / Modifier.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 stati diversi. Consulta le funzioni predefinite in ButtonConstants per personalizzare questi parametri. (Ic5b7b)
  • Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un RadioButton in stati diversi. Consulta RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati in stati diversi. (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 in stati diversi. (I7dbdb)

Correzioni di bug

  • I componenti Material non impostano più l'elevazione come z-index. Ciò significa che all'interno dello stesso elemento principale, l'elemento secondario con l'ombra più grande non verrà disegnato automaticamente sopra l'elemento secondario con l'ombra più piccola. Se hai ancora bisogno di questo comportamento, imposta Modifier.zIndex() manualmente dove necessario (I70417, b/170623932)
  • Ritirare VectorPainter in favore di rememberVectorPainter per indicare meglio che l'API composable internamente sfrutta "remember" per mantenere i dati nelle composizioni. (Ifda43)
  • Attiva le transizioni in ComposeTestRule; rimuovi l'opzione per attivare il cursore lampeggiante da ComposeTestRule. (If0de3)
  • È stata aggiunta l'opzione di tastiera a riga singola a CoreTextField (I72e6d)
  • L'API Radius è stata rinominata in CornerRadius per esprimere meglio il modo in cui viene utilizzata in Compose. Documentazione aggiornata per indicare che i raggi di angolo negativi vengono bloccati a zero. (I130c7, b/168762961)
  • È stato eseguito il refactoring di DrawScope e ContentDrawScope in modo che siano interfacce invece di classi astratte
    • È stata creata l'implementazione di CanvasDrawScope di DrawScope
    • Implementazioni ristrutturate di DrawScope per utilizzare CanvasScope
    • È stato creato DrawContext per racchiudere le dipendenze per DrawScope
    • Sono stati rimossi i metodi obsoleti in DrawScope (I56f5e)
  • La casella è stata creata come 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 vengono rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche all'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)
  • Per impostazione predefinita, Modifier.swipeable ha soglie di 56 dp per gli stati (Iab825, b/168610267)
  • Tutti gli stati di Scaffold contrassegnati come @Stable. drawerGesturesEnabled in ScaffoldState è stato spostato in Scaffold stesso. (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)
  • Ritirata l'API contentColor() e currentTextStyle(), che vengono sostituite rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando .current nella proprietà ambient, come per qualsiasi altro ambient. Questa modifica è stata apportata per garantire la coerenza e per evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà dell'ambiente per descriverne meglio lo scopo, come segue:

    • ColoreContenutoAmbiente -> ColoreContenutoAmbiente
    • 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 degli indicatori di valori per le classi in linea, rinomina Color.Unset in Color.Unspecified per garantire la coerenza con le altre classi in linea (I97611, b/169797763)
  • Viene introdotto TextOverflow.None. Quando overflow è None, Text non gestisce più l'overflow e segnala le sue dimensioni effettive a LayoutNode. (I175c9, b/158830170)
  • launchInComposition è stato rinominato in LaunchedTask per rispettare le linee guida dell'API Compose (I99a8e)
  • OnPositionedModifier viene rinominato in OnGloballyPositionedModifier e onPositioned() viene 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 vengono rilasciati. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche all'API

  • Espone i parametri InteractionState nei componenti Material con stato, per consentire l'estrazione dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
  • Modifica i parametri *color su 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 lo desideri. Per ulteriori informazioni, consulta le nuove funzioni di colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532)
  • È stato rinominato rememberBackdropState in rememberBackdropScaffoldState e aggiunto un parametro aggiuntivo per l'orologio dell'animazione. Il parametro backdropScaffoldState di BackdropScaffold è stato rinominato in scaffoldState. Rinominato 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

  • Sono state aggiornate molte API di grafica
    • API di trasformazione di scala e rotazione aggiornate per utilizzare un singolo parametro Offset per rappresentare la coordinata pivot anziché parametri float separati per le coordinate x/y in DrawScope e DrawTransform
    • Sono stati rimossi i metodi Rect.expandToInclude e Rect.join
    • La documentazione di Raggio è stata aggiornata per indicare ovale oltre a ellittico
    • È stata aggiunta la documentazione per indicare che il costruttore pubblico della classe Radius inline non deve essere chiamato direttamente, ma gli oggetti Radius devono essere istigati tramite i costruttori delle funzioni.
    • Sono state rimosse le API RoundRect per eseguire query su topRight, bottomRight, bottomCenter e così via.
    • Ritiro di Rect.shift a favore di Rect.translate
    • Sono state rimosse le API RoundRect.grow e Rect.shrink
    • Rinominata RoundRect.outerRect in Rect.boundingRect
    • Sono stati rimossi i metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
    • RoundRect.latoPiùLungo è stato rinominato in RoundRect.maxDimension
    • Rinominata RoundRect.shortestSide in RoundRect.minDimension
    • È stata modificata la proprietà RoundRect.center in modo che sia una proprietà anziché una funzione
    • Il costruttore RoundRect è stato aggiornato in modo da 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 inizio in 0,0
    • È stata aggiunta un'API di destrutturazione a Radius
    • È stata eseguita la migrazione di varie funzioni di estensione di RoundRect in modo che diventino proprietà
    • (I8f5c7, b/168762961)
  • foundation.Box è stato ritirato. Utilizza invece foundation.layout.Box. (Ie5950, b/167680279)
  • La funzionalità Stack è stata rinominata in Box. La cassetta esistente verrà ritirata a favore della nuova cassetta in compose.foundation.layout. Il comportamento della nuova casella è impilare gli elementi secondari uno sopra l'altro quando sono presenti più elementi secondari. Questo è diverso dalla casella precedente, che si comportava in modo simile a una colonna. (I94893, b/167680279)
  • I parametri di decorazione delle caselle sono stati ritirati. Se vuoi aggiungere decorazioni/spaziatura alla casella, utilizza i modificatori (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • Sono state aggiornate molte API di grafica
    • API DrawScope aggiornate con metodi di trasformazione basati su ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo l'invocazione del callback
    • Documentazione di clipPath aggiornata per fare riferimento a Path instead of rounded rectangle
    • Spaziatura fissa nella documentazione per il parametro giusto in clipPath
    • È stato rinominato DrawScope.drawCanvas in drawIntoCanvas e è stato rimosso il parametro size
    • I parametri dx/dy nel metodo inset sono stati rinominati in orizzontale e verticale
    • È stata aggiunta un'overload di inset che fornisce lo stesso valore di inset a tutti e quattro i limiti
    • È stata rimossa la documentazione relativa al metodo di inset che indicava che l'inset verrebbe applicato a tutti e quattro i lati
    • Documentazione aggiornata per la classe Rect
    • Commenti aggiornati sui parametri Rect in modo che corrispondano allo stile kdoc
    • Sono stati rimossi Rect.join e Rect.expandToInclude
    • È stata creata un'overload per Rect.translate(offset) e ritirato Rect.shift
    • (If086a, b/167737376)
  • Abbiamo impedito le importazioni statiche dei contenuti degli ambiti di layout (ad es. alignWithSiblings in RowScope). Dovresti utilizzare 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 vengono rilasciati. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche all'API

  • Rinomina il parametro onSelect di BottomNavigationItem in onClick (I91925, b/161809324)
  • Aggiunge il parametro InteractionState a BottomNavigationItem e Tab, consentendo di sollevare questo stato e di modificare la visualizzazione del componente in stati diversi. (Ia3e9e, b/168025711)
  • Rimuove i parametri disabledBackgroundColor e disabledContentColor dai pulsanti. Dovresti invece utilizzare le nuove funzioni di colore predefinite in ButtonConstants. Se stai già impostando contentColor / backgroundColor in modo esplicito, ti consigliamo di utilizzare queste funzioni predefinite e di personalizzare alcuni / tutti i parametri per evitare di sovrascrivere il colore per entrambi gli stati abilitati / disattivati. (If9b52)
  • Il colore di sfondo del campo di testo non applica più implicitamente la trasparenza alpha. Verrà invece applicato direttamente qualsiasi colore fornito tramite il parametro backgroundColor. (Iecee9, b/167951441)
  • InnerPadding è stato rinominato in PaddingValues. (I195f1, b/167389171)
  • I parametri resistanceFactorAtMin e resistanceFactorAtMax in Modifier.swipeable sono stati sostituiti da un singolo parametro di resistenza. In SwipeableConstants è stato aggiunto un nuovo metodo defaultResistanceConfig. (I54238)
  • Aggiunge il supporto dell'elevazione stateful animata per Button e FloatingActionButton. Ora l'elevazione viene animata tra gli stati predefinito e premuto. Per personalizzare l'elevazione tra gli stati, utilizza ButtonConstants.defaultAnimatedElevation() e FloatingActionButtonConstants.defaultAnimatedElevation() anziché impostare un valore Dp fisso 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 o waitForIdle sono ora ritirate. Esegui la migrazione alle nuove controparti definite in ComposeTestRule (I7f45a).
  • DpConstraints e le API che lo utilizzano sono stati ritirati. (I90cdb, b/167389835)
  • I parametri minWidth e maxWidth di widthIn sono stati rinominati in min e max. Analogamente per preferredWidthIn, heightIn, preferredHeightIn. (I0e5e1, b/167389544)
  • Rimuovi le azioni di scorrimento avanti/indietro. Sono stati aggiunti passaggi in AccessibilityRangeInfo. (Ia47b0)
  • Gli utilizzi di gravity sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
  • È stato aggiunto onNode e altri metodi globali a ComposeTestRule poiché quelli globali attuali verranno ritirati. (Ieae36)
  • createAndroidComposeRule e AndroidInputDispatcher spostati da androidx.ui.test.android a androidx.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 vengono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche all'API

  • È stato aggiunto un componente BackdropScaffold sperimentale. (Iad908)

Correzioni di bug

  • Matrix4 è stato sostituito con 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 vengono 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 vengono rilasciati. La versione 0.1.0-dev17 contiene questi commit.

Modifiche all'API

  • I componenti RadioGroup e RadioGroupItems precedentemente ritirati sono stati rimossi. Utilizza invece riga e RadioButton (I381b7, b/163806637)
  • Sono stati rimossi i callback onFocusChanged da TextField. Utilizza invece 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 la creazione di SwipeableState. (I2fc9c, b/163129614, b/163132293)
  • È stato aggiunto il supporto della barra di notifica con il posizionamento e l'inserimento in coda corretto. Accedi tramite la funzione di sospensione SnackbarHostState.showSnackbar. Inoltre:
    • Sono stati aggiunti i componenti SnackbarHost. Ospita snackbar in base allo stato ed è responsabile della transizione tra snackbar.
    • È stato aggiunto SnackbarHostState per consentire il controllo delle snackbar e degli host di snackbar e per disaccoppiarlo da ScaffoldState. Puoi accedere a questo stato anche tramite scaffoldState.snackbarHostState.
    • È stato aggiunto il sovraccarico della barra snack per supportare l'interfaccia comune tra snackbarHostState e le barre snack stesse. (I79aaa)
  • Aggiunge il parametro abilitato 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 di Material Design del campo di testo compilato. (I5e889)
  • AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
  • Sono stati aggiunti i parametri in Modifier.swipeable per modificare l'entità della resistenza quando si scorre oltre i limiti. Parametri Value [min/max]rimossi. (I93d98)
  • È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e la spaziatura interna è stata rimossa da CircularProgressIndicator. È stato aggiunto il nuovo ProgressIndicatorConstants.DefaultProgressAnimationSpec che può essere utilizzato come AnimationSpec predefinito 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 sono 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 garantire la coerenza con altre API (Ia2d12, b/161807532)
  • Suddivide 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 da TabConstants. TabRow.TabPosition è stato spostato a livello superiore (TabPosition) e indicatorContainer è stato rinominato in indicator. 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 preleva una coppia di stati (di tipo T) e restituisce la soglia tra di loro sotto forma di ThresholdConfig. A SwipeToDismiss è stato aggiunto il parametro dismissThresholds, che è una funzione lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
  • Il parametro di colore della scheda è stato rinominato in backgroundColor (I01fc1, b/161809546)
  • Ora la barra di notifica ha colori di sfondo e contenuti personalizzabili (I238f2, b/161804381)
  • I parametri di personalizzazione modifier, backgroundColor, contentColor e scrimColor sono stati aggiunti ai riquadri (I23655, b/161804378)
  • Il composable state { ... } è stato ritirato a favore di chiamate esplicite a remember { mutableStateOf(...) } per maggiore chiarezza. Ciò riduce la superficie complessiva dell'API e il numero di concetti per la gestione dello stato e corrisponde al pattern by mutableStateOf() per la delega delle proprietà della classe. (Ia5727)
  • Il parametro padding del pulsante è stato rinominato in contentPadding (Id252e, b/161809394)
  • Aggiungi un componente Materiale sperimentale SwipeToDismiss. (I129e5)

Correzioni di bug

  • onChildPositioned e OnChildPositionedModifier sono stati rimossi. Gli sviluppatori devono utilizzare onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766)
  • È stata aggiunta la funzione lambda mergePolicy a SemanticsPropertyKey. Questo può essere utilizzato per definire un criterio personalizzato per l'unione con la semantica di mergeAllDescendants. Il criterio predefinito è utilizzare il valore principale se già presente, altrimenti il valore secondario. (Iaf6c4, b/161979921)
  • IntSize ora è una classe in linea (I2bf42)
  • PlacementScope.placeAbsolute() è stato rinominato in PlacementScope.place() e il precedente PlacementScope.place() è stato rinominato in PlacementScope.placeRelative(). Di conseguenza, il metodo PlacementScope.place() non rispecchierà più automaticamente la posizione nei contesti da destra a sinistra. Se vuoi, utilizza invece PlacementScope.placeRelative(). (I873ac, b/162916675)
  • È stato ritirato PxBounds in favore di Rect. Sono stati aggiornati tutti gli utilizzi di PxBounds con rect e sono state aggiunte annotazioni di ritiro/sostituzione appropriate per facilitare la migrazione. (I37038, b/162627058)
  • RRect è stato rinominato in 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 vengono rilasciati. La versione 0.1.0-dev16 contiene questi commit.

Modifiche all'API

  • Colors 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 componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
  • ColorPalette è stato rinominato in Colori per mappare meglio il sistema di colori di Material e rimuovere la confusione sul fatto che ColorPalette sia un oggetto di temi "generico", anziché un'implementazione specifica del sistema di colori di Material. Inoltre, rinomina lightColorPalette e darkColorPalette in lightColors e darkColors rispettivamente. (I9e976, b/161812111)
  • Rinomina il parametro text di BottomNavigationItem in label, onSelected in onSelect, activeColor in selectedContentColor, inactiveColor in unselectedContentColor 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 ereditarlo. [Modal/Bottom]DrawerLayout non accetta più un parametro onStateChange. (I72332, b/148023068)
  • Il pacchetto foundation.shape.corner è stato appiattito in foundation.share (I46491, b/161887429)
  • È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
  • Material FilledTextField è stato rinominato in TextField e la funzionalità di base TextField è stata rinominata in BaseTextField per rendere più semplice la scoperta e l'utilizzo dell'API più semplice (Ia6242, b/155482676)

Correzioni di bug

  • OnChildPositioned è stato ritirato. Utilizza invece OnPositioned sul componente figlio. (I87f95, b/162109766)
  • Risolvere correzioni generali dell'API (I077bc)
    1. Rimuovere l'interfaccia OffsetBase inutilizzata
    2. Allinea le classi Offset e IntOffset per avere una piattaforma API coerente
    3. Rinomina IntOffset.Origin in IntOffset.Zero per essere coerente con l'API Offset
    4. Il metodo nativeCanvas è stato spostato dall'interfaccia Canvas per consentire ai consumatori di creare le proprie istanze Canvas
    5. È 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 nullità del campo
    6. I valori enumerati ClipOp sono stati rinominati in Pascal Case
    7. Le enum FilterQuality sono state rinominate in Pascal Case
    8. Gli enum StrokeJoin sono stati rinominati in Pascal Case
    9. Gli enum PointMode sono stati rinominati in Pascal Case
    10. Gli enum PaintingStyle sono stati rinominati in Pascal Case
    11. Gli enum PathFillType sono stati rinominati in Pascal Case
    12. I valori enumerati di StrokeCap sono stati rinominati in Pascal Case
    13. È stata aggiornata l'implementazione di DrawCache in modo che non utilizzi più i parametri lateinit
    14. DrawScope è stato aggiornato in modo da non utilizzare più la delega lazy per i parametri interni fillPaint e strokePaint
    15. Componibile immagine aggiornato per evitare l'utilizzo di Box per un overhead ridotto
    16. Aggiornamento della classe Outline per includere le annotazioni @Immutable
    17. PathNode è stato aggiornato in modo da avere annotazioni @Immutable per ogni istruzione del percorso
    18. È stata aggiornata la composizione secondaria di vettore per rimuovere i controlli condizionali ridondanti per l'uguaglianza, poiché la composizione li gestisce già
    19. Metodi di costruttore complementari di Rect ritirati a favore di costruttori di funzioni
    20. Classi e costruttori di funzioni di Brush aggiornati con API @Immutable e @Stable
    21. È stato aggiornato l'enum VertexMode in modo che sia in PascalCase
    22. Aggiornamento del metodo selectPaint di DrawScope per sovrascrivere in modo condizionale i parametri di tratto sul colore se sono stati modificati
    23. È stato aggiornato il parametro Size per aggiungere l'API di destrutturazione, rinominare UnspecifiedSize in Unspecified e rimuovere i metodi inutilizzati
  • Spostare la finestra di dialogo nell'interfaccia utente (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture rimosso. Utilizza invece SemanticsNodeInteraction.performGesture. (Id9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() rinominato in SemanticsNodeInteraction.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 icone più recenti aggiunte a Material.io/icons (I4b1d3)
  • Richiedi che il tipo T sia specificato esplicitamente per transitionDefinition. (I1aded)
  • Modifier.plus è deprecato. Utilizza Modifier.then. "Poi" indica più chiaramente l'ordine, ma impedisce anche di digitare Modifier.padding().background() + anotherModifier, che interrompe la catena ed è più difficile da leggere (Iedd58, b/161529964)
  • Il nome di AndroidComposeTestRule è stato rinominato in createAndroidComposeRule. (I70aaf)
  • Aggiungi SemanticsMatcher per isFocused() e isNotFocused(). (I0b760)
  • È stato rimosso BaseGestureScope.globalBounds, che non deve essere utilizzato nei test. Utilizza invece le coordinate locali del nodo con cui interagisci. (Ie9b08)
  • Posizione del popup fissa 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 vengono 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 in Dichiarazione delle dipendenze.

Modifiche all'API

  • L'annotazione @Model è stata ritirata. Utilizza state e mutableStateOf come alternative. Questa decisione di ritiro è stata presa dopo un'attenta discussione.

    Giustificazione

    La motivazione include, a titolo esemplificativo:

    • Riduce la superficie dell'API e i concetti che dobbiamo insegnare
    • Maggiore allineamento con altri kit di strumenti paragonabili (Swift UI, React, Flutter)
    • Decisione reversibile. Possiamo sempre ripristinare @Model in un secondo momento.
    • Rimuovi l'utilizzo di casi limite e le domande difficili da rispondere sulla configurazione di @Model come elementi da gestire
    • Classi di dati @Model, uguale, hashcode e così via.
    • Come faccio ad avere alcune proprietà "osservate" e altre no?
    • Come faccio a specificare l'uguaglianza strutturale rispetto a quella referenziale da utilizzare nell'osservazione?
    • Riduce la "magia" nel sistema. Ridurrebbe la probabilità che qualcuno presuma che il sistema sia più intelligente di quanto non sia (ad es. che sappia confrontare un elenco)
    • Rende la granularità dell'osservazione più intuitiva.
    • Migliora la possibilità di eseguire il refactoring da variabile a proprietà nella classe
    • Potrebbe aprire la possibilità di eseguire ottimizzazioni specifiche per stato create manualmente
    • Si allinea di più al resto dell'ecosistema e riduce l'ambiguità rispetto allo stato immutabile o all'approccio "abbracciamo lo stato mutabile"

    Note sulla migrazione

    Quasi tutti gli utilizzi esistenti di @Model possono essere trasformati in uno dei due modi seguenti. L'esempio seguente contiene una classe @Model con due proprietà solo per fare un esempio e viene utilizzata in un composable.

    @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 con le classi di dati di Kotlin. In sostanza, trasforma tutte le proprietà var precedenti in proprietà val di una classe di dati, quindi utilizza state anziché remember e assegna il valore dello stato alle copie clonate dell'originale utilizzando il metodo di utilità copy(...) 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 sottopone a mutazioni interne al di fuori dell'ambito di utilizzo e ti basi sull'osservazione di questo comportamento, l'approccio successivo è quello che ti consigliamo di 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: utilizza mutableStateOf e i delegati delle proprietà

    Questo approccio è semplificato con i delegati delle proprietà di Kotlin e l'API mutableStateOf che consente di creare istanze di MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietà var della classe originale con proprietà var con mutableStateOf come delegato della proprietà. Il vantaggio è che l'utilizzo della classe non cambierà affatto, solo la sua implementazione interna. Tuttavia, il comportamento non è completamente identico all'esempio originale, poiché ora ogni proprietà viene osservata/sottoscritta singolarmente, pertanto le ricostruzioni che vedi dopo questa riorganizzazione potrebbero essere più limitate (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)

  • Il callback onFocusChange nei campi di testo è stato rinominato in onFocusChanged (Ida4a1)

  • È stato aggiunto il parametro soglie in statoDraggable per specificare le soglie tra le ancore. È stato utilizzato per impostare una soglia di 56 dp nel riquadro inferiore. Inoltre, BottomDrawerLayout ora utilizza un enum BottomDrawerState separato. (I533fa)

  • Rimuove Modifier.ripple, precedentemente deprecato. Ora clickable utilizza l'effetto ripple come indicazione predefinita (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare clickable e ottenere l'indicazione dell'effetto ripple senza costi. Se devi personalizzare il parametro colore / dimensioni / contenuto per l'eco, puoi creare manualmente un'indicazione di eco e passarla a selezionabile come parametro indicazione. (I663b2, b/155375067)

  • È stata rimossa l'override deprecato del composable FilledTextField (I7f8f8)

  • Rinomina l'oggetto Button (contenente i valori predefiniti utilizzati dalla funzione Button) in ButtonConstants (I7c5f7, b/159687878)

  • Lo slot dei contenuti del pulsante ora si comporta come una riga (utile quando devi avere un'icona con un testo; consulta gli esempi su come scrivere il pulsante) (I0ff10, b/158677863)

  • RadioGroup e RadioGroupItem sono stati ritirati. Utilizza Box con Modifier.selectable, riga e colonna per creare un insieme appropriato di scelte di radioButton in base al tuo design (I7f5cf, b/149528535)

  • È stato aggiunto il campo di testo con riquadro Materiale (I1a518)

  • androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecati. Anche i composabili TextField, FilledTextField e CoreTextField che utilizzano questo tipo sono deprecati. Utilizza invece androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • TabRow.TabPosition non contiene la posizione in DP, né in IntPx (I34a07, b/158577776)

  • È stato sostituito l'utilizzo di IntPx con Int. È stata sostituita IntPxPosition con IntOffset. IntPxSize 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. Ciò offre i vantaggi di una classe in linea per sfruttare un valore lungo per imballare 2 valori float per rappresentare la larghezza e l'altezza rappresentate come valori float. (Ic0191)

  • Viene ritirato Modifier.ripple. Ora clickable utilizza l'effetto ripple come indicazione predefinita (se hai impostato MaterialTheme {} nella tua applicazione), quindi nella maggior parte dei casi puoi semplicemente utilizzare clickable e ottenere l'indicazione dell'effetto ripple senza costi. Se devi personalizzare il parametro colore / dimensioni / contenuto per l'eco, puoi creare manualmente un'indicazione di eco e passarla a selezionabile come parametro indicazione. (I101cd, b/155375067)

  • L'API Scaffold è stata rielaborata: alcuni parametri sono stati rinominati e sono stati aggiunti nuovi parametri per una migliore personalizzazione. È stato aggiunto un getter per le dimensioni delle query 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 un'indicazione di pressione/trascinamento/altro sugli elementi interattivi personalizzati (I8425f, b/155287131)

  • Implementazioni CanvasScope consolidate quindi ora ci sono solo DrawScope e ContentDrawScope CanvasScope è stato rinominato in DrawScope. È stato aggiornato DrawScope per implementare l'interfaccia Density e fornire LayoutDirection. È stato eliminato il sottotipo DrawScope in ContentDrawScope. Painter e PainterModifier sono stati aggiornati in modo da non gestire più autonomamente una proprietà RTL, poiché DrawScope la fornisce già senza doverla fornire manualmente (I1798e)

  • Rinomina Emphasis.emphasize() in Emphasis.applyEmphasis() (Iceebe)

  • I pulsanti disattivati ora rispettano 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 la dimensione del tratto. Per modificare la dimensione (altezza) del tratto di un indicatore di avanzamento lineare, puoi utilizzare Modifier.preferredHeight() o un altro modificatore delle dimensioni. (Icea16, b/154919081)

  • Aggiunge il parametro strokeWidth a CircularProgressIndicator per personalizzare la dimensione del tratto. Per modificare la dimensione (altezza) del tratto di un indicatore di avanzamento lineare, puoi utilizzare Modifier.preferredHeight() o un altro modificatore delle dimensioni. (Icea16, b/154919081)

  • È stata aggiunta l'API slot per le icone iniziali e finali in FilledTextField e la gestione dello stato di errore (Ic12e0)

  • Il colore predefinito del FAB e del FAB esteso è stato modificato in MaterialTheme.colors.secondary. (I3b9b9, b/154118816)

  • Sono stati sostituiti tutti gli utilizzi di Color nullable nell'API con valori non nullable e viene utilizzato Color.Unset anziché null (Iabaa7)

  • EdgeInsets è stato rinominato in InnerPadding. Il parametro innerPadding dei pulsanti Material è stato rinominato in padding. (I66165)

  • Il cursore ora è senza stato. Gli utenti dovranno passare e aggiornare lo stato autonomamente, come in qualsiasi altro controllo. (Ia00aa)

  • StaticDrawer è stato rimosso. Se necessario, utilizza una casella con larghezza specificata in base al materiale (I244a7)

  • È stata aggiunta l'implementazione di Material Design per il campo di testo compilato (Ic75cd)

  • È stato aggiunto il parametro modificatore a ListItem e sono stati 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 che verrà utilizzata per tutti gli stili di testo forniti che non hanno una famiglia impostata. (I89d07)

  • Le tabelle di dati dei materiali sono state rimosse temporaneamente dall'interfaccia API. (Iaea61)

  • Parametri rinominati nel composable Divider (Ic4373)

  • children (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 alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi da utilizzare per la maggior parte dei componenti (Ifb4d1)

  • Le API MaterialTheme, come MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in modo da essere proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti. Non è prevista alcuna modifica del comportamento. (I3565a)

  • Le API FloatingActionButton sono state sottoposte a refactoring per accettare lambda composibili anziché primitivi. Consulta i sample aggiornati per informazioni sull'utilizzo. (I00622)

  • Aggiungi il parametro enabled a casella di controllo, pulsante di attivazione/disattivazione e pulsante di attivazione/disattivazione (I41c16)

  • Ora l'effetto Ripple è un modificatore. Anche se lo stato Cliccabile non è ancora stato convertito, l'utilizzo consigliato è Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763)

  • Le classi Surface e Card sono state spostate da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)

  • Button, FloatingActionButton e Clickable ora hanno un parametro enabled separato. Alcuni dei parametri di Button sono stati rinominati o riordinati. (I54b5a)

  • Il nome Image è stato rinominato in ImageAsset per distinguere meglio la differenza tra i dati di Image e il componente composable Image in arrivo utilizzato per partecipare al layout e disegnare i contenuti. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)

  • È stata rimossa l'API Snackbar con parametri String a favore dell'utilizzo dell'overload che accetta lambda composibili. Visualizza i sample aggiornati per informazioni sull'utilizzo (I55f80)

  • API Tab sottoposte a refactoring per accettare lambda text e icon (Ia057e)

  • È stato aggiunto il componente BottomNavigation. Consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0)

  • Sono stati aggiunti Icon, IconButton e IconToggleButton e rimosso AppBarIcon. Puoi sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton, e ora avranno il target di tocco corretto. Consulta i Samples per informazioni sull'utilizzo e la sezione Icone per le icone Material fornite che puoi utilizzare direttamente con questi componenti. (I96849)

  • È stato sostituito ButtonStyle con funzioni distinte ed è stato rimosso il sovraccarico di testo (stringa). Consulta i sample aggiornati per informazioni sull'utilizzo. (If63ab, b/146478620, b/146482131)

  • Rinomina il modificatore Border in DrawBorder (I8ffcc)

  • LayoutCoordinates non ha più una proprietà position. La proprietà posizione non ha senso se si prendono in considerazione LayoutModifiers, la rotazione o la scalatura. Gli sviluppatori devono invece utilizzare parentCoordinates e childToLocal() per calcolare la trasformazione da un LayoutCoordinate all'altro.

    LayoutCoordinates utilizza IntPxSize per la proprietà size anziché PxSize. I layout utilizzano dimensioni in pixel interi, pertanto tutte le dimensioni del layout devono utilizzare numeri interi e non valori in virgola mobile. (I9367b)

  • Modifiche non compatibili all'API Ambient. Per informazioni dettagliate, consulta il log e la documentazione di Ambient<T> (I4c7ee, b/143769776)

  • È stato aggiunto il componente Materiale di base. Implementazioni di Scaffold (I7731b)

  • DrawBorder è stato sostituito da Border Modifier (Id335a)

Correzioni di bug

  • FocusModifier è deprecato a favore di Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState e FocusDetailedState sono stati ritirati a favore di FocusState2 (I46919, b/160822875, b/160922136)
  • VerticalScroller e HoriziontalScroller sono stati ritirati. Utilizza ColonnaScorrevole e RigaScorrevole per un'esperienza integrata con il comportamento e i parametri di Colonna/Riga 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 riscritte. DragDirection è stato rimosso a favore di Orientation. Lo stato richiesto per la funzionalità scorrevole è stato semplificato. ScrollableState è stato rinominato in ScrollableController (Iab63c, b/149460415)
  • runOnIdleCompose è stato rinominato in runOnIdle (I83607)
  • Le proprietà di semantica 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 in modo da restituire un TransitionState anziché passare il TransitionState ai figli. In questo modo, l'API è più coerente con le API animate(). (I24e38)
  • È stata aggiunta una classe di unità IntBounds che rappresenta i limiti di pixel interi del layout. L'API di PopupPositionProvider è stata aggiornata per utilizzarla. (I0d8d0, b/159596546)
  • È stato aggiunto un nuovo flag facoltativo useUnmergedTree per testare i finder. (I2ce48)
  • Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
  • È stata rimossa la classe Shader in linea che avvolgeva la classe di attesa NativeShader. È stato rinominato NativeShader in Shader. La classe inline Shader con wrapping non ha aggiunto nulla di utile all'interfaccia API ed era una classe inline, quindi utilizza direttamente la classe NativeShader. (I25e4d)
  • I popup, le finestre di dialogo e i menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)
  • I menu a discesa Material sono ora scorrevoli. (Ide699)
  • È stato rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). La direzione del layout è tuttavia disponibile all'interno del callback tramite l'oggetto ambito 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, spring. ma accettano direttamente i parametri del costruttore. -Migliora la facilità d'uso complessiva di AnimationSpec aprendo i metodi di costruzione anziché fare affidamento sui costruttori -Modifica la durata e il ritardo per KeyFrames e Tween in Int. Questo elimina il casting di tipo e il sovraccarico di metodi non necessari (per supportare sia Long che Int). (Ica0b4)
  • Ora il pulsante di attivazione/disattivazione viene visualizzato in uno stato disattivato quando enabled è impostato su false (If4624, b/155941869, b/159331694)
  • Modifier.tag è stato rinominato in 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 riga di allineamento sottoposta a query non è presente, verrà restituito AlignmentLine.Unspecified. (I896c5, b/158134875)
  • La classe Radius è stata sottoposta a refactoring per diventare una classe in linea. Sono stati rimossi i metodi di creazione di compagni in favore del costruttore di funzioni con parametro predefinito per fare in modo che il raggio sull'asse y corrisponda a quello del parametro obbligatorio del raggio sull'asse x.

    È stato aggiornato DrawScope.drawRoundRect in modo da utilizzare un singolo parametro Radius anziché due valori float distinti per il raggio lungo gli assi x e y (I46d1b)

  • Per consolidare il numero di classi utilizzate per rappresentare le informazioni di posizionamento, standardizza l'utilizzo della classe Offset anziché PxPosition. Ciò offre i vantaggi di una classe in linea per sfruttare un valore long per imballare 2 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 impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel. Classe Px eliminata nella sua interezza (I3ff33)

  • Il componente attivabile/disattivabile è stato ritirato. Utilizza Modifier.toggleable (I35220, b/157642842)

  • È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I086f4)

  • È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Id3434)

  • È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I97a5a)

  • È stato corretto il problema per cui l'evento onClick non veniva invocato per gli elementi DropdonMenuItem. (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)

  • È stato sostituito l'utilizzo della classe Px in vari classi di composizione nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (I19d02)

  • VerticalScroller ora fornisce la colonna out of the box. HorizontalScroller ora fornisce la riga out of the box. (Ieca5d, b/157020670)

  • È stato sostituito l'utilizzo della classe Px in varie classi compose nell'ambito del grande impegno di refactoring per fare affidamento solo su Dp e tipi primitivi per i parametri dei pixel (Iede0b)

  • Modifier.semantics non è più deprecato 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 e ora non è null; clipToOutline è stato rinominato in clip; clipToBounds è stato rimosso perché è uguale a clip == true con RectangleShape (I7ef11, b/155075735)

  • Sono state aggiornate le API compose di livello superiore che espongono un Canvas per esporre CanvasScope. In questo modo, i consumatori non dovranno più gestire i propri oggetti Paint. 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 di base. (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 ricevitore che, oltre a constraints 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 delle dimensioni sul layout con a capo 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 avvolge un oggetto Canvas per esporre un'API di disegno dichiarativa e senza stato. Le trasformazioni sono contenute nel proprio ambito del ricevitore e le informazioni sulle dimensioni sono limitate anche ai limiti di inset corrispondenti. Non richiede all'utente di gestire un proprio oggetto stato di Paint per la configurazione delle operazioni di disegno.

    È stato aggiunto CanvasScopeSample e l'app di dimostrazione è stata aggiornata in modo da includere una dimostrazione di grafica dichiarativa (Ifd86d)

  • Aggiungere la personalizzazione del colore del cursore al TextField (I6e33f)

  • TextFieldValue utilizzato con TextField ora può sopravvivere alla ricreazione dell'attività se utilizzato come segue: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • LayoutModifier2 è stato rinominato LayoutModifier. (Id29f3)

  • Interfaccia LayoutModifier ritirata. (I2a9d6)

  • È stato 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 in DrawLayerModifier è stata rinominata in shadowElevation e non controlla più l'ordine di disegno. L'ordine dei parametri di DrawShadow è cambiato: l'elevazione è ora la prima e la forma è la seconda con un valore predefinito RectangleShape. (I20150, b/152417501)

  • RectangleShape è passato da androidx.ui.foundation.shape.* ad androidx.ui.graphics.* (Ia74d5, b/154507984)

  • Aggiornamento dell'API TextField: i callback onFocus e onBlur sono stati uniti in un unico callback onFocusChange(Boolean) con parametro (I66cd3)

  • Sono stati aggiunti i parametri verticalGravity e horizontalGravity rispettivamente a Riga e Colonna. (I7dc5a)

  • Aggiornati wrapContentWidth e wrapContentHeight in modo che prevedano l'allineamento verticale o orizzontale anziché qualsiasi allineamento. Il modificatore di gravità è stato aggiornato in modo da accettare l'allineamento verticale o orizzontale. Le opzioni Riga, Colonna e Serie sono state aggiornate per supportare gli allineamenti continui personalizzati. (Ib0728)

  • È stata creata l'API PixelMap per supportare la query delle informazioni sui pixel da un asset immagine. (I69ad6)

  • Rimuove ProvideContentColor, ma utilizza direttamente ContentColorAmbient con Providers (Iee942)

  • Il modulo ui-text-compose è stato rinominato in ui-text. ui-text now contiene composabili CoreText e CoreTextField (Ib7d47)

  • Il modulo ui-text viene rinominato ui-text-core (I57dic)

  • Sono stati spostati i composabili ui-framework/CoreText, CoreTextField in ui-text-compose. Ti consigliamo di includere ui-text-compose nel tuo progetto. (I32042)

  • Miglioramento dell'API DrawModifier:

    • È stato creato l'ambito del ricevente per draw() ContentDrawScope
    • Sono stati rimossi tutti i parametri in draw()
    • DrawScope ha la stessa interfaccia dell'ex CanvasScope
    • ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
  • runOnIdleCompose e runOnUiThread ora sono funzioni globali invece di metodi su ComposeTestRule. (Icbe8f)

  • [Mutabile]Gli operatori di delega della proprietà stato sono stati spostati nelle estensioni per supportare le ottimizzazioni della delega della proprietà di Kotlin 1.4. Gli utenti che chiamano devono aggiungere importazioni per continuare a utilizzare by state { ... } o by mutableStateOf(...). (I5312c)

  • Aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)

  • ColoredRect è stato ritirato. Utilizza invece Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)

  • LayoutResult è stato rinominato in MeasureResult. (Id8c68)

  • È stata aggiunta LayoutModifier2, una nuova API per definire i modificatori di layout. È stato deprecato LayoutModifier (If32ac)

  • Operatore Modificatore più sostituito con funzioni di estensione di fabbrica (I225e4)

  • La funzionalità Trascinabile è stata spostata 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 gli elementi layout secondari per riconoscerli all'interno del blocco di misura. (I51368, b/150953183)

  • Componente componibile del Centro ritirato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAlign.Center o con uno dei composabili Box o Stack con modificatori appropriati applicati (Idf5e0)

  • È stata aggiunta l'API VectorPainter per sostituire l'API di composizione secondaria esistente per le immagini vettoriali. Il risultato della composizione secondaria è un oggetto VectorPainter anziché DrawModifier. Sono stati ritirati i composabili DrawVector precedenti a favore di VectorPainter.

    L'API Image(Painter) è stata rinominata in PaintBox(Painter) È stato creato un composable vettoriale che si comporta come il composable Immagine, tranne che con un asset vettoriale anziché un asset immagine (I9af9a, b/149030271)

  • LayoutFlexible è stato rinominato LayoutWeight. Il parametro tight è stato rinominato in fill. (If4738)

  • È stato rimosso RepaintBoundary in favore di DrawLayerModifier (I00aa4)

  • DrawVector è stata modificata da una funzione composable normale in modo da restituire un modificatore drawVector() che disegnerà il vettore come sfondo di un layout. (I7b8e0)

  • La funzione composable Opacity è stata sostituita con il modificatore drawOpacity. (I5fb62)

  • Sostituisci la funzione composable Clip con il modificatore drawClip(). DrawClipToBounds è un modificatore pratico da utilizzare quando devi solo ritagliare in base ai limiti del livello con una forma rettangolare. (If28eb)

  • La funzione composable DrawShadow è stata sostituita con il modificatore drawShadow(). Le ombre vengono ora disegnate all'interno di LayerModifier. (I0317a)

  • È stato aggiunto LayerModifier, un modificatore che consente di aggiungere un RenderNode per un layout. Consente di impostare clipping, opacità, rotazione, ridimensionamento e ombre. Verrà sostituito da 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 o setViewContent. Compose.disposeComposition è stato ritirato. Utilizza invece il metodo dispose su Composition restituito da setContent. 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)

  • È stato creato un composable immagine per gestire le dimensioni/il layout, oltre a disegnare un determinato asset immagine sullo schermo. Questo composable supporta anche il disegno di qualsiasi istanza Painter arbitraria nel rispetto delle sue dimensioni intrinseche, nonché di una determinata dimensione fissa o minima (Ibcc8f).

  • Componibile Wrap deprecato. Può essere sostituito con il modificatore LayoutAlign o con il composable Stack (Ib237f)

  • WithConstraints ha ricevuto il parametro LayoutDirection (I6d6f7)

  • La direzione del layout è stata propagata dal nodo del layout principale ai figli. È stato aggiunto il modificatore dell'orientamento del layout. (I3d955)

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

  • Il composable DrawShape è stato rimosso. Utilizza invece il modificatore DrawBackground. (I7ceb2)

  • Supporto della direzione da destra a sinistra nel modificatore LayoutPadding (I9e8da)

  • È stato aggiunto AdapterList, un componente dell'elenco con scorrimento che compone e dispone solo gli elementi visibili. I problemi attualmente noti includono il fatto che è solo verticale e non gestisce completamente tutti i casi di modifiche ai suoi elementi secondari. (Ib351b)

  • È stato aggiornato il flag ComposeFlags.COMPOSER_PARAM in true, il che comporterà la modifica della strategia di generazione del codice per il plug-in di composizione. A un livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene trasmesso alle chiamate @Composable successive affinché il runtime possa gestire correttamente l'esecuzione. Si tratta di una modifica significativa che comporta la rottura del codice binario, ma dovrebbe preservare la compatibilità a livello di codice sorgente in tutti gli utilizzi consentiti di compose. (I7971c)

  • È stato aggiunto il componente Canvas. Questo composable occupa alcune dimensioni (fornite dall'utente) e ti consente di disegnare utilizzando CanvasScope (I0d622)

  • Density e DensityScope sono stati uniti in un'unica interfaccia. Ora puoi utilizzare DensityAmbient.current anziché ambientDensity(). Anziché withDensity(density), usa semplicemente with(density) (I11cb1)

  • È stato modificato LayoutCoordinates in modo che le linee di allineamento fornite siano un insieme anziché una mappa e che LayoutCoordinates implementi l'operatore get() per il recupero di un valore. In questo modo, è più facile per i modificatori modificare uno o più valori dell'insieme senza creare una nuova raccolta per ogni modificatore. (I0245a)

  • Ora i cursori mostrano il comportamento di movimento fling nativo di Android. (I922af, b/147493715)

  • Miglioramenti all'API Constraints (I0fd15)