Componi materiale

Crea UI di Jetpack Compose con componenti Material Design pronti per l'uso. Si tratta del punto di ingresso di livello superiore di Compose, progettato per fornire componenti corrispondenti a quelli descritti all'indirizzo www.material.io.
Aggiornamento più recente Release stabile Candidato per l'uscita Versione beta Release alpha
26 giugno 2024 1.6.8 - 1.7.0-beta04 -

Struttura

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

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

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

Dichiarazione delle dipendenze

Per aggiungere una dipendenza su 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 artefatti necessari nel file build.gradle per l'app o il modulo:

trendy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

Feedback

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

Crea un nuovo numero

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.7

Versione 1.7.0-beta04

26 giugno 2024

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

Versione 1.7.0-beta03

12 giugno 2024

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

Versione 1.7.0-beta02

29 maggio 2024

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

Modifiche alle API

  • API Update per l'applicazione di stili ai link: spostamento TextLinkStyles in TextStyle e rimozione di TextDefaults dal materiale (I5477b)

Versione 1.7.0-beta01

14 maggio 2024

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

Modifiche alle API

  • È stata aggiornata l'API per ottenere link con temi Material in Testo. In particolare, sono stati rimossi i metodi da TextDefaults per la creazione di LinkAnnotations a tema e l'analisi dell'HTML con link a tema. È stata invece aggiunta una classe TextLinkStyles che consente di definire lo stile dei link come parametro del Testo componibile. (I31b93)

Versione 1.7.0-alpha08

1° maggio 2024

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

Modifiche alle API

  • Correggi il problema che backgroundColor non si applica a TextFieldDecorationBox e OutlinedTextFieldDecorationBox. I riquadri decorativi ora accettano un parametro shape. (I371c2, b/307694651)
  • RippleConfiguration#isEnabled è stato rimosso e LocalRippleConfiguration è stato reso null. Per disattivare un eco, invece di fornire un RippleConfiguration con isEnabled = false, specifica null a LocalRippleConfiguration. (I22725)
  • I link di testo hanno un'opzione di stile con stato premuto, oltre allo stile normale, con passaggio del mouse e elemento attivo. I metodi TextDefaults hanno ciascuno un argomento pressedStyle a supporto. (Ic473f, b/139312671)

Correzioni di bug

  • La spaziatura interna superiore OutlinedTextField per l'etichetta ora tiene conto delle dimensioni dei caratteri del sistema. (Idc781)

Versione 1.7.0-alpha07

17 aprile 2024

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

Modifiche alle API

  • Per i link di testo è stata attivata l'opzione di stile per lo stato selezionata, oltre allo stile normale, con il passaggio del mouse e lo stato attivo. (I5f864, b/139312671)
  • È stato aggiunto un oggetto TextDefaults contenente metodi per creare una LinkAnnotation e analizzare la stringa con tag HTML che applica MaterialTheme ai link. (I98532, b/139312671)

Versione 1.7.0-alpha06

3 aprile 2024

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

Annuncio

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

Modifiche alle API

  • Altri valori predefiniti ModalDrawer e BottomDrawer spostati nell'oggetto DrawerDefaults. (Ib5b2e).

Versione 1.7.0-alpha05

20 marzo 2024

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

Modifiche alle API

  • Il flag ScaffoldSubcomposeInMeasureFix è stato rimosso. (I67363)

Versione 1.7.0-alpha04

6 marzo 2024

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

Nuove funzionalità

Versione 1.7.0-alpha03

21 febbraio 2024

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

Modifiche alle API

  • BottomDrawer è stato promosso da sperimentale a stabile. BottomDrawerState ora mostra l'avanzamento come funzione, consentendo di eseguire query sull'avanzamento tra target specifici. BottomDrawerState ora consente di personalizzare le specifiche dell'animazione e confirmStateChange non è più una lambda finale. (I9c029, b/261423850)
  • BackdropScaffold è stato promosso da sperimentale a stabile. Secondo le linee guida, la specifica dell'animazione è ora una specifica tween. 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 l'avanzamento della query tra gli ancoraggi. (I73f48, b/261423218)
  • I fogli inferiori standard sono stati promossi da sperimentale a stabile. I costruttori deprecati sono stati rimossi. La specifica dell'animazione è ora una specifica di interpolazione secondo 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. Secondo le linee guida, la specifica dell'animazione è ora una specifica tween. (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)
  • Rimossa la sottocomposizione 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)
  • Rimossa la sottocomposizione all'interno di ModalBottomSheetLayout, per migliorare il rendimento. (I7a025)

Versione 1.7.0-alpha02

7 febbraio 2024

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

Versione 1.7.0-alpha01

24 gennaio 2024

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

Cambiamenti del comportamento

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

Modifiche alle API

  • rememberRipple e RippleTheme sono stati deprecati da material-ripple, con nuove API ripple e RippleConfiguration aggiunte alle librerie dei sistemi di progettazione dei materiali e di altro tipo.

  • I componenti del materiale che in precedenza accettavano un valore MutableInteractionSource e che per impostazione predefinita ricordavano { MutableInteractionSource() } ora accettano un valore MutableInteractionSource con valore null e lo utilizzano per impostazione predefinita. Se non stai sollevando e utilizzando MutableInteractionSource, devi passare null. Ciò consente ad alcuni componenti di creare un'istanza in modo lento solo quando necessario, migliorando le prestazioni. È inoltre consigliabile apportare modifiche simili nei tuoi componenti.

Versione 1.6

Versione 1.6.8

12 giugno 2024

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

Versione 1.6.7

1° maggio 2024

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

Versione 1.6.6

17 aprile 2024

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

Versione 1.6.5

3 aprile 2024

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

Versione 1.6.4

20 marzo 2024

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

Versione 1.6.3

6 marzo 2024

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

Correzioni di bug

  • Correggi la regressione in ExposedDropdownMenu per renderla di nuovo attivabile. (c0e0ed, b/323694447)

Versione 1.6.2

21 febbraio 2024

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

Versione 1.6.1

7 febbraio 2024

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

Versione 1.6.0

24 gennaio 2024

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

Versione 1.6.0-rc01

10 gennaio 2024

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

Versione 1.6.0-beta03

13 dicembre 2023

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

Versione 1.6.0-beta02

29 novembre 2023

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

Versione 1.6.0-beta01

15 novembre 2023

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

Versione 1.6.0-alpha08

18 ottobre 2023

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

Modifiche alle API

  • Ritirare una funzione materialIcon in 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

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

  • Aggiornamenti delle dipendenze

Versione 1.6.0-alpha06

20 settembre 2023

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

Cambiamento che determina un'interruzione del comportamento

  • Funzionalità relativa al riquadro a scomparsa rimossa da BottomSheetScaffold. Avvolgi BottomSheetScaffold in un componibile a cassetto per ottenere la funzionalità precedente. Vedi BottomSheetScaffoldWithDrawerSample per un esempio. (I1dcc8)

Modifiche alle API

  • È stato introdotto un flag temporaneo per stabilire se lo strumento Scaffold deve misurare gli elementi secondari durante la misurazione o il posizionamento. Per impostazione predefinita, viene eseguita la misurazione. Se stai riscontrando problemi con il nuovo comportamento, segnalalo. (If6e3b).

Versione 1.6.0-alpha05

6 settembre 2023

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

Nuove funzionalità

  • È stato aggiunto il supporto delle icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icone estese ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set contengono il prefisso Icons.AutoMirrored.Filled... e così via e le icone di blocco verranno visualizzate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per consultare l'elenco delle icone che possono (e devono) essere speculari per la visualizzazione.

Modifiche alle API

  • È stato aggiunto il supporto delle icone con mirroring automatico quando vengono visualizzate in layout da destra a sinistra. Le icone nei moduli material-icon-core e material-icone estese ora forniscono set di icone aggiuntivi per supportare il mirroring automatico quando l'icona lo consente. I nuovi set contengono il prefisso Icons.AutoMirrored.Filled... e così via e le icone di blocco verranno visualizzate automaticamente nei layout RTL. Consulta l'elenco delle icone Material per consultare l'elenco delle icone che possono (e devono) essere speculari per la visualizzazione. Le proprietà fornite in precedenza per queste icone sono ora contrassegnate come deprecate e viene fornito un suggerimento di blocco sostitutivo per facilitare la migrazione. Se non disponi di una gestione speciale per le icone di mirroring su RTL, ti consigliamo di eseguire la migrazione al nuovo insieme di icone. Ad esempio, è necessario eseguire il refactoring di Icons.Filled.ArrowBack in Icons.AutoMirrored.Filled.ArrowBack. (I4b511).

Versione 1.6.0-alpha04

23 agosto 2023

Viene rilasciato androidx.compose.material:material-*:1.6.0-alpha04. 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'impalcatura all'interno di un LookaheadScope tentavano di leggere troppo presto le proprie dimensioni. (If2c5d).
  • È stato corretto il calcolo del valore 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. (ICC74, b/294103942)
  • Sono stati ottimizzati gli interni del layout di BottomSheetScaffold e risolto un potenziale problema relativo a BottomSheetScaffold all'interno di un LookaheadLayout. (Ic0afa)

Versione 1.6.0-alpha03

9 agosto 2023

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

Modifiche alle API

  • I componenti Material2 ora hanno un'API separata per passare windowInsets al supporto della 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 indicazioni, consulta gli esempi corrispondenti. (I655e8)

Versione 1.6.0-alpha02

26 luglio 2023

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

Modifiche alle API

  • Sposteremo la dipendenza della densità a livello di componente. Questo vale per i seguenti componenti: SwipeToDismiss e componenti basati su Fogli. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I1846e)
  • Annotazioni aggiuntive per specificare gli input consentiti per i componibili (I51109)
  • File API aggiornati per annotare l'eliminazione della compatibilità (I8e87a, b/287516207)
  • È stato aggiunto un nuovo allineamento Avvia per FabPosition (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons in Material 2 è stato ritirato e sostituito con TextFieldColors. Quando esegui l'override di leadingIconColor o trailingIconColor, esegui l'override anche dell'overload con interactionSource. (Id57ed, b/199377790)

Versione 1.6.0-alpha01

21 giu 2023

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

Cambiamenti del comportamento

  • includeFontPadding ora è false per impostazione predefinita nella tipografia Material 2. Anche lo stile predefinito di altezza della riga è stato modificato in Trim.None e Alignment.Center e lineHeight esplicito (in sp) è stato aggiunto ai TextStyle di Typography. Consulta la documentazione relativa all'API se vuoi personalizzare questi valori e il post del blog per una spiegazione approfondita di queste modifiche. (Icabc3, I3f801, I04c03)

Modifiche alle API

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

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Versione 1.5

Versione 1.5.4

18 ottobre 2023

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

Versione 1.5.3

4 ottobre 2023

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

Versione 1.5.2

27 settembre 2023

Viene rilasciato androidx.compose.material:material-*:1.5.2. 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

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

Modifiche importanti dalla versione 1.4.0

Modifiche alle API

  • Modifiche incorporate nelle API Swipeable1 in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato in confirmValueChange. progress è ora esposto come valore in virgola mobile. animateTo e snapTo sono interni. Usa invece expand() e collapse(). direction e overflow sono stati rimossi. offset è stato sostituito con requireOffset(). I323B4
  • Contrassegna la funzione snapTo in Riquadro a scomparsa come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per il limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • ModalBottomSheetState, ModalBottomSheetState.Saver e confirmStateChange di rememberModalBottomSheetState sono stati rinominati in confirmValueChange. (Ib48d1).
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559)
  • Modifiche incorporate nelle API Slideable in ModalBottomSheetLayout. L'elemento animatoTo di ModalBottomSheetState non accetta più un parametro animationSpec e l'offset esposto è ora annullabile. Utilizza requireOffset per richiedere l'offset. (Ia2e79)
  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Le modifiche incorporate nelle API scorrevoli in animateTo di ModalDrawer. DrawerState sono state sostituite dai metodi di apertura e chiusura e ora l'offset è annullabile. Utilizza requireOffset per richiedere l'offset. (I3de9e)
  • Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.
  • È stato aggiunto il parametro minLines in material e testo material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)

Correzioni di bug

  • È stato risolto un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione dell'overscroll. È stata anche modificata la firma dell'API della lambda onRelease in Modifier.pullRefresh per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741)
  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • È stato risolto il problema che mostrava l'azione di ignorare AlertDialog sotto l'azione di conferma quando queste si sovrapponevano tra loro per rientrare nella 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 avrebbe avuto un arresto anomalo se fornito con contenuti vuoti per le aree annuncio. (Ib24a5, b/235588730)
  • Corregge PullRefreshIndicator che intercetta clic/eventi del puntatore. (2494256, b/271777421)
  • È stato risolto un problema per cui ModalBottomSheetLayout si arrestava in modo anomalo in un caso limite a seguito di un cambiamento di orientamento. Ora le animazioni di layout (ad es. Modifier.animateContentSize) nei contenuti del foglio funzionano senza problemi. (I2f981, b/266780234)

Versione 1.5.0-rc01

26 luglio 2023

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

Versione 1.5.0-beta03

28 giugno 2023

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

Correzioni di bug

  • BottomSheetState, ModalBottomSheetState e BottomDrawerState ora mostrano una proprietà di avanzamento che indica lo stato di avanzamento tra l'ancoraggio corrente (stabilito) e l'ancoraggio più vicino nella direzione di scorrimento. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

Versione 1.5.0-beta02

7 giugno 2023

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

Versione 1.5.0-beta01

24 maggio 2023

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

Modifiche alle API

  • Per gli offset di DrawerState e BottomDrawerState non è più possibile specificare valori null. Restituiscono invece Float.NaN per indicare l'assenza dell'offset. (Ie9855)
  • È stata aggiunta un'opzione da passare in un ScrollState durante la creazione di un DropdownMenu o di un ExposedDropdownMenu per controllare lo stato di scorrimento verticale delle voci di menu visualizzate. (Idb009, b/185304441)
  • Aggiungi il supporto per attivare/disattivare il gesto di ModalBottomSheetLayout in modo che l'utente possa configurarlo per un riquadro inferiore più in primo piano (I40af0)
  • È stato aggiunto un parametro di colore a BasicText per consentire di animare o impostare in modo efficiente il colore del testo. (Iffd88, b/246961787)
  • Ridenominazione della proprietà semantica isContainer in isTraversalGroup (I121f6)

Correzioni di bug

  • È stato risolto il problema che mostrava l'azione di ignorare AlertDialog sotto l'azione di conferma quando queste si sovrapponevano tra loro per rientrare nella 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

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

Modifiche alle API

  • Sposteremo la dipendenza della densità a livello di componente. Questo vale per i seguenti componenti: BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer. Utilizza il nuovo sovraccarico fornito in cui la densità è un parametro. (I8fbd8)

Versione 1.5.0-alpha03

19 aprile 2023

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

Modifiche alle API

  • Aggiorna i componenti 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. Stiamo utilizzando la composizione con un elemento SwipeableV2State interno. Offset è ora una proprietà con rappresentazione in virgola mobile null. Il valore corrente e un valore target di scorrimento è ancora accessibile tramite le proprietà currentValue e targetValue. I metodi a livello di classe precedenti, come apertura/espansione/chiusura e proprietà come isOpen/isClosed, continuano a essere supportati. (Iad40c, b/178529942, b/220676296)

Correzioni di bug

  • Sono stati aggiornati i componenti interni del componente Switch. L'opzione ora mostrerà l'anteprima più vicina (stato target) durante il trascinamento. (ID90d4)
  • I contenuti animati dei fogli (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

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

Correzioni di bug

  • È stato corretto un bug per cui BottomSheetScaffold avrebbe avuto un arresto anomalo se fornito con contenuti vuoti per le aree annuncio. (Ib24a5, b/235588730)
  • Corregge PullRefreshIndicator di intercettazione di clic / eventi puntatore (2494256, b/271777421)

Versione 1.5.0-alpha01

22 marzo 2023

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

Correzioni di bug

  • Aggiungi un esempio di ripetizione flusso del gruppo di chip. Aggiorna la spaziatura interna orizzontale tra i chip secondari nell'esempio di chipgroup 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 a seguito di un cambiamento di orientamento. Ora le animazioni di layout (ad es. Modifier.animateContentSize) nei contenuti del foglio 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 bumper di versione).

Versione 1.4.2

19 aprile 2023

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

Versione 1.4.1

5 aprile 2023

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

Versione 1.4.0

22 marzo 2023

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

Modifiche importanti dalla versione 1.3.0

Modifiche alle API

  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559)
  • Modifiche incorporate nelle API Slideable in ModalDrawer. Il valore animateTo di DrawerState è stato sostituito dai metodi di apertura e chiusura e ora l'offset è annullabile. Utilizza requireOffset per richiedere l'offset. (I3de9e)
  • È stato aggiunto il parametro minLines in material e testo material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • Parametro minLines aggiunto a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi componibili 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

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

Modifiche alle API

  • Modifiche incorporate nelle API Slideable in BottomSheetScaffold. Il parametro confirmStateChange di BottomSheetState è stato rinominato in confirmValueChange. progress è ora esposto come valore in virgola mobile. animateTo e snapTo sono interni. Usa 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 piattaforme selezionabili e selezionabili, sono stati aggiornati i componenti che li utilizzavano per impostare i ruoli utilizzando modificatore.semantics (Ibb4ba)
  • Aggiornamento di minore entità alle icone Material estese che modifica le icone riempite desktop_mac, directions e kitchen. (I65f5e).

Versione 1.4.0-beta01

8 febbraio 2023

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

Modifiche alle API

  • È stato risolto un problema per cui pullRefresh non consumava la velocità, causando la visualizzazione dell'overscroll. È stata anche modificata la firma dell'API della lambda onRelease in Modifier.pullRefresh per restituire un valore in virgola mobile per la velocità consumata (I7db65, b/266874741)
  • Il getter LocalMinimuTouchTargetEnforcement della proprietà ripristinato e la contrassegna come deprecata e reindirizza a LocalMinimumInteractiveComponentEnforcement. (I60dd5)

Versione 1.4.0-alpha05

25 gennaio 2023

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

Correzioni di bug

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

Versione 1.4.0-alpha04

11 gennaio 2023

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

Modifiche alle API

  • Aggiunta nella proprietà semantica di IsContainer sulle piattaforme. Questa proprietà verrà utilizzata in una modifica successiva che determina l'ordine di attraversamento in base al significato semantico di elementi come le superfici. (I63379)
  • Contrassegna la funzione snapTo in Riquadro a scomparsa come API non sperimentale. (Ib9c18, b/261425368)
  • È stato aggiunto un parametro per il colore della traccia per gli indicatori di avanzamento circolari e un parametro per il limite del tratto per gli indicatori di avanzamento circolari e lineari. (Ie668c, b/216325962, b/222964817)
  • ModalBottomSheetState, ModalBottomSheetState.Saver e confirmStateChange di rememberModalBottomSheetState sono stati rinominati in confirmValueChange. (Ib48d1).
  • Altri tipi di output nulli per le funzioni nascoste deprecate (Ibf7b0)
  • Aggiungi Modifier.minimumInteractiveComponentSize. Può essere utilizzato per prenotare una dimensione di almeno 48.dp per distinguere le interazioni di tocco nel caso in cui l'elemento abbia dimensioni inferiori. (I33f58, b/258495559)
  • Modifiche incorporate nelle API Slideable in ModalBottomSheetLayout. Il valore animateTo di ModalBottomSheetState non utilizza più un parametro animationSpec e il valore esposto di offset è ora annullabile. Usa requireOffset per richiedere offset. (Ia2e79)

Correzioni di bug

  • Ora un foglio di ModalBottomSheetLayout ha una larghezza massima di 640 dp. (I71a4f, b/234927577)
  • Corregge un problema per cui rememberPullRefreshState non aggiornava refreshThreshold e refreshingOffset nel tempo. (Ifed10, b/263159832)
  • Lo stato di avanzamento degli indicatori è ora correttamente limitato all'intervallo previsto. (I8a7eb, b/262262727)
  • Se ModalBottomSheetState non ha ancora ricevuto alcun ancoraggio, aggiornerà currentValue senza un'animazione quando vengono chiamati snapTo o animateTo anziché generare un'eccezione. (I2c91b).
  • È stato corretto lo stato di attivazione nell'implementazione FilterChip di Material 2. (Id326a, b/261329817)
  • È stato corretto un bug per cui ModalBottomSheetLayout si arrestava in modo anomalo se fosse stato HalfExpanded durante la rotazione da verticale a orizzontale. Assicurati di trasmettere 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 i contenuti di fogli vuoti. Se i contenuti del foglio sono vuoti, avranno solo lo stato Nascosto. (Ic2288, b/200980998, b/216693030)

Problema noto

  • Durante 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 è indicato in origine il problema. È stata inviata una correzione che sarà disponibile nel prossimo aggiornamento di Compose. Come soluzione, aggiorna le librerie androidx.compose.material e androidx.compose.material3 alla versione più recente(1.1.0-alpha04) o esegui il downgrade di androidx.compose.foundation a 1.4.0-alpha03.

Versione 1.4.0-alpha03

7 dicembre 2022

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

Modifiche alle API

  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)
  • Modifiche incorporate nelle API Swipeable in ModalDrawer. Il valore animateTo di DrawerState è stato sostituito dai metodi open e close e ora è possibile specificare un valore null per l'offset. Utilizza requireOffset per richiedere l'offset. (I3de9e)
  • È stata aggiunta un'API Modifier per eseguire query sulle informazioni di scorrimento dei predecessori. (I2ba9d, b/203141462)
  • Utilizzato in Clickable per ritardare correttamente le interazioni con la pressione, quando i gesti potrebbero diventare eventi di scorrimento.
  • È stato corretto il problema di Clickables che non ritardava correttamente le eco, se utilizzato all'interno di un Scrollable ViewGroup.
  • Aggiornati cassetti e fogli per ritardare correttamente le pressioni nel caso in cui i gesti possano diventare eventi di scorrimento.

Correzioni di bug

  • È stato risolto un problema per cui PullRefreshIndicator poteva bloccarsi dopo la chiamata di onRefresh se lo stato di aggiornamento non era stato modificato in true. (Ie2416, b/248274004)

Aggiornamenti delle dipendenze

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

Versione 1.4.0-alpha02

9 novembre 2022

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

Modifiche alle API

  • awaitFirstDown e waitForUpOrCancellation ora accettano un PointerEventPass per una maggiore flessibilità. (I7579a, b/212091796)
  • È stato aggiunto il parametro minLines in material e testo material3, TextField e OutlinedTextField che consente di impostare l'altezza minima del componente in termini di numero di righe (I4af1d)
  • Parametro minLines aggiunto a BasicText e BasicTextField. Consente di impostare l'altezza minima di questi componibili in termini di numero di righe (I24294, b/122476634)

Versione 1.4.0-alpha01

24 ottobre 2022

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

Modifiche alle API

  • È stato aggiunto un nuovo metodo, awaitEachGesture(), per i rilevatori di gesti. Funziona in modo simile a forEachGesture(), ma i gesti di loop sui gesti operano interamente all'interno di AwaitPointerEventScope, in modo che gli eventi non vadano persi tra un'iterazione e l'altra.
  • forEachGesture() è stato ritirato a favore di awaitEachGesture() perché consente di perdere eventi tra un gesto e l'altro. (Iffc3f, b/251260206)

Versione 1.3

Versione 1.3.1

9 novembre 2022

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

Versione 1.3.0

24 ottobre 2022

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

Modifiche importanti dalla versione 1.2.0

Modifica del comportamento che provoca un errore

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

Modifiche alle API

  • Aggiungi un componente Pull-To-Refresh a Compose (I29168).
  • Cambia il nome del parametro da valori a valore in RangeSlider (I3b79a).

Versione 1.3.0-rc01

5 ottobre 2022

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

Versione 1.3.0-beta03

21 settembre 2022

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

Modifiche alle API

  • Aggiungere un componente Pull-To-Refresh a Compose (I29168)

Versione 1.3.0-beta02

7 settembre 2022

Viene rilasciato androidx.compose.material:material-*:1.3.0-beta02. 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

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

Modifica del comportamento che provoca un errore

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

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

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

Versione 1.3.0-alpha03

10 agosto 2022

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

Versione 1.3.0-alpha02

27 luglio 2022

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

Contributo esterno

  • Risolvi AnimatedVisibility problema con FloatingActionButton in Scaffold (I3a0ae, b/224005027)

Versione 1.3.0-alpha01

29 giugno 2022

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

Modifiche alle API

  • Cambia il nome del parametro da valori a valore in RangeSlider (I3b79a)

Correzioni di bug

  • Aggiorna il campione di badge per fornire una descrizione dei contenuti più significativa. (I10b9d)

Versione 1.2

Versione 1.2.1

10 agosto 2022

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

Versione 1.2.0

27 luglio 2022

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

Versione 1.2.0-rc03

29 giugno 2022

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

  • Nessuna modifica dalla versione 1.2.0-rc02.

Versione 1.2.0-rc02

22 giugno 2022

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

Versione 1.2.0-rc01

15 giugno 2022

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

Modifiche alle API

  • Le interfacce nelle librerie di scrittura vengono ora create utilizzando i metodi predefiniti dell'interfaccia jdk8 (I5bcf1)

Correzioni di bug

  • Aggiorna il badge con la scheda con l'icona iniziale per applicare il badge sull'etichetta al posto dell'icona. (I90993)

Versione 1.2.0-beta03

1 giugno 2022

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

Correzioni di bug

  • È stato corretto un bug per cui BottomSheetScaffold tracciava l'ombra della barra delle app in alto. BottomSheetScaffold ora prende in considerazione lo stato del foglio anche quando vengono inserite le Snackbar: nello stato compresso, le Snackbar vengono posizionate sopra il foglio e il FAB; nello stato espanso, le Snackbar sono ancorate alla parte inferiore del foglio. (Ia80b5, b/187771422)

Versione 1.2.0-beta02

18 maggio 2022

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

Versione 1.2.0-beta01

11 maggio 2022

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

Nuove funzionalità

  • Questa è la prima versione beta della 1.2.

Modifiche alle API

  • L'elemento componibile TextFieldDefaults.BorderStroke è stato rinominato che disegna un tratto del bordo in OutlinedTextField in TextFieldDefaults.BorderBox. (I5f295).

Versione 1.2.0-alpha08

20 aprile 2022

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

Modifiche alle API

  • Il consumo parziale (posizione OR giù) è stato deprecato in PointerInputChange. Puoi utilizzare consume() per applicare completamente la modifica. Puoi utilizzare isConsumed per determinare se qualcun altro ha utilizzato in precedenza la modifica.
  • PointerInputChange::copy() ora crea sempre una copia superficiale. Significa che le copie di PointerInputChange verranno consumate una volta che una delle copie è stata utilizzata. Se vuoi creare un elemento PointerInputChange non associato, utilizza invece il costruttore. (Ie6be4, b/225669674)

Versione 1.2.0-alpha07

6 aprile 2022

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

Versione 1.2.0-alpha06

23 marzo 2022

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

Modifiche alle API

  • Aggiornamenti all'API cliccabile Card per seguire le modifiche all'API Surface (I56bcb)
  • Aggiornamenti all'API Material 2 Surface che aggiunge ulteriori funzioni di sovraccarico per le superfici selezionabili e attivabili. (Ifcca5).

Versione 1.2.0-alpha05

9 marzo 2022

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

Modifiche alle API

  • LazyVerticalGrid e LazyHorizontalGrid ora sono stabili. (I307c0)
  • LazyVerticalGrid/LazyHorizontalGrid e tutte le API correlate sono stati spostati nel sottopacchetto .grid. Aggiorna le importazioni da androidx.compose.foundation.lazy ad androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)
  • È stata ripristinata la modifica precedente dell'utilizzo esclusivo di una vista per WindowInsetsControllerCompat e richiede di nuovo una finestra necessaria per la gestione di alcuni flag delle finestre. Ritirato ViewCompat.getWindowInsetsController in favore di WindowCompat.getInsetsController per garantire che venga utilizzata la finestra corretta (ad esempio se la vista è in una finestra di dialogo). (I660ae, b/219572936)
  • Testo:la funzionalità includeFontPadding è ora disattivata per impostazione predefinita. I problemi di ritaglio causati dall'applicazione 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 degli assi trasversali (I17723)

Versione 1.2.0-alpha04

23 febbraio 2022

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

Modifiche alle API

  • Add support for filter chips (I39a6e, b/192585545)
  • Sono stati aggiunti TextFieldDecorationBox e OutlinedTextFieldDecorationBox. L'utilizzo insieme a BasicTextField ti aiuterà a creare campi di testo personalizzati basati su campi di testo Material Design, ma con più opzioni di personalizzazione.
  • Fornito un modo per regolare la spaziatura interna orizzontale e verticale nei campi di testo. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/16800133)
  • Sono stati aggiunti ComposableTarget, ComposableTargetMarker e ComposableOpenTarget che consentono di generare report sul tempo di compilazione del momento in cui una funzione componibile viene chiamata come target di un applicatore che non è stata progettata.

    Nella maggior parte dei casi le annotazioni possono essere dedotte dal plug-in del compilatore di scrittura, quindi l'utilizzo diretto di queste annotazioni dovrebbe essere raro . I casi che non possono essere dedotti includono la creazione e l'utilizzo di un applicatore personalizzato, funzioni componibili astratte (ad esempio metodi di interfaccia), campi o variabili globali che sono lambda componibili (vengono dedotti parametri e variabili locali) oppure l'utilizzo di ComposeNode o di funzioni componibili correlate.

    Per gli applicativi personalizzati, le funzioni componibili che chiamano ComposeNode o ReusableComposeNode devono aggiungere un'annotazione CompoableTarget per la funzione e qualsiasi tipo di parametro lambda componibile. Tuttavia, ti consigliamo di creare un'annotazione annotata con ComposableTargetMarker in modo da utilizzare l'annotazione contrassegnata al posto di ComposableTarget direttamente. Un'annotazione componibile contrassegnata con ComposableTargetMarker equivale a 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

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

Correzioni di bug

Versione 1.2.0-alpha02

26 gennaio 2022

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

Modifiche alle API

  • È stato aggiunto NonRestartableComposable ai metodi che sono sovraccarichi di metodi esistenti senza logica complessa. Questo riduce i controlli di memorizzazione generati dal compilatore (uguale) per tutti i parametri che vengono ripetuti nella funzione interna che viene chiamata. (I90490)
  • Aggiungi il supporto per il chip di azione (I07100, b/192585545)

Versione 1.2.0-alpha01

12 gennaio 2022

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

Aggiornamenti delle dipendenze

  • Ora dipende da Kotlin 1.6.10.

Contributo esterno

  • ModalBottomSheetState ora ha una segnalazione 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 causa una ricomposizione del foglio. (I18b86, b/186669820)

Versione 1.1

Versione 1.1.1

23 febbraio 2022

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

Correzioni di bug

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

Versione 1.1.0

9 febbraio 2022

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

Modifiche importanti dalla versione 1.0.0

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

Versione 1.1.0-rc03

26 gennaio 2022

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

Variazioni del comportamento

Tieni presente che, rispetto a Compose 1.0, i componenti Material amplieranno lo spazio di layout per rispettare le dimensioni del touch target delle linee guida per l'accessibilità di Material. Ad esempio, il touch target del pulsante si espanderà a una dimensione minima di 48 x 48 dp, anche se imposti le dimensioni del pulsante su un valore inferiore. In questo modo, Compose Material si allinea allo stesso comportamento dei componenti di Material Design e si ottiene un comportamento coerente se si combinano Visualizzazioni e Compose. Questa modifica garantisce inoltre che, quando crei la UI utilizzando i componenti Compose Material, vengano soddisfatti i requisiti minimi per l'accessibilità dei touch target.

Correzioni di bug

  • Sono state aggiunte informazioni di debug migliori per lo strumento di controllo del layout durante l'ispezione del numero minimo di modificatori dei touch target. (aosp/1955036)

Versione 1.1.0-rc01

15 dicembre 2021

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

Correzioni di bug

Versione 1.1.0-beta04

1 dicembre 2021

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

Nuove funzionalità

  • Aggiornamento per essere compatibile con Kotlin 1.6.0

Versione 1.1.0-beta03

17 novembre 2021

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

Versione 1.1.0-beta02

3 novembre 2021

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

Correzioni di bug

  • Eco e altre indicazioni ora saranno ritardate solo se si trovano all'interno di un container Modifier.scrollable(), invece di essere sempre ritardate per un evento down. (Ibefe0, b/203141462)

Versione 1.1.0-beta01

27 ottobre 2021

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

Nuove funzionalità

  • L'eco supporta ora gli stati al passaggio del mouse e allo stato attivo, quindi se passi il mouse sopra o imposti lo stato attivo su un componente come Pulsante ora verrà visualizzato l'overlay dello stato corretto.

Versione 1.1.0-alpha06

13 ottobre 2021

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

Modifiche alle API

  • È stato aggiunto un sovraccarico senza figlio per Layout, con una maggiore efficienza (Ib0d9a)
  • Implementazione di ExposedDropdownMenu basata su ExposedDropdownMenuBox con TextField e DropdownMenu all'interno (If60b2)
  • dismissOnOutsideClick è stato aggiunto a PopupProperties, sostituendo dismissOnClickOutside, che era deprecato. La nuova proprietà riceve la posizione del clic e i limiti di ancoraggio, in modo da avere un controllo più preciso sulla necessità di richiamare onIgnoraRequest o meno. Ad esempio, questo può essere utile per evitare che gli ancoraggi vengano chiusi con i tocchi.
    • L'elemento updateAndroidWindowManagerFlags è stato aggiunto a PopupProperties, in modo da offrire un controllo di basso livello sui flag trasmessi dal popup ad Android WindowManager. Il parametro di lambda saranno i flag calcolati dai valori PopupProperties che generano i flag WindowManager, ad esempio attivabili. Il risultato di lambda saranno i flag finali che verranno passati ad Android WindowManager. Per impostazione predefinita, updateAndroidWindowManagerFlags lascia invariati i flag calcolati dai parametri. Questa API deve essere utilizzata con cautela, solo nei casi in cui il popup abbia requisiti di comportamento molto specifici. (I6e9f9)

Versione 1.1.0-alpha05

29 settembre 2021

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

Modifiche alle API

  • Aggiunge le dimensioni minime del touch target per i componenti Material che non hanno un touch target accessibile. L'aggiunta di spazio aggiuntivo tra i componenti per assicurarsi che abbiano un touch target sufficientemente grande potrebbe modificare le UI esistenti che presuppongono che le dimensioni di questi componenti siano quelle visive e non tengano conto di quelle del touch target. Puoi utilizzare la composizione sperimentale LocalMinimumTouchTargetEnforcement locale per disattivare questo comportamento in una gerarchia, ma è inteso solo come un'alternativa temporanea durante l'aggiornamento delle interfacce utente esistenti per tenere conto delle nuove dimensioni minime. (I9b966, b/149691127, b/171509422)
  • È stata aggiunta l'interfaccia sperimentale TextFieldColorsWithIcons, estendendo TextFieldColors per fornire InteractionSource a leaderColor e trailingColor. Ciò consente di modificare l'aspetto di TextField in base allo stato attivo. (I66923, b/198402662)

Versione 1.1.0-alpha04

15 settembre 2021

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

Modifiche alle API

  • performGesture e GestureScope deprecati, che sono stati sostituiti da performTouchInput e TouchInjectionScope. (Ia5f3f, b/190493367)
  • È stato aggiunto touchBoundsInRoot a SemanticsNode che include le dimensioni minime del touch target per consentire agli sviluppatori di garantire che i touch target soddisfino i requisiti minimi di accessibilità. (I2e14b, b/197751214)

Correzioni di bug

  • Consente al clip di estendere i limiti del touch target oltre l'area del clip per scopi minimi del touch target. (I43e10, b/171509422)
  • Aggiornamento componibile Divider aggiornato per rispettare Dp.Hairline per il parametro spessore per supportare il disegno di divisori a pixel singoli, indipendentemente dalla densità del display. (I16ffb, b/196840810)

Versione 1.1.0-alpha03

1° settembre 2021

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

Nuove funzionalità

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

Modifiche alle API

  • Aggiunto un metodo di test per ottenere i limiti troncati. (I6b28e)
  • Sono state aggiunte le dimensioni minime del touch target a ViewConfiguration, da usare nella semantica e nell'input del puntatore per garantire l'accessibilità. (Ie861c).

Versione 1.1.0-alpha02

18 agosto 2021

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

Contributo esterno

  • Correggi il comportamento di SwipeableState nel caso in cui l'offset dello scorrimento si trovi all'interno di un errore di arrotondamento di un ancoraggio. (I03d39, b/191993377)

Versione 1.1.0-alpha01

4 agosto 2021

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

Modifiche alle API

  • È stato aggiornato il metodo DrawScope#drawImage che utilizza i retti di origine e di destinazione per utilizzare un parametro facoltativo FilterQuality. Ciò è utile per la pixel art che intende essere pixelata durante lo scale up per la pixel art. Aggiornamento di BitmapPainter + Immagine componibile per utilizzare anche un parametro facoltativo FilterQuality (Ie4fb0, b/180311607)
  • BadgeBox è stato rinominato BadgedBox e sono stati modificati i parametri per accettare il badge componibile. È stato aggiunto il componente Badge, che rappresenta i contenuti tipici del badge per un BadgedBox. (I639c6)
  • È stato aggiunto il componente NavigationRail; consulta la documentazione e gli esempi per informazioni sull'utilizzo (I8de77)

Correzioni di bug

  • Sono stati aggiunti un esempio di NavigationRail con allineamento in basso e una demo dell'app Catalog. (I3cffc)
  • Le finestre di dialogo ora seguono il comportamento di dimensionamento della piattaforma. Imposta usePlatformDefaultwidth su false per ignorare questo comportamento. (Iffaed, b/192682388)
  • È stata aggiunta una demo della barra di navigazione all'app catalogo (I04960)
  • È stata aggiunta la demo del badge all'app di catalogo. (If285d)

Versione 1.0

Versione 1.0.5

3 novembre 2021

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

Correzioni di bug

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

Versione 1.0.4

13 ottobre 2021

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

Aggiornamenti delle dipendenze

  • Aggiornamento in base a Kotlin 1.5.31 eseguito

Versione 1.0.3

29 settembre 2021

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

Aggiornamenti delle dipendenze

  • Aggiornamento in base a Kotlin 1.5.30 eseguito

Versione 1.0.2

1° settembre 2021

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

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

Versione 1.0.1

4 agosto 2021

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

Aggiornamenti delle dipendenze

  • Aggiornamento eseguito in modo da dipendere da Kotlin 1.5.21.

Versione 1.0.0

28 luglio 2021

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

Funzionalità principali di 1.0.0

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

Problemi noti

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

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

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

Versione 1.0.0-rc02

14 luglio 2021

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

Correzioni di bug

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

Versione 1.0.0-rc01

1 luglio 2021

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

Modifiche alle API

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

Correzioni di bug

  • Per allinearsi alle specifiche di Material Design OutliningTextField con un input non valido ha smesso di utilizzare il colore di errore per l'etichetta quando l'etichetta viene usata come segnaposto. Il secondo si verifica quando il campo di testo non contiene testo di input e quest'ultimo non è attivo. Di conseguenza, è cambiato anche il significato del parametro error:Boolean nella funzione TextFieldColors.labelColor(): ora restituirà false anche se l'input non è valido se l'etichetta viene utilizzata come segnaposto. (I45f78)

Versione 1.0.0-beta09

16 giugno 2021

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

Modifiche alle API

  • È stato aggiunto il parametro Forma a OutliningTextField per poter personalizzare la forma del bordo (I8f39e, b/181322957)
  • TextOverflow è cambiato in una classe in linea. (I433af)

Correzioni di bug

  • Scrim nel cassetto inferiore, BackdropScaffold e ModalBottomSheetLayout scompaiono e viene passato il colore non specificato (I2d899, b/182063309).

Regole del profilo aggiunte

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

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

Che cosa sono le regole del profilo?

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

  • Una regola del metodo avrà il seguente pattern:

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

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

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

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

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

A cosa servono le regole?

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

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

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

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

Come funziona?

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

Versione 1.0.0-beta08

2 giugno 2021

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

Nuove funzionalità

Modifica dell'API Behavior Breaking

  • INTERRUZIONE DEL COMPORTAMENTO: ora la scheda consuma clic, pertanto vengono aggiunti tramite Card(Modifier.clickable) per essere autonomi. Utilizza un nuovo sovraccarico sperimentale di una scheda che accetta reCAPTCHA. (Ia8744, b/183775620)
    • È stato aggiunto un nuovo sovraccarico di schede che gestisce i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivata/disattivata. Non è stato possibile utilizzare una normale scheda non cliccabile con Modifier.clickable perché la scheda non taglia l'indicazione dell'eco in questi casi.
  • INTERRUZIONE DEL COMPORTAMENTO: ora Surface consuma clic, di conseguenza i clic vengono aggiunti tramite Surface(Modifier.clickable) in modo da essere no-operativi. Utilizza un nuovo sovraccarico sperimentale di Surface che accetta velocità di base. (I73e6c, b/183775620)
    • È stato aggiunto un nuovo sovraccarico di Surface per gestire i clic e altre funzionalità cliccabili: indicazione, interazioneSource, attivato/disattivato. Non è stato possibile utilizzare una superficie normale non cliccabile con Modifier.clickable perché in questi casi l'indicazione dell'eco non verrà tagliata.

Modifiche alle API

  • FabPosition è stato convertito in classe in linea da enum per supportare una potenziale espansione in futuro (I030fb)
  • Gli utilizzi delle enum sottoposti a refactoring in classi in linea per evitare problemi con esaustivi quando vengono aggiunti nuovi valori di enum. (I2b5eb)
  • Aggiunge un timeout del tocco all'elemento cliccabile/attivabile per evitare la visualizzazione di un'eco durante lo scorrimento o il trascinamento (Ia2704, b/168524931)
  • ContentDescription e le proprietà semantiche del testo non sono più singoli valori, ma elenchi. Ciò consente di unirli così come sono, anziché concatenazioni. Sono state inoltre fornite API di test migliori per l'utilizzo di queste modifiche (Ica6bf, b/184825850)
  • Modifier.focusModifier() è deprecato e sostituito da Modifier.focusTarget() (I6c860)
  • Enum FocusState sostituita con un'interfaccia FocusState (ICC1a, b/187055290)
  • È stato rimosso LocalRippleNativeRendering ora che l'implementazione dell'ondulazione supportata da View è stabile (I7fab3, b/188569367)

Correzioni di bug

  • Modifier.onGloballyPositioned() è stato modificato per indicare le coordinate di questo modificatore nella catena di modificatori, non le coordinate del layout dopo l'applicazione di tutti i modificatori. Ciò significa che ora l'ordine dei modificatori influisce sulle coordinate indicate. (Ieb67d, b/177926591)
  • È stato aggiunto un file README per il catalogo Compose Material esistente. (If9191)

Versione 1.0.0-beta07

18 maggio 2021

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

Modifiche alle API

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

Versione 1.0.0-beta06

5 maggio 2021

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

Modifiche alle API

  • È stata eseguita la migrazione di Ripple per l'utilizzo interno di RippleDrawable sui dispositivi Android. Ciò significa che le animazioni a onde si verificheranno in RenderThread, quindi saranno fluide anche quando il thread dell'interfaccia utente è sotto carico, ad esempio durante la navigazione tra le schermate. Ciò non modifica la superficie dell'eco dell'API, ma potrebbero essere apportate modifiche al comportamento in seguito a questa modifica. Per facilitare la migrazione, è stato aggiunto LocalRippleNativeRendering. Fornisci un valore di false a questo ComposeLocal per recuperare l'implementazione dell'eco precedente all'interno di ComposeLocalProvider. Questa API è temporanea e verrà rimossa in futuro, pertanto se riscontri problemi che ti portano a utilizzare questa API, 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 Accessibility error che consente di contrassegnare un nodo contenente input non valido (I12997, b/180584804, b/182142737)

Correzioni di bug

  • Il catalogo Compose Material aggiornato include l'implementazione da: https://github.com/google/accompanist/pull/365. (I25dc3)
  • Gli elementi secondari di riga e colonna con peso(fill = false) non consentono più all'elemento principale di riempire l'intero spazio disponibile dell'asse principale. (Ied94d, b/186012444, b/184355105)

Versione 1.0.0-beta05

21 aprile 2021

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

Correzioni di bug

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

Versione 1.0.0-beta04

7 aprile 2021

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

Modifiche alle API

  • MODIFICA DELL'API: lo stato DrawerState non è più esteso all'esperimento swipeableState.
    • MODIFICA DELL'API: BottomDrawerState è ora contrassegnato come sperimentale, in modo che corrisponda già al componente sperimentale BottomDrawer (I81114, b/181656094)
  • Rinomina hideSoftwareKeyboard e showSoftwareKeyboard su SoftwareKeyboardController rispettivamente in hide() e show().
    • Fornire l'interfaccia completa di ComposeLocal per LocalSoftwareKeyboardController, consentendone l'impostazione (particolarmente utile per i test) (I579a6)
  • È stata aggiunta l'API LiveRegion Accessibility. Se il nodo è contrassegnato come regione attiva, i servizi di accessibilità avviseranno automaticamente l'utente delle modifiche (Idcf6f, b/172590946)

Correzioni di bug

  • È stata aggiunta l'implementazione del catalogo Compose Material al modulo esistente. Attualmente mancanti: immagini dei riquadri dei componenti, selettore di temi (da aggiungere nelle modifiche di follow-up). (Ie7a94).

Versione 1.0.0-beta03

24 marzo 2021

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

Modifiche alle API

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

Contributo esterno

  • [di Jossi Wolf] BottomDrawer ora aggrega i contenuti dell'alloggiamento del riquadro a scomparsa. BottomDrawer non genera un IllegalStateException se l'altezza principale è infinita. Il riquadro a scomparsa in basso ora si aprirà in uno stato espanso se è inferiore al 50% di quello principale. I documenti relativi a BottomDrawerState e ModalBottomSheetLayoutState sono stati aggiornati. BottomDrawerState#isOpen ora restituisce true se è in stato aperto o espanso. (I87241)

Versione 1.0.0-beta02

10 marzo 2021

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

Modifiche alle API

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

Correzioni di bug

  • Applicare restrizioni sull'uso pubblico delle API sperimentali (I6aa29, b/174531520)
  • Modificato l'allineamento orizzontale predefinito per TopAppBar e BottomAppBar in Start, coerente con Row (Ib2dc7)
  • Sono stati aggiunti un nuovo modulo e un'interfaccia utente segnaposto per un catalogo Compose Material, attualmente nidificato nelle demo sui test di integrazione esistenti. (Idfcb3)
  • androidx.compose.ui:ui non dipende più da AppCompat o Fragment. Se usi ComposeView nella tua applicazione e utilizzi Fragment e/o AppCompat, assicurati di usare AppCompat 1.3+ / Fragment 1.3+: queste versioni sono necessarie per impostare correttamente i proprietari del ciclo di vita e dello stato salvato richiesti per ComposeView. (I1d6fa, b/161814404)

Versione 1.0.0-beta01

24 febbraio 2021

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

Questa è la prima versione di Compose 1.0.0 Beta.

Modifiche alle API

  • I modificatori di dimensione sono stati rinominati. Modifier.width/height/size è stato rinominato in requiredwidth/requiredHeight/requiredSize. Modifier.preferredwidth/preferredHeight/preferredSize è stata rinominata in larghezza/altezza/dimensione. (I5b414).
  • imageResource e vectorResource sono ora funzioni di estensione rispettivamente per i companion ImageBitmap e ImageVector. Le funzioni load{Image,Vector,Font}Resource sono state eliminate. (I89130)
  • I modificatori per la taglia intrinseca non sono più sperimentali. (I15744)
  • Asserzioni Dp rimosse (I798d2)
  • A breve il callback SoftwareKeyboardController sarà rimosso da tutti i campi di testo da sostituire con una nuova API. (Iae869, b/168778053)
  • Le lambda delle azioni Switch, Casella di controllo e RadioButton ora possono essere nulle. Gli esempi di checkbox-in-clickable-row sono stati aggiornati per utilizzare questa funzionalità. (If601b, b/171819073)
  • InteractionState è stato sostituito con [Mutable]InteractionSource
    • Le interfacce sono responsabili dell'emissione / raccolta degli eventi di interazione.
    • Anziché trasmettere interactionState = remember { InteractionState() } a componenti come Button e Modifier.clickable(), utilizza interactionSource = remember { MutableInteractionSource() }.
    • Invece di: Interaction.Pressed in interactionState, devi utilizzare le funzioni di estensione su InteractionSource, ad esempio InteractionSource.collectIsPressedAsState().
    • Per casi d'uso complessi, puoi utilizzare InteractionSource.interactions per osservare il flusso di interazioni. Per ulteriori informazioni, consulta la documentazione e gli esempi di InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Aggiungi l'interfaccia AccessibilityMananger e LocalAccessibilityMananger in ComposeLocals (I53520)
  • Rimossi i metodi LayoutCoordinates deprecati. Usa la funzione anziché la proprietà per positionInParent e boundsInParent (I580ed, b/169874631, b/175142755)
  • Il cursore ora supporta lo stato attivato/disattivato (I6d56b, b/179793072)
  • È stata creata una nuova sessione TextInputSession per le sessioni di input da componenti di testo di basso livello come CoreTextField. (I8817f, b/177662148)
  • AnimationEndReason.Interrupted è stato rimosso. Se l'animazione viene interrotta, viene inviata un'eccezione AnnullationException. (I2cbbc, b/179695417)
  • È stato rimosso @ExperimentalRippleApi e RippleAlpha è stato modificato in una classe con proprietà anziché un'interfaccia. (I6df7c).
  • È stata aggiunta l'interfaccia TextFieldColors per rappresentare i diversi colori utilizzati in TextField e OutliningTextField in stati differenti. Per l'implementazione predefinita, vedi TextFieldDefaults.textFieldColors e TextFieldDefaults.outlinedTextFieldColors.
    • Il parametro isErrorValue è stato rinominato all'interno di TextField e OutliningTextField in isError. (I831f9, b/171305338, b/168004067)
  • Aggiungi il modificatore selectGroup che consente di contrassegnare la raccolta di schede o pulsanti di opzione ai fini dell'accessibilità (Ie5c29)
  • Aggiungi LazyListState.animatescrollToItem

    Questo metodo consente di scorrere senza problemi fino a un elemento specifico dell'elenco. (I4bfd7)

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

  • Tutti gli elementi componibili contrassegnati con @ReadOnlyComposable vengono ora 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() è rappresentata ora con Ints (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é dei Decadimenti predefiniti. (I02b86, b/175294473)

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

  • defaultMinSizeConstraints è stato rinominato in defaultMinSize. (I4eaae).

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

  • È ora disponibile una modalità di sospensione delle funzioni, Usa passwordsCoroutineScope() per ottenere l'ambito della composizione per chiamarli (I16f60, b/175294473)

  • I provider sono stati rinominati in ComposizioneLocalProvider

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

  • Modifier.draggable ora accetta DraggableState invece di una semplice lambda. Puoi creare uno 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 deprecate in precedenza (Ice5da, b/178633932)

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

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

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

  • Il valore di Indication#createIndication() è stato modificato in Indication#rememberUpdatedIndication(InteractionState) e rimuove il parametro InteractionState da IndicationInstance#drawIndication(). IndicationInstance deve essere responsabile solo di disegnare effetti visivi e non avviare animazioni o scrivere stato in risposta alle modifiche InteractionState. Queste animazioni e scritture degli stati devono invece avvenire all'interno di rememberUpdatedIndication(). Anche il parametro indication in Modifier.indication è stato modificato in modo da essere obbligatorio. (Ic1764, b/152525426)

Correzioni di bug

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

Versione 1.0.0-alpha12

10 febbraio 2021

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

Modifiche alle API

  • Modifier.pointerInput ora richiede tasti di memorizzazione per indicare quando la coroutine di rilevamento dell'input del puntatore deve riavviarsi per nuove dipendenze. (I849cd)
  • BottomDrawerLayout e ListItem sono stati contrassegnati come @ExperimentalMaterialApi (Id766e)
  • PaddingValues.Absolute è stato aggiunto e può essere utilizzato nelle API che accettano PaddingValues. (Ia5f30)
  • Il comando onImeActionPerformed è deprecato. Utilizza invece Keyboard Actions (If0bbd, b/179071523)
  • Al fine di trovare una migliore corrispondenza tra le convenzioni di denominazione con ImageBitmap e ImageVector, ImagePainter è stato rinominato BitmapPainter per convertirlo in VectorPainter parallelo. (Iba381, b/174565889)
  • Animatable.snapTo e Animatable.stop sono ora funzioni di sospensione (If4288)
  • Il valore ComponentActivity.setContent è stato spostato in androidx.activity.compose.setContent nel modulo androidx.activity:activity-compose. (Icf416)
  • I metodi Destructuring e copy() sono stati rimossi da diverse classi in cui venivano usati raramente. (I26702, b/178659281)
  • Imposta HalEspandi() ed espandibili() in ModalBottomSheetState come interni (Ic914e)
  • È stato modificato Indication#createInstance in @Composable e LocalIndication è stata modificata in modo da contenere un'indicazione, non () -> Indication. (I5eeea, b/157150564)
  • Finestra di dialogo e menu a discesa spostati in modo che siano solo Android per il momento. È stato aggiunto il parametro PopupProperties a DropdownMenu per un'ulteriore configurazione del popup sottostante. (I9c443)
  • Il metodo loadFontResource è deprecato. Utilizza fontResource. imageResource, loadImageResource, vectorResource e loadVectorResource sono deprecati. Usa invece pitterResource. (I6b809)
  • I parametri toggle e toggleModifier sono stati rimossi dal menu a discesa e sono stati rinominati dropdownModifier, dropdownOffset e dropdownContent rispettivamente in modifier, offset e content. Il menu a discesa ora si comporta in modo coerente con Popup, dove viene utilizzato il layout principale per la posizione del menu. Nella maggior parte dei casi puoi spostare toggle come gemello di DropdownMenu e aggregare entrambi in un Box. Consulta l'esempio aggiornato nella documentazione per ulteriori informazioni sull'utilizzo di questa API. (I884fb)
  • toIntPx() è stato rinominato roundToPx(). (I9b7e4, b/173502290)
  • IntBounds è stato rinominato IntRect e l'API è stata migliorata. (I1f6ff)
  • Sono state aggiunte azioni di espansione e compressione della semantica. Sono state aggiunte le funzionalità di espansione e di espansione a metà in ModalBottomSheetState (Ib5064)
  • Modifier.dragGeFilter è stato ritirato. Usa invece il criterio Modifier.pointerInput { detectDragGestures (...)}. In alternativa, utilizza Modifier.draggable per il trascinamento su un asse (I0ba93, b/175294473)
  • Gli ambienti Ambient sono stati rinominati in modo che corrisponda al nuovo nome Ambient -> ComposeLocal. Un tempo gli ambienti Ambient si chiamavano AmbientFoo, ora i ComposeLocals si chiamano LocalFoo. (I2d55d).
  • La selezione è stata spostata nelle basi. (I7892b)
  • Analogamente a come abbiamo rimosso il componibile state { 0 } e ora ne promuoviamo l'utilizzo come remember { mutableStateOf(0) }, rimuoveremo il componibile savedInstanceState { 0 }. Dovresti usare rememberSaveable { mutableStateOf(0) }, che verrà salvato e ripristinato automaticamente se il tipo utilizzato all'interno del MutableState può essere archiviato nel bundle. Se in precedenza passavi un oggetto salvaschermo personalizzato, ora devi utilizzare un nuovo sovraccarico di memorizzareSaveable con il parametro stateSaver. L'utilizzo sarà simile a questo: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • È stato aggiunto ProgressBarRangeInfo.Indeterminate per contrassegnare le barre di avanzamento indeterminate per l'accessibilità (I6fe05)
  • @ComposableContract è stato ritirato e sostituito con tre annotazioni più specifiche.

    • @ComposableContract(restartable = false) è diventato @NonRestartableComposable
    • @ComposableContract(readonly = true) è diventato @ReadOnlyComposable
    • @ComposableContract(preventCapture = true) è diventato @DisallowComposableCalls
    • L'utente @ComposableContract(tracked = true) è stato rimosso.
    • (I60a9d)
  • Le utilità emptyContent() e (@Composable () -> Unit).orEmpty() sono state ritirate in quanto non hanno più alcun impatto positivo sulle prestazioni o valore (I0484d)

  • SavedInstanceState() è stato rinominato in saveSaveable() e spostato nel pacchetto androidx.compose.runtime.saveable. (I1366e, b/177338004)

  • Saver, listSaver(), mapSaver(), autoSaver è stato spostato da androidx.compose.runtime.savedinstancestate ad androidx.compose.runtime.saveable (I77fe6)

  • I parametri di RounderCornerShape, CutCornerShape e CornerBasedShape sono stati rinominati da sinistra/destra all'inizio e alla fine per supportare il mirroring automatico della forma nella direzione RTL. I metodi AbsoluteRounderCornerShape e AbsoluteCutCornerShape sono stati introdotti nei casi in cui non si desidera eseguire il mirroring automatico. (I61040, b/152756983)

  • I parametri text e icon di Tab e il parametro label di Bottom BrowsingItem sono stati modificati in modo da essere null, al fine di comunicare meglio il comportamento del componente quando questi parametri sono o non sono forniti, dal momento che influisce sulle dimensioni e sul layout del componente. Se attualmente passi emptyContent() per rappresentare nessun testo, un'icona o un'etichetta, devi usare null. (I57ed4)

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

  • Ha ritirato TabDefaults e lo ha sostituito con TabRowDefaults. (I0f189)

  • Introduzione dell'API ColorMatrix utilizzata per modificare i valori RGB dei contenuti di origine (Ica1e8)

  • L'elemento AnimatedValue/Float è ora deprecato. Usa invece Animatable. (I71345, b/177457083)

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

  • Sono stati aggiunti parametri attivati a Tab e BottomNavigatorItem per impedire che sia possibile fare clic. È stato modificato BottomNavigatorItem in RowScope.Bottom BrowsingItem per esprimere meglio i requisiti di layout nella sua API. (ID683d)

  • Le opzioni tapGeFilter, doubleTapGeFilter, longPress descrittiFilter e pressIndicaitonGeFilter sono state ritirate. Usa invece Modifier.clickable o Modifier.pointerInput con la funzione detectTapGestis. (I6baf9, b/175294473)

  • Aggiungi il parametro layoutDirection al parametro createOutline della forma. In questo modo è possibile creare forme sensibili alla direzione del layout. (I57c20, b/152756983)

  • Recomposer.current() rimosso. [Abstract]ComposeView ora utilizza per impostazione predefinita i ricompositori con ambito a livello di finestra creati in modo lento e ViewTreeLifecycleOwner per la finestra. I segni di graduazione dell'animazione Recomposition e withFrameNanos vengono messi in pausa mentre il ciclo di vita dell'host viene interrotto. (I38e11)

Correzioni di bug

  • L'icona verrà ora ridimensionata per adattarsi alle dimensioni, rispettando i modificatori di dimensione applicati. Ad esempio, Icon(.., modifier = Modifier.size(50.dp) ora disegna in uno spazio di 50 x 50 dp. (Ib2ba9, b/178796190)

Versione 1.0.0-alpha11

28 gennaio 2021

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

Modifiche alle API

  • Promuove alcune API Material in modo che non siano più @Experimental (I5d20e)
  • Il parametro della descrizione dei contenuti è stato aggiunto a Immagine e Icona. Viene utilizzato per fornire una descrizione dei servizi di accessibilità (I2ac4c)
  • Modifica le interfacce dei parametri stateful Material in modo che abbiano funzioni @Composable che restituiscono State<T>. Aggiunge Animatable.asState() per semplificare la conversione di un elemento animato in uno stato. Modifica inoltre animazioneElevation in modo che diventi un'estensione di sospensione su Animatable. (If613c).
  • Snackbar, SnackbarHost, SnackbarHostState non sono più @ExperimentalMaterialAPI (Id1fb5)
  • Modifica tipografia, forme e TabPosition in modo che non siano più classi di dati. Aggiunge la funzione di copia per tipografia e forme per sostituire quelli generati. (I40037)
  • Sono state eliminate alcune API Material precedentemente deprecate (Ifaa25)

Correzioni di bug

  • onCommit, onDispose e onActive sono stati deprecati in favore delle API SideEffect e DisposableEffect (If760e)
  • La transizione basata su TransactionDefinition è stata ritirata (I0ac57)
  • Lo stato iniziale in updateTransizione è ora supportato (Ifd51d)
  • WithConstraints è stato rielaborato come BoxWithConstraints e spostato in ground.layout. (I9420b, b/173387208)
  • Ritira lo scorrimento non sospesoPer, rimuovi lo scorrimento dei dati non sospesi

    Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere il completamento dello scorrimento. Nell'ambito di questa transizione, ritireremo e/o rimuoveremo le versioni senza sospensione di queste funzioni. (Ie9ced)

  • Ritira l'impostazione senza sospensione smoothscrollBy Ora consigliamo di utilizzare le funzioni di sospensione per controllare lo scorrimento e attendere il completamento dello scorrimento. Nell'ambito di questa transizione, le versioni senza sospensione di queste funzioni verranno ritirate. (I12880)

  • È stata introdotta la funzione ComposeContentTestRule, che estende ComposeTestRule e definisce setContent, che è stata rimossa da ComposeTestRule. È stato aggiunto un metodo di fabbrica createEmptyComposeRule() che restituisce un ComposeTestRule e non avvia un'attività per te. Da utilizzare quando vuoi avviare la tua Attività durante il test, ad es. utilizzando ActivityScenario.launch (I9d782, b/174472899)

  • L'eco utilizzato in Button e FloatingActionButton non può più essere personalizzato fornendo una nuova Indicazione tramite AmbientIndication. Questo non è mai stato pensato per essere un modo di personalizzare questi componenti e ora rende questi componenti coerenti con gli altri componenti Material. Per personalizzare gli echi in un'applicazione, vedi RippleTheme. (I546c5).

  • animatoAsState ora è animatoFooAsState, dove Foo è il tipo di variabile da animare, ad esempio Float, Dp, Offset e così via (Ie7e25).

  • BasicTextField ha ricevuto un nuovo parametro chiamato decorationBox. Consente di aggiungere elementi decorativi come icone, segnaposto, etichette e simili al campo di testo e di aumentare l'area degli hit target di quest'ultimo. (I16996)

  • Correzione di un bug che impediva l'impostazione della larghezza del campo di testo del materiale inferiore a 280.dp (I78373)

  • Il parametro canTrascina è stato rimosso da Modifier.draggable (Ic4bec, b/175294473)

  • Rimuovi displaySize perché dovrebbe essere evitato. In genere è meglio utilizzare una dimensione onRoot() o almeno una finestra. (I62db4)

  • La superficie ora può avere più layout secondari. (I66a92, b/144488459)

  • invalidate e composizioneReference() sono ora deprecate in favore rispettivamente di currentRecomposeScope e ricomponinciavoce. (I583a8)

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

  • Le opzioni Duration e Uptime verranno sostituite con Long millisecondi e questo passaggio rimuove la dipendenza dell'input del puntatore su queste classi. (Ia33b2, b/175142755, b/177420019)

  • L'elemento animatoFloat.fling che accetta FlingConfig è stato rimosso. Usa invece sospendere Animatable.animateDecay. (I4659b, b/177457083)

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

  • L'easing è stato cambiato in un'interfaccia funzionale (Ib14e5)

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

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

  • Rimossi metodi sperimentali monotonicFrameAnimationClockOf (Ib753f, b/170708374)

  • metodi di coordinate globali ritirati e nuovi metodi di coordinate basati su finestre. (Iee284)

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

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

  • SemanticsPropertyReceiver.hidden è stato rinominato in invisibleToUser e contrassegnato come @ExperimentalComposeUiApi. AccessibilityRangeInfo è stato rinominato ProgressBarRangeInfo. stateDescriptionRange è stato rinominato in progressBarRangeInfo. AccessibilityScorriState è stato rinominata ScorriAxisRange. HorizontalAccessibilityscrollState è stato rinominato HorizontalscrollAxisRange.verticalAccessibilityscrollState è rinominata verticalscrollAxisRange. (ID3148)

  • Utilizzare TestCoroutineDispatcher per i test (I532b6)

  • È stata aggiornata l'API Vector Graphics per supportare l'analisi della colorazione applicata alla radice della grafica vettoriale. (Id9d53, b/177210509)

Versione 1.0.0-alpha10

13 gennaio 2021

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

Modifiche alle API

  • ha modificato la velocità per avere componenti e operazioni matematiche. (Ib0447)
  • Il valore @ExperimentalTesting è stato rinominato in @ExperimentalTestApi per essere coerente con annotazioni API sperimentali simili (Ia4502, b/171464963)
  • Il nome della posizione è stato cambiato in DpOffset e è stato rimosso il metodo getDistance() (Ib2dfd)
  • Ranamed Color.useOrElse() a Color.takeOrElse() (Ifdcf5)
  • Aggiungi il pulsante di attivazione/disattivazione alle stringhe di base.kt (I4a5b7, b/172366489)
  • FlowRow e FlowColumn sono stati deprecati. Utilizza un layout personalizzato. (I09027)
  • Modifier.focus() e Modifier.focusRequester() sono deprecati. Usa invece Modifier.focusModifier() e Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
  • Spostato nativeClass in un modulo UI e rendendolo interno. Sono stati aggiornati gli utilizzi di nativeClass in equazioni in cui viene utilizzato "is MyClass". (I4f734)

Correzioni di bug

  • Aggiunto il supporto per i campi di testo disattivati e di sola lettura (I35279, b/171040474, b/166478534)
  • animate() è ora sostituito con animateAsState(), che restituisce State<T> anziché T. Ciò consente prestazioni migliori, poiché l'ambito di invalidazione può essere ristretto al punto in cui viene letto il valore State. (Ib179e)
  • Aggiungi l'API Ruolo Semantics e aggiungi Ruolo come parametro a SemanticsModifier cliccabile, selezionabile e attivabile. È stato modificato Modifier.progressSemantics in modo che sia utilizzabile anche dal dispositivo di scorrimento. (I216cd)

Versione 1.0.0-alpha09

16 dicembre 2020

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

Modifiche alle API

  • è stata aggiunta un'API per attivare manualmente l'animazione di assestamento e trascinare in Modifier.svisibleable (Iaa17a, b/162408885)
  • Rinominato oggetti *Constants, come ButtonConstants, che finiscono invece con i valori predefiniti, ad esempio ButtonDefaults. Rimuove anche i prefissi default non necessari dalle proprietà in questi nuovi oggetti. (Ibb915, b/159982740)
  • Compose supporta i getter di proprietà che possono effettuare chiamate componibili. Il supporto di questa funzionalità non verrà eliminato, ma la sintassi per dichiarare una proprietà getter come @Composable cambierà.

    La sintassi ormai deprecata per farlo era l'annotazione della proprietà stessa:

        @Composable val someProperty: Int get() = ...
    

    La sintassi ora corretta per eseguire questa operazione è annotare il getter della proprietà:

       val someProperty: Int @Composable get() = ...
    

    Entrambe le sintassi funzioneranno per un certo periodo di tempo, ma la sintassi precedentemente ritirata diventerà un errore di compilazione. (ID9197)

  • È stata aggiunta la libreria androidx.compose.material:material-ripple contenente le API Ripple per consentire la creazione di componenti interattivi senza bisogno del resto della libreria Material. ricordaRippleIndication è stata deprecata e sostituita con retrieveRipple. (Ibdf11).

Correzioni di bug

  • Le funzioni 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 lento un'istanza Shader quando sono disponibili informazioni sulle dimensioni dell'ambiente di disegno. Ciò è utile per definire i gradienti che occupano tutti i limiti di disegno di un componibile al momento della composizione, senza dover implementare implementazioni di DrawModifier personalizzate.

    API del costruttore di funzioni gradiente deprecate in favore di metodi fabbriche su un oggetto Gradient. (I511fc, b/173066799)

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

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

  • Dp.VectorConverter, Position.VectorConverter ecc. spostati in animation-core e deprecati i vecchi VectorConveters (If0c4b)

  • L'API Compilazione automatica è ora sperimentale e richiede l'attivazione (I0a1ec)

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

  • L'accessibilitàLabel è stata rinominata in contentDescription. accessibilityValue è stato rinominato stateDescription. (I250f2)

  • Nuova funzione infiniteRipetibile per la creazione di una InfiniteRipetiableSpec (I668e5)

  • Il comportamento di posizionamento dei menu a discesa è stato leggermente modificato in base alle specifiche del materiale (I34c72, b/168594123).

  • È stato aggiunto il supporto InteractionState per TextFields. (I61d91)

  • È stato aggiunto Modifier.clearAndSetSemantics per cancellare la semantica dei discendenti e impostarne di nuove. (I277ca)

  • Spostamento di ContentDrawScope nel modulo ui-graphics in DrawScope. (Iee043, b/173832789)

Versione 1.0.0-alpha08

2 dicembre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha08 contiene questi commit.

Modifiche alle API

  • MaterialTheme ora imposta i colori corretti per i punti di manipolazione di selezione e lo sfondo della selezione. Le app non Material possono utilizzare manualmente AmbientTextSelectionColors per personalizzare i colori utilizzati per la selezione. (I1e6f4, b/139320372, b/139320907)
  • È stato aggiunto il controllo del lint per la denominazione e la posizione dei parametri lambda componibili al fine di verificare la coerenza con le linee guida di Compose. Inoltre, è stata eseguita la migrazione di alcune API utilizzando children come nome per il lambda finale in content, in base al controllo del lint e alle indicazioni. (Iec48e)
  • VectorAsset rinominato in ImageVector Spostato e rinominato VectorAsset in Builder per essere una classe interna di ImageVector in base alle linee guida del consiglio delle API. È stato aggiunto typealias di VectorAssetBuilder per il collegamento a ImageVector.Builder per compat. (Icfdc8)
  • ImageAsset e i metodi correlati sono stati rinominati ImageBitmap. (Ia2d99)
  • Proprietà semantiche di base spostate nella UI (I6f05c)
  • fun RippleIndication() è stato deprecato e sostituito con rememberRippleIndication() per coerenza con altre API. (Id8e2c)
  • È stato aggiunto un parametro singeLine a BasicTextField, TextField e OutliningTextField. Imposta questo parametro su true per rendere il campo di testo un'unica riga scorrevole orizzontalmente. (I57004, b/168187755)

Correzioni di bug

  • Aggiungi l'azione semantica Ignora (I2b706)
  • Le API DrawModifier sono state spostate dal pacchetto androidx.compose.ui al pacchetto androidx.compose.ui.draw. È stato creato il file DrawModifierDetroit.kt per includere i metodi typealiases/helper per facilitare la migrazione dalle API deprecate alle API attuali. (Id6044, b/173834241)
  • Modifier.drawlayer rinominata in Modifier.graphicslayer Ha aggiornato anche le classi correlate in Graphicslayer in base al feedback dell'API. (I0bd29, b/173834241)
  • <T> è stato rimosso dalla dichiarazione SubcomposeLayout. Ora puoi utilizzarlo senza specificare un tipo. (Ib60c8)
  • Aggiunta 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 di Box è stato rinominato in contentAllineament. (I2c957).
  • I modificatori offsetPx sono stati rinominati in offset. Prende i parametri lambda anziché i parametri State. (Ic3021, b/173594846)
  • Sono state introdotte le API SweepGradientShader e SweepGradientBrush. (Ia22c1).
  • È stato aggiunto il controllo dei lint per i parametri di modifica nelle funzioni componibili. Questo controllo del lint verifica la coerenza con le linee guida di Compose per nome, tipo restituito, valore predefinito e ordine del parametro. (If493b)
  • API TextFieldValue aggiornata
    • impostato TextFieldValue.composition in sola lettura
    • viene generata un'eccezione rimossa per l'intervallo di selezione non valido (I4a675, b/172239032)
  • È stato aggiunto un nuovo sovraccarico di Modifier.drawLayer(). Occorre un blocco lambda in un nuovo GraphicslayerScope in cui definisci i parametri del livello in modo da saltare la ricomposizione e il relayout quando si verifica il cambiamento di stato. DrawlayerModifier è ora interno in preparazione alla migrazione della sua logica al metodo placeable.placeWithLayer() di LayoutModifier (I15e9f, b/173030831)
  • Ambienti deprecati denominati con Ambient come suffisso e sostituiti con nuove proprietà con prefisso Ambient, conformi alle altre linee guida dell'API Ambient e Compose. (I33440)
  • È stato aggiunto il controllo lint per verificare che le fabbriche di modifica utilizzino androidx.compose.ui.composed {} internamente anziché essere contrassegnato come @Composable. (I3c4bc).
  • L'argomento semanticoMergeAllDescendants è stato rinominato mergeDescendants. (Ib6250)
  • Il controllo del tempo nei test (TestAnimationClock e relativi utilizzi) è ora in fase sperimentale (I6ef86, b/171378521)
  • Rimuovi il vecchio modulo di test dell'ui e i relativi stub (I3a7cb)
  • TextUnit.Inherit è rinominata TextUnit.Unspecified per coerenza con altre unità. (Ifce19)
  • L'interfaccia di Allineamento è stata aggiornata e resa funzionale. (I46a07, b/172311734)
  • id è stato rinominato in layoutId per LayoutIdParentData. Misurabile.id è stato rinominato in Misurabile.layoutId. (Iadbcb, b/172449643)

Versione 1.0.0-alpha07

11 novembre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha07 contiene questi commit.

Modifiche alle API

  • Emphasis è stato deprecato e sostituito con AmbientContentAlpha. AmbientContentAlpha è un'astrazione più semplice che rappresenta l'alfa dei contenuti preferiti per parte della gerarchia, in modo simile al modo in cui AmbientContentColor rappresenta il colore dei contenuti preferito. Testo e Icona ora consumano il valore corrente di AmbientContentAlpha per impostazione predefinita ed è possibile eseguire manualmente color.copy(alpha = AmbientContentAlpha.current) per ottenere lo stesso effetto nei componenti. Invece di utilizzare ProvideEmphasis, puoi fornire direttamente un valore tramite AmbientContentAlpha e utilizzare i nuovi livelli predefiniti in ContentAlpha per sostituire i vecchi EmphasisLevels. (Idf03e, b/159017896)
  • Aggiunge androidx.compose.material.AmbientContentColor per sostituire androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
  • Aggiunge androidx.compose.material.Text per sostituire androidx.compose.foundation.Text come componente di testo di alto livello con tema. Per un componente di testo di base che non consuma il colore / lo stile del testo del tema, utilizza BasicText. (Ie6ae0).
  • MaxLines aggiunti ai campi di testo (Ib2a5b)
  • Aggiorna i campi di testo per accettare KeyboardOptions (Ida7f3)
  • Per il calcolo degli overlay di elevazione, la superficie ora utilizza l'elevazione assoluta (totale), pertanto una superficie nidificata in un'altra superficie 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 deprecati. Utilizza invece le nuove versioni disponibili nella libreria Material. Per le applicazioni non Material, devi invece creare un tuo sistema di progettazione specifico per la tematizzazione, che possono essere utilizzati nei tuoi componenti. (I74acc, b/172067770)
  • Foundation.Text è stato deprecato e sostituito con material.Text. Per un'API di testo di base non definita che non utilizza valori di un tema, vedi androidx.compose.foundation.BasicText. (If64cb)
  • Rinomina KeyboardOptions come ImeOptions (I82f36)
  • KeyboardType e ImeAction spostate in KeyboardOptions (I910ce)
  • Il campo BaseTextField è stato deprecato. Utilizza invece BasicTextField. (I896eb)
  • L'annotazione ExperimentalSubcomposeLayoutApi è stata rimossa. Ora è possibile utilizzare SubcomposeLayout senza aggiungere @OptIn (I708ad)
  • FirstBaseline e LastBaseline sono stati spostati nel pacchetto androidx.compose.ui.layout (Ied2e7)
  • È stata aggiornata l'API Icona per acquisire il colore.Non specificato come possibile colore di tinta che disegna l'asset o il pittore fornito senza un filtro del colore. Tenta in precedenza di ignorare la colorazione con Colore.Un valore non specificato avrebbe un colore trasparente che finirebbe per non essere visualizzato affatto. (I049e2, b/171624632)
  • relativePaddingFrom è stato rinominato paddingFrom. È stato aggiunto il modificatore paddingFromBaseline per specificare le distanze dai limiti di layout alle basi del testo. (I0440a, b/170633813)
  • LaunchedTask è stato rinominato in LaunchedEffect per essere coerente con le API SideEffect e DisposableEffect. LanciatoEffetto senza parametri soggetto non è consentito per incoraggiare le best practice. (Ifd3d4).
  • MeasureResult è stato spostato fuori da MeasureScope. (Ibf96d, b/171184002)
  • Diversi simboli relativi al layout sono stati spostati da androidx.compose.ui ad androidx.compose.layout.ui. (I0fa98, b/170475424)

Versione 1.0.0-alpha06

28 ottobre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche alle API

  • L'elemento androidx.compose.foundation.Icon è stato spostato in androidx.compose.material.Icon. Se non desideri utilizzare la libreria Material, puoi anche utilizzare il componente Immagine / Modifier.paint() con un Painter. (I9f622)
  • 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 uno switch in diversi stati. Vedi 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. Controlla le funzioni predefinite in ButtonConstants per personalizzare questi parametri. (Ic5b7b).
  • Aggiunge l'interfaccia RadioButtonColors per rappresentare i colori utilizzati da un parametro RadioButton in diversi stati. Vedi RadioButtonConstants.defaultColors() per personalizzare i colori utilizzati in diversi stati. (I74130)
  • Aggiunge l'interfaccia CheckboxColors per rappresentare i colori utilizzati da una casella di controllo in diversi stati. Vedi CheckboxConstants.defaultColors() per personalizzare i colori utilizzati in diversi stati. (I7dbdb)

Correzioni di bug

  • I componenti del materiale non impostano più l'elevazione come zIndex. Ciò significa che all'interno dello stesso file principale il file secondario con ombra maggiore non verrà disegnato automaticamente sopra il file secondario con quello più piccolo. Se hai comunque bisogno di un comportamento di questo tipo, imposta manualmente Modifier.zIndex() dove necessario (I70417, b/170623932)
  • Ritira VectorPainter in favore di ricordoVectorPainter per indicare meglio che l'API componibile internamente si serve di "ricordare" di rendere persistenti i dati tra le composizioni. (Ifda43).
  • Abilita le transizioni in ComposeTestRule; rimuovi l'opzione per abilitare il cursore lampeggiante da ComposeTestRule. (If0de3).
  • Aggiunta l'opzione della tastiera a riga singola a CoreTextField (I72e6d)
  • L'API Radius è stata rinominata CornerRadius per esprimere meglio il modo in cui viene utilizzata in Compose. La documentazione è stata aggiornata per indicare che i raggi d'angolo negativi sono bloccati su zero. (I130c7, b/168762961)
  • Refactoring di DrawScope e ContentDrawScope con interfacce anziché classi astratte
    • È stata creata un'implementazione di CanvasDrawScope di DrawScope
    • È stato eseguito il refactoring delle implementazioni di DrawScope per utilizzare CanvasScope
    • È stato creato DrawContext per aggregare le dipendenze per DrawScope
    • Metodi deprecati rimossi da DrawScope (I56f5e)
  • Box è stato trasformato in una funzione in linea. (Ibce0c, b/155056091)

Versione 1.0.0-alpha05

14 ottobre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha05 contiene questi commit.

Modifiche alle API

  • Ora i popup e le finestre di dialogo ereditano FLAG_SECURE dalla finestra principale. È stata aggiunta anche l'opzione per configurarla esplicitamente (I64966, b/143778148, b/143778149)
  • Per impostazione predefinita, Modifier.svisibleable ora ha soglie di 56.dp per gli stati (Iab825, b/168610267)
  • tutti gli stati dello scaffold contrassegnati come @Stable. sketch resiEnabled in ScaffoldState sono stati spostati nello stesso Scaffold. (I36645, b/168297016)
  • Rimuove il tipo di valore null dai parametri lambda Scaffold. Puoi utilizzare emptyContent() per rappresentare nessun contenuto per un determinato parametro. (I2b318, b/157633857, b/158551084)
  • Ritira le API contentColor() e currentTextStyle() e le sostituisce rispettivamente con gli ambienti AmbientContentColor e AmbientTextStyle. Puoi accedere al valore corrente utilizzando .current nella proprietà Ambient, come in qualsiasi altro ambiente. Questa modifica è stata apportata per garantire la coerenza e evitare di avere più modi per ottenere lo stesso risultato. Inoltre, rinomina alcune proprietà Ambient per descriverne meglio lo scopo come segue:

    • ContentColorAmbient -> AmbientContentColor
    • StileTestoAmbiente -> StileTesto
    • IndicationAmbient -> Indicazione ambientale
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • Aggiunge AmbientElevationOverlay, consentendo di personalizzare / disattivare l'overlay di elevazione predefinito applicato alle superfici con tema scuro. (I5b74d).

Correzioni di bug

  • Nell'ambito della standardizzazione dei valori sentinel per le classi in linea, rinomina Color.Unset in Color.Unspecified per coerenza con altre classi in linea (I97611, b/169797763)
  • Viene introdotto TextOverflow.None. Quando l'overflow è impostato su None, il testo non gestirà più l'overflow e segnalerà le loro dimensioni effettive a LayoutNode. (I175c9, b/158830170)
  • lancioInComposizione rinominata in LaunchedTask per rispettare le linee guida dell'API Compose (I99a8e)
  • Il nuovo nome di OnPositionedModifier è OnGloballyPositionedModifier e onPositioned() di onGloballyPositioned(). (I587e8, b/169083903)

Versione 1.0.0-alpha04

1° ottobre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche alle API

  • Espone i parametri InteractionState nei componenti Material stateful per consentire il sollevamento dello stato e la lettura / il controllo dello stato. (Iaca5f, b/168025711, b/167164434)
  • Modifica i parametri *color in RadioButton e TriStateCheckbox per consentire la personalizzazione completa dei colori utilizzati in ogni stato, nonché per modificare il modo in cui i colori si animano tra gli stati, se lo desideri. Per ulteriori informazioni, vedi le nuove funzioni colore animateDefault* in CheckboxConstants e RadioButtonConstants. (I1c532).
  • È stato rinominato keepBackdropState per ricordareBackdropScaffoldState e ha aggiunto un ulteriore parametro per l'orologio dell'animazione. Il parametro backdropScaffoldState di BackdropScaffold è stato rinominato solo scaffoldState. Il nome BackdropConstants è stato rinominato BackdropScaffoldConstants. (Ib644d)
  • È stato aggiunto il componente sperimentale BottomSheetScaffold. (Ie02f0, b/148996320)
  • È stato aggiunto il componente sperimentale ModalBottomSheetLayout. (Ic209e, b/148996320)
  • Consente di rinominare ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation a defaultElevation e ora restituisce un valore Dp anziché un AnimatedValue. (I5f3ed).

Correzioni di bug

  • Sono state aggiornate molte API grafiche
    • Sono state aggiornate le API di trasformazione della scala e della rotazione per utilizzare un singolo parametro Offset per rappresentare la coordinata pivot invece di parametri in virgola mobile separati per le coordinate x/y in DrawScope e DrawTransform
    • Sono stati rimossi i metodi Rect.expandToInclude e Rect.join
    • È stata aggiornata la documentazione relativa a Raggio, ovale,
    • È stata aggiunta la documentazione per indicare che il costruttore pubblico per la classe Radius in linea non deve essere chiamato direttamente, ma è necessario creare un'istanza degli oggetti raggio tramite i loro costruttori di funzione
    • Rimosse le API RoundRect per eseguire query in topRight, bottomRight, bottomCenter e così via.
    • Rect.shift obsoleto in favore di Rect.translate
    • Rimosse le API RoundRect.grow e Rect.shrink
    • RoundRect.outerRect rinominato in Rect.boundingRect
    • Rimossi i metodi RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium
    • RoundRect.longestSide è stato rinominato RoundRect.maxDimensione
    • RoundRect.shortestSide è stato rinominato RoundRect.minDimensione
    • RoundRect.center modificato in una proprietà anziché in una funzione
    • Aggiornato il costruttore RoundRect per usare le proprietà Raggio, anziché i singoli parametri,
    • Rimosse le API per le dimensioni che supponevano che si trattasse di un rettangolo con origine pari a 0,0
    • Aggiunta di un'API di distruzione a Radius
    • Ha eseguito la migrazione di varie funzioni dell'estensione RoundRect in proprietà
    • (I8f5c7, b/168762961)
  • Foundation.Box è stato deprecato. Usa il metodo ground.layout.Box. (Ie5950, b/167680279)
  • Stack è stato rinominato Box. Il formato Box esistente in precedenza verrà ritirato e sostituito con il nuovo Box all'indirizzo composizione.foundation.layout. Il comportamento del nuovo riquadro consiste nell'impilare gli elementi secondari uno sopra l'altro quando sono presenti più elementi secondari. È diverso dal riquadro precedente, che aveva un comportamento simile a quello di una colonna. (I94893, b/167680279)
  • I parametri per la decorazione della casella sono stati ritirati. Se vuoi aggiungere decorazioni/spaziature sulla scatola, usa i Modifiers (Modifier.background, Modifier.edge, Modifier.padding) (Ibae92, b/167680279).
  • Sono state aggiornate molte API grafiche
    • Aggiornate le API DrawScope con metodi di trasformazione con ambito per indicare che la trasformazione viene applicata solo all'interno del callback e rimossa dopo il richiamo del callback
    • È stata aggiornata la documentazione di clipPath per fare riferimento a Percorso
    • Spaziatura fissa nella documentazione per il parametro destro in clipPath
    • È stato rinominato DrawScope.drawCanvas in drawIntoCanvas e parametro di dimensione rimosso
    • I parametri dx/dy sono stati rinominati in orizzontale e verticale
    • Sovraccarico inset aggiunto che fornisce lo stesso valore inset a tutti e 4 i limiti
    • È stata rimossa la documentazione relativa al metodo del riquadro che indica che il riquadro
    • Documentazione aggiornata per la classe Rect
    • Aggiornamento dei commenti sui parametri Rect per corrispondere allo stile Kdoc
    • Rect.join e Rect.expandToInclude rimossi
    • È stato creato un sovraccarico per Rect.translate(offset) e Rect.shift deprecato
    • (If086a, b/167737376)
  • Abbiamo impedito le importazioni statiche dei contenuti degli ambiti di layout (ad es.alignWithSiblings in RowScope). Al suo posto, è necessario utilizzare l'alternativa relativa all'ambito esplicito: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)

Versione 1.0.0-alpha03

16 settembre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Rinomina il parametro onSelect di BottomNavigationItem in onClick (I91925, b/161809324)
  • Aggiunge il parametro InteractionState a BottomNavigatorItem e Tab, consentendo di sollevare questo stato e regolare l'aspetto del componente in diversi stati. (Ia3e9e, b/168025711)
  • Rimuove i parametri disabledBackgroundColor e disabledContentColor dai pulsanti. Devi invece utilizzare le nuove funzioni di colore predefinite all'interno di ButtonConstants. Se stai già impostando esplicitamente contentColor / backgroundColor, devi invece utilizzare queste funzioni predefinite e personalizzare alcuni o tutti i parametri per evitare di sovrascrivere il colore per entrambi gli stati attivati/disattivati. (If9b52).
  • Il colore di sfondo del campo di testo non applica più in modo implicito la trasparenza alpha. Verrà invece applicato direttamente qualsiasi colore fornito tramite il parametro backgroundColor. (Iecee9, b/167951441)
  • InnerPadding è stato rinominato PaddingValues. (I195f1, b/167389171)
  • I parametri resistanceFactorAtMin e resistanceFactorAtMax in Modifier.swipeable sono stati sostituiti con un singolo parametro di resistenza. Un nuovo metodo defaultResistanceConfig è stato aggiunto in SwipeableConstants. (I54238)
  • Aggiunge un supporto animato per l'elevazione stateful per Button e FloatingActionButton. L'elevazione ora si anima tra stato predefinito e stato premuto. Per personalizzare l'elevazione tra 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 OutliningTextField (I267f6, b/162234081)

Correzioni di bug

  • Le funzioni di test globali come onNode o waitForIdle sono ora deprecate. Esegui la migrazione alle nuove controparti definite in ComposeTestRule (I7f45a)
  • I DpConstraints e le API che lo utilizzano sono stati deprecati. (I90cdb, b/167389835)
  • I parametri minwidth e maxwidth di widthIn sono stati rinominati in min e max. Allo stesso modo per preferredLarghezzaIn, altezzaIn e preferredHeightIn. (I0e5e1, b/167389544)
  • Rimuovi le azioni semantiche di scorrimento avanti/indietro. Passaggi aggiunti in AccessibilityRangeInfo. (Ia47b0)
  • Gli utilizzi della gravità sono stati rinominati in modo coerente in allineamento o allineamento nelle API di layout. (I2421a, b/164077038)
  • Aggiunti onNode e altri metodi globali su ComposeTestRule, quelli globali attuali saranno deprecati. (IEae 36).
  • createAndroidComposeRule e AndroidInputDispatcher spostati da androidx.ui.test.android a androidx.ui.test (Idef08, b/164060572)

Versione 1.0.0-alpha02

2 settembre 2020

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stato aggiunto un componente sperimentale BackdropScaffold. (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

Vengono rilasciate le funzionalità 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. La versione 1.0.0-alpha01 contiene questi commit.

Problema noto

= Il primo carattere in un materiale TextField non può essere rimosso usando un backspace (b/165956313)

Versione 0.1.0-dev

Versione 0.1.0-dev17

19 agosto 2020

Vengono rilasciate le funzionalità 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. La versione 0.1.0-dev17 contiene questi commit.

Modifiche alle API

  • I valori RadioGroup e RadioGroupItems precedentemente deprecati sono stati rimossi. Utilizza invece Row e RadioBotton (I381b7, b/163806637)
  • Rimosse le richiamate onFocusChanged da TextField. Usa invece Modifier.focusObserver. (I51089, b/161297615)
  • Modifier.drawBorder è stato ritirato. Usa invece Modifier.border. La classe dei dati confine è stata sostituita da BorderStroke (I4257d, b/158160576)
  • Sono state rinominate alcune proprietà in SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direzione. È stata aggiunta una funzione keepScorriableState per creare swipeableStates. (I2fc9c, b/163129614, b/163132293)
  • È stato aggiunto il supporto per lo snackbar con il posizionamento e la coda corretta. Puoi accedervi tramite la funzione di sospensione di SnackbarHostState.showSnackbar. Inoltre:
    • I componenti SnackbarHost sono stati aggiunti. Ospita snack bar in base allo stato ed è responsabile del passaggio da uno snackbar all'altro.
    • SnackbarHostState è stato aggiunto per consentire il controllo di snackbar e host di snackbar e di disaccoppiarlo da ScaffoldState. Puoi accedere a questo stato anche tramite scaffoldState.snackbarHostState.
    • È stato aggiunto il sovraccarico dello snackbar per supportare l'interfaccia comune tra snackbarHostState e le snackbar stesse. (I79aaa)
  • Aggiunge il parametro attivato a IconButton e riordina i parametri in IconToggleButton (I0a941, b/161809385, b/161807956)
  • La versione ListItem con l'API basata su stringhe è stata rimossa. Utilizza invece la versione slot. (Ib8f57, b/161804681)
  • Rimosso il componente FilledTextField obsoleto. Utilizza TextField invece per ottenere l'implementazione di Material Design del campo Testo compilato. (I5e889).
  • AlertDialog ora utilizza FlowRow per i pulsanti (I00ec1, b/161809319, b/143682374)
  • Sono stati aggiunti parametri in Modifier.svisibleable per modificare il livello di resistenza quando scorri oltre i limiti. [min/max]Parametri valore rimossi. (I93d98)
  • È stato aggiunto il parametro backgroundColor a LinearProgressIndicator e è stata rimossa la spaziatura interna interna da CircularProgressIndicator. Aggiunto un nuovo elemento ProgressIndicatorConstants.DefaultProgressAnimationSpec che può essere utilizzato come AnimationSpec predefinito quando si anima l'avanzamento tra i valori (If38b5, b/161809914, b/161804677)
  • Parametro facoltativo velocityThreshold aggiunto a Modifier.svisibleable. (I698ba)
  • bottomBarSize, fabSize e altri e non sono più disponibili in ScaffoldState. Utilizza Modifier.onPosition invece del componente di cui vuoi conoscere le dimensioni. contentColor e Modifier pamateres sono stati aggiunti a Scaffold (Ic6f7b, b/161811485, b/157174382)
  • Rinomina e riordina alcuni parametri in Tab per coerenza con altre API (Ia2d12, b/161807532)
  • Suddivide TabRow in TabRow e ScorribileTabRow, rimuovendo isscrollable da TabRow. Espone anche edgePadding in ScorribileTabRow, che consente di controllare lo spazio libero prima / dopo le schede. (I583e8, b/161809544)
  • L'oggetto TabRow è stato rimosso e lo ha sostituito con TabConstants. TabRow.TabPosition è stato spostato al livello superiore (TabPosition) ed esterneContainer è stato rinominato in indicator. Consulta gli esempi e la documentazione per informazioni dettagliate su come utilizzare l'API aggiornata e le impostazioni predefinite. (I54d45, b/161809544)
  • Il parametro delle soglie in Modifier.s personalizzata è stato modificato. Ora prende una coppia di stati (di tipo T) e restituisce la soglia tra di essi sotto forma di ThresholdConfig. Un parametro Ignora soglie è stato aggiunto a ScorriToDi ignorare, che è un lambda (SkipDirection) -> ThresholdConfig. (Ie1080)
  • Il cursore ha più colori per una personalizzazione granulare (I73e64, b/161810475)
  • Il parametro colore della carta è stato rinominato backgroundColor (I01fc1, b/161809546)
  • Snackbar dispone ora di colori di sfondo e dei contenuti personalizzabili (I238f2, b/161804381)
  • I parametri di personalizzazione di modificatore, backgroundColor, contentColor e scrimColor sono stati aggiunti ai Drawers (I23655, b/161804378)
  • Il componibile state { ... } è ora deprecato in favore delle chiamate esplicite a remember { mutableStateOf(...) } per maggiore chiarezza. Questo riduce la superficie generale dell'API e il numero di concetti per la gestione dello stato e corrisponde al pattern by mutableStateOf() per la delega delle proprietà delle classi. (Ia5727)
  • Il parametro di spaziatura interna del pulsante è stato rinominato contentPadding (Id252e, b/161809394)
  • Aggiungi un componente sperimentale del materiale ScorriPerIgnora. (I129e5)

Correzioni di bug

  • onChildPositioned e OnChildPositionedModifier rimossi. Gli sviluppatori dovrebbero usare invece onPositioned e OnPositionedModifier nel layout secondario. (I4522e, b/162109766)
  • È stato aggiunto il criterio diMergePolicy lambda a SemanticsPropertyKey. Può essere utilizzato per definire una norma personalizzata per l'unione della semantica MergeAllDescendants. Il criterio predefinito prevede l'utilizzo del valore padre, se già presente, in caso contrario il valore figlio. (Iaf6c4, b/161979921)
  • IntSize ora è una classe in linea (I2bf42)
  • PlacementScope.placeAbsolute() è stato rinominato in PlacementScope.place() e la PlacementScope.place() precedente è stata rinominata PlacementScope.placeRelative(). Di conseguenza, il metodo PlacementScope.place() non rispecchierà più automaticamente la posizione in contesti con scrittura da destra a sinistra. Se vuoi, puoi usare il criterio PlacementScope.placeRelative(). (I873ac, b/162916675)
  • PxBounds obsoleti in favore di Rect. Sono stati aggiornati tutti gli utilizzi di PxBounds con rect e aggiunti correttamente il ritiro/la sostituzione con annotazioni per facilitare la migrazione. (I37038, b/162627058)
  • Ridenominazione di RRect in RoundRect per adattarsi meglio ai pattern di denominazione per la scrittura Creazione di costruttori di funzioni simili a RRect e costruttori di funzioni RRect deprecati (I5d325)

Versione 0.1.0-dev16

5 agosto 2020

Vengono rilasciate le funzionalità 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. La versione 0.1.0-dev16 contiene questi commit.

Modifiche alle API

  • Colors è ora una classe finale anziché un'interfaccia. Invece di estendere e fornire un'implementazione personalizzata, devi creare un nuovo Ambient per l'oggetto con tema personalizzato e accedervi tramite il nuovo Ambient nei tuoi componenti, in modo simile al funzionamento interno di MaterialTheme. (Ibae84)
  • ColorPalette è stata rinominata in Colors (Colori), per meglio mapparla al sistema di colori Material e creare confusione perché ColorPalette è un oggetto di tematizzazione "generico", invece di essere un'implementazione specifica del sistema di colori Material. Inoltre, lightColorPalette e darkColorPalette vengono rinominati rispettivamente in lightColors e darkColors. (I9e976, b/161812111)
  • Rinomina il parametro text di BottomNavigatorItem in label, onSelected in onSelect, activeColor in selectedContentColor e inactiveColor in unselectedContentColor e aggiorna l'ordine dei parametri in modo che corrisponda alle linee guida. (Icb605, b/161809324)
  • Il file Modifier.stateDraggable è stato completamente rielaborato e rinominato in Modifier.svisible. È stata introdotta una nuova classe SwipeableState e è stato eseguito il refactoring della classe BottomDrawerState per ereditarla. [Modal/Bottom]DrawerLayout non accetta più il parametro onStateChange. (I72332, b/148023068)
  • Il pacchetto Fundamentals.shape.corner è stato appiattito a Foundation.share (I46491, b/161887429)
  • È stata aggiunta l'annotazione ExperimentalMaterialApi. RippleTheme contrassegnato come sperimentale (Ic5fa0, b/161784800)
  • Material FilledTextField è stato rinominato TextField e TextField di base è stato rinominato BaseTextField per semplificare l'individuazione e l'utilizzo dell'API desiderata più semplice (Ia6242, b/155482676)

Correzioni di bug

  • Il valore OnChildPositioned è stato ritirato. Usa invece OnPositioned sul file secondario. (I87f95, b/162109766)
  • Risolvi le correzioni API generiche (I077bc)
    1. Rimuovi l'interfaccia OffsetBase inutilizzata
    2. Allinea le classi Offset e IntOffset per avere una superficie API coerente
    3. IntOffset.Origin si chiama IntOffset.Zero per coerenza con l'API Offset
    4. Il metodo nativeCanvas è stato spostato dall'interfaccia di Canvas per consentire ai consumatori di creare le proprie istanze Canvas
    5. È stata creata la classe stub EmptyCanvas per eseguire il refactoring DrawScope in modo che sia un parametro non null al posto di lateinit e garantire la non-nullability del campo
    6. Le enumerazioni ClipOp sono state rinominate in Pascal Case
    7. Le enum di FiltroQualità sono state rinominate in richiesta Pascal
    8. Le enumerazioni StrokeJoin sono state rinominate in richiesta Pascal
    9. Le enumerazioni PointMode sono state rinominate in caso Pascal
    10. Le enumerazioni PaintingStyle rinominate in Pascal Case
    11. Le enum PathFillType sono state rinominate in maiuscole e minuscole
    12. Le enumerazioni StrokeCap sono state rinominate in caso Pascal
    13. Aggiornata l'implementazione di DrawCache per non usare più i parametri lateinit
    14. Aggiornamento di DrawScope per non usare più la delega lazy per i parametri interni FillPaint e RunningPaint
    15. Aggiornamento componibile dell'immagine per evitare l'uso di Box con meno overhead
    16. Aggiornata la classe Outline per avere annotazioni @Immutable
    17. Aggiornato PathNode per avere annotazioni @Immutable per ogni istruzione del percorso
    18. Sottocomposizione vettoriale aggiornata per rimuovere i controlli condizionali ridondanti per l'uguaglianza, in quanto li gestisce già la scrittura
    19. Metodi costruttori companion rect deprecati a favore dei costruttori di funzioni
    20. Classi e costruttori di funzioni Brush aggiornati con le API @Immutable e @Stable
    21. Enum VertexMode aggiornato in PascalCase
    22. Aggiornato il metodo selectPaint DrawScope per sovrascrivere condizionalmente i parametri del tratto sul disegno se sono stati modificati
    23. Sono state aggiornate le dimensioni per aggiungere l'API di destrutturazione, rinomina UnspecifiedSize in Unspecified e i metodi inutilizzati rimossi
  • Sposta la finestra di dialogo nell'interfaccia utente (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture rimosso. Usa invece SemanticsNodeInteraction.performGesture. (ID9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() è stato rinominato in SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • Le API per il supporto da destra a sinistra sono state aggiornate. È stato aggiunto LayoutDirectionAmbient, che può essere utilizzato per leggere e modificare la direzione del layout. Modifier.rtl e Modifier.ltr sono stati rimossi. (I080b3)
  • Modifier.deternimateProgress è stato rinominato Modifier.progressSemantics (I9c0b4)
  • Aggiorna le icone material-estese con le icone più recenti aggiunte a Material.io/icon (I4b1d3)
  • Richiede che il tipo T sia specificato esplicitamente per transactionDefinition. (I1aded)
  • Modifier.plus è stato ritirato. Usa Modifier.then al suo posto. "Quindi" ha un segnale di ordinamento più forte, ma vieta anche di digitare Modifier.padding().background() + anotherModifier, il che spezza la catena e rende più difficile la lettura (Iedd58, b/161529964)
  • È stato rinominato AndroidComposeTestRule per creareAndroidComposeRule. (I70aaf)
  • Aggiungi isFocused() e isNotFocused() SemanticsMatcher. (I0b760).
  • È stato rimosso il valore BaseGestureScope.globalBounds, che non deve essere utilizzato dai test. Usa invece le coordinate locali del nodo con cui stai interagendo. (Ie9b08)
  • È stata corretta la posizione dei popup sui display ritagliati. (Idd7dd)
  • Modifier.drawBackground è stato rinominato in Modifier.background (I13677)

Versione 0.1.0-dev15

22 luglio 2020

Vengono rilasciate le funzionalità 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. La versione 0.1.0-dev15 contiene questi commit.

Aggiornamento delle dipendenze

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

Modifiche alle API

  • L'annotazione @Model è ora deprecata. Usa state e mutableStateOf come alternative. Questa decisione relativa al ritiro è stata presa dopo un'attenta discussione.

    Giustificazione

    La motivazione include, a titolo esemplificativo:

    • Riduce l'area e i concetti di base delle API da insegnare
    • È più in linea con altri toolkit comparabili (Swift UI, React, Flutter)
    • Decisione reversibile. Possiamo sempre ripristinare @Model in un secondo momento.
    • Elimina l'uso dei casi limite e le domande difficili da rispondere sulla configurazione di @Model come aspetti da gestire
    • @Model classi di dati, uguale, hashcode ecc.
    • Come posso "osservare" alcune proprietà e altre no?
    • Come posso specificare l'uguaglianza strutturale e referenziale da utilizzare nell'osservazione?
    • Riduce la "magia" nel sistema. ridurrebbe la probabilità che qualcuno supponga che il sistema sia più intelligente di quanto lo sia (ovvero che sa come confrontare un elenco)
    • Rende la granularità dell'osservazione più intuitiva.
    • Migliora la capacità di refactoring della variabile -> dalla proprietà della classe
    • Apre potenzialmente la possibilità di fare ottimizzazioni manuali specifiche per lo stato
    • Si allinea più da vicino al resto dell'ecosistema e riduce l'ambiguità verso l'immutabile o il fatto di "accettare uno stato mutabile"

    Note sulla migrazione

    Quasi tutti gli utilizzi esistenti di @Model vengono trasformati in modo banale in uno di questi due modi. L'esempio seguente ha una classe @Model con due proprietà a solo scopo di esempio e viene utilizzata in un componibile.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternativa 1: usa State<OriginalClass> e crea delle copie.

    Questo approccio è semplificato dalle classi di dati di Kotlin. In sostanza, converti 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 convenienza copy(...) della classe di dati.

    È importante notare che questo approccio funziona solo quando le uniche mutazioni in quella classe sono state eseguite nello stesso ambito in cui viene creata l'istanza State. Se la classe si sta mutando internamente al di fuori dell'ambito di utilizzo e ci si affida all'osservazione di ciò, l'approccio successivo è quello che vorrà usare.

    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: usa mutableStateOf e delegati della proprietà

    Questo approccio è semplificato grazie ai delegati delle proprietà di Kotlin e all'API mutableStateOf, che consente di creare istanze MutableState al di fuori della composizione. In sostanza, sostituisci tutte le proprietà var della classe originale con le proprietà var con mutableStateOf come delegato della proprietà. Ciò presenta il vantaggio che l'utilizzo della classe non cambierà affatto, ma solo la sua implementazione interna. Tuttavia, il comportamento non è completamente identico all'esempio originale, poiché ora ogni proprietà viene osservata/sottoscritta individualmente, quindi le ricomposizioni che vedi dopo questo refactoring potrebbero essere più limitate (una buona cosa).

    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/14316}315)

  • Callback onFocusChange nei campi di testo rinominati in onFocusChanged (Ida4a1)

  • È stato aggiunto un parametro di soglia in stateTrascinabile per specificare le soglie tra gli ancoraggi. per impostare una soglia di 56 dp nel riquadro a scomparsa in basso. Anche BottomDrawerLayout ora utilizza un'enumerazione BottomDrawerState separata. (I533fa)

  • Rimuove Modifier.ripple precedentemente deprecato. Clickable ora utilizza l'eco come indicazione predefinita (se nella tua applicazione hai impostato un MaterialTheme {}), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'elemento cliccabile e ottenere l'indicazione dell'eco senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'eco, puoi creare manualmente un indicatore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I663b2, b/155375067)

  • Rimosso l'override deprecato del componibile FilledTextField (I7f8f8)

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

  • L'area dei contenuti del pulsante ora si comporta come una riga (utile quando hai bisogno di un'icona con un testo; vedi gli esempi su come scriverlo su Pulsante) (I0ff10, b/158677863).

  • RadioGroup e RadioGroupItem sono stati deprecati. Utilizza Box con Modifier.selectable, Row e Column per effettuare l'insieme corretto di opzioni di opzione in base al tuo design (I7f5cf, b/149528535)

  • È stato aggiunto il campo di testo contorno materiale (I1a518)

  • Le funzionalità androidx.ui.foundation.TextFieldValue e androidx.ui.input.EditorValue sono deprecate. Anche gli elementi componibili 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, non in IntPx (I34a07, b/158577776)

  • È stato sostituito l'utilizzo di IntPx con Int. È stato sostituito 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é di PxSize. In questo modo si ottiene il vantaggio di una classe in linea, che consente di utilizzare un valore long per pacchettizzare 2 valori in virgola mobile per rappresentare la larghezza e l'altezza rappresentate come valori in virgola mobile. (Ic0191)

  • Ritira Modifier.ripple. Clickable ora utilizza l'eco come indicazione predefinita (se nella tua applicazione hai impostato un MaterialTheme {}), quindi nella maggior parte dei casi puoi semplicemente utilizzare l'elemento cliccabile e ottenere l'indicazione dell'eco senza costi. Se devi personalizzare il parametro colore / dimensione / delimitato per l'eco, puoi creare manualmente un indicatore RippleIndication e passarlo a cliccabile come parametro di indicazione. (I101cd, b/155375067)

  • L'API Scaffold è stata rielaborata: alcuni parametri hanno cambiato nome e sono stati aggiunti nuovi parametri per una migliore personalizzazione. È stato aggiunto getter alle dimensioni delle query di Fab, TopBar e BottomBar (I0e7ce)

  • È stato aggiunto il componente Menu a discesa 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 indicazioni di pressione/trascinamento/altre indicazioni sugli elementi interattivi personalizzati (I8425f, b/155287131)

  • Implementazioni consolidate di CanvasScope per cui ora sono disponibili solo DrawScope e ContentDrawScope. CanvasScope rinominati in DrawScope. DrawScope aggiornato per implementare l'interfaccia Density e fornire la sottoclasse LayoutDirection DELETE DrawScope in ContentDrawScope Painter e PainterModifier sono stati aggiornati in modo che non mantengano più una proprietà RTL, in quanto DrawScope fornisce già questa proprietà senza fornirla manualmente (I1798e)

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

  • I pulsanti disattivati ora seguono visivamente la specifica di Material Design (I47dcb, b/155076924)

  • FilledTextField ottiene il supporto per azioni ime, trasformazione visiva e tipo di tastiera (I1f9cf, b/155075201)

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

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

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

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

  • Sostituiti tutti gli utilizzi di Color con valori null nell'API con valori non null e con Color.Unset anziché null (Iabaa7)

  • EdgeInsets è stato rinominato InnerPadding. Parametro innerPadding rinominato di Material Buttons in paddding. (I66165)

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

  • StaticDrawer è stato rimosso. Se necessario, utilizza Box con la larghezza specifica del materiale (I244a7)

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

  • Parametro di modifica aggiunto a ListItem e parametri riordinati per promuovere il corpo lambda finale (I66e21)

  • Aggiunge il parametro costruttore defaultFontFamily a Typography, consentendo di specificare la famiglia di caratteri predefinita che verrà utilizzata per qualsiasi TextStyles fornito che non dispone di una famiglia impostata. (I89d07)

  • Sono state rimosse temporaneamente le tabelle di dati sui materiali dalla piattaforma API. (Aea61)

  • Parametri rinominati in Divisore componibile (Ic4373)

  • secondari (Ia6d19)

  • Rimuove MaterialTheme.emphasisLevels, anziché utilizzare EmphasisAmbient.current per recuperare i livelli di enfasi (Ib5e40).

  • Il sistema di tematizzazione delle forme viene aggiornato in base alle specifiche di Material Design. Ora puoi fornire forme piccole, medie e grandi utilizzate dalla maggior parte dei componenti (Ifb4d1)

  • Le API MaterialTheme, ad esempio MaterialTheme.colors() e MaterialTheme.typography(), sono state modificate in proprietà anziché funzioni. Rimuovi le parentesi dalle chiamate esistenti; non è previsto alcun cambiamento di comportamento. (I3565a)

  • Eseguite il refactoring delle API FloatingActionButton per accettare lambda componibili anziché primitivi. Visualizza gli esempi aggiornati per le informazioni sull'utilizzo. (I00622)

  • aggiungi il parametro enabled a casella di controllo, opzione e attivabile (I41c16)

  • Ripple è ora un Modificatore. Sebbene Clickable non sia ancora stato convertito, l'utilizzo consigliato è Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763)

  • Surface e Card sono stati spostati da androidx.ui.material.surface ad androidx.ui.material (I88a6d, b/150863888)

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

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

  • È stata rimossa l'API Snackbar con i parametri String in favore dell'utilizzo dell'overload che accetta lambda componibili. Vedi gli esempi aggiornati per le informazioni sull'utilizzo (I55f80)

  • Eseguite il refactoring delle API Tab per accettare lambda text e icon (Ia057e)

  • È stato aggiunto il componente BottomNavigator; consulta la documentazione e gli esempi per informazioni sull'utilizzo (I731a0)

  • Sono stati aggiunti Icon, IconButton e IconToggleButton, rimuovendo AppBarIcon. È possibile sostituire direttamente gli utilizzi esistenti di AppBarIcon con IconButton per ottenere il touch target corretto. Guarda gli esempi per le informazioni sull'utilizzo e guarda le icone per le icone Material fornite che puoi utilizzare direttamente con questi componenti. (I96849)

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

  • rinomina il modificatore Border in DrawBorder (I8ffcc)

  • LayoutCoordinates non ha più una proprietà di posizione. La proprietà position non ha senso quando si considerano LayoutModifier, la rotazione o la scalabilità. Gli sviluppatori dovrebbero invece utilizzare parentCoordinates e childToLocal() per calcolare la trasformazione da un LayoutCoordinate a un altro.

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

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

  • Il componente del materiale impalcato è stato aggiunto. Attrezzi Scaffold (I7731b)

  • Sostituito DrawBorder a favore del Modificatore di confine (Id335a)

Correzioni di bug

  • FocusModifier è stato ritirato a favore di Modifier.focus, Modifier.focusRequester e Modifier.focusObserver. FocusState e FocusDetailsState sono stati deprecati a favore di FocusState2 (I46919, b/160822875, b/160922136)
  • Verticalscroller e Horiziontalscroller sono stati deprecati. Utilizza ScorribileColonna e ScorribileRiga per creare un'esperienza integrata con il comportamento e i parametri Colonna/Riga oppure Modifier.verticalscroll e Modifier.Horizontalscroll per il tuo elemento. Allo stesso modo, ScorrierPosition è stato ritirato a favore di ScorriState' (I400ce, b/157225838, b/149460415, b/154105299)
  • Le API Modifier.draggable e Modifier.scrollable sono state rielaborate. DragDirection è stato rimosso a favore dell'orientamento. Lo stato richiesto per lo scorrimento è stato semplificato. ScorriableState è stato rinominato ScorribileController (Iab63c, b/149460415)
  • runOnIdleCompose rinominato in runOnIdle (I83607)
  • Le proprietà semantiche di un singolo valore ora utilizzano uno stile di chiamata. Ad esempio, la stringa "semantica { nascosta = true }" ora è scritta come: 'semantics { nascosto() }'. (Ic1afd, b/145951226, b/145955412).
  • Diverse API di test sono state rinominate per essere più intuitive. Tutte le API FindXYZ sono state rinominate onNodeXYZ. Tutte le API doXYZ sono state rinominate performXYZ. (I7f164)
  • L'API Transizione è stata modificata in modo da restituire un TransactionState anziché il passaggio di TransizioneState ai valori secondari. Ciò rende l'API più coerente con le API animate(). (I24e38).
  • È stata aggiunta una classe unità IntBounds che rappresenta i limiti di pixel interi del layout. L'API di PopupPositionProvider è stata aggiornata in modo da utilizzarla. (I0d8d0, b/159596546)
  • È stato aggiunto un nuovo flag facoltativo useUnmergedTree ai rilevatori di test. (I2ce48)
  • Sono state rimosse le API di test delle dimensioni obsolete. (Iba0a0)
  • È stata rimossa la classe incorporata Shader che ha eseguito il wrapping della classe prevista di NativeShader Rinominato NativeShader in Shader. La classe incorporata di Shader sottoposta a wrapping non aggiungeva elementi di valore alla superficie dell'API ed era una classe in linea, quindi usa direttamente la classe NativeShader. (I25e4d).
  • Popup, finestre di dialogo e menu ora ereditano il MaterialTheme contestuale (Ia3665, b/156527485)
  • Ora il menu a discesa Materiale è scorrevole. (Ide699)
  • Rimosso il parametro di direzione del layout dal blocco di misura della funzione Layout(). La direzione del layout è tuttavia disponibile all'interno del callback tramite l'oggetto ambito misurazione (Ic7d9d)
  • Utilizzare AnimationSpec invece di AnimationBuilder nelle API di primo livello per chiarire il concetto di specifica dell'animazione statica. - Migliorare la transizione DSL eliminando il requisito lambda per la creazione di AnimationSpecs come tween, spring. Prendono invece direttamente i parametri del costruttore. -Migliora la facilità d'uso generale di AnimationSpec aprendo i costruttori invece di fare affidamento sui builder. -Modifica la durata e il ritardo per i fotogrammi chiave e Tween in Int. In questo modo si elimina il cast di tipi non necessari e il sovraccarico dei metodi (per supportare sia Long che Int). (Ica0b4)
  • L'opzione ora appare in stato disattivato quando il criterio 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 di interazione della linea di allineamento restituite da Placeable#get(AllineamentLine) sono ora diverse da null. Se manca la linea di allineamento sottoposta a query, verrà restituitocato RedirectLine.Unspecified. (I896c5, b/158134875)
  • Refactoring della classe Radius per trasformarla in una classe in linea. Sono stati rimossi i metodi di creazione di companion a favore del costruttore della funzione con il parametro predefinito in modo che il raggio lungo l'asse y corrisponda a quello del parametro obbligatorio del raggio dell'asse x.

    È stato aggiornato DrawScope.drawRoundRect per utilizzare un singolo parametro Radius anziché 2 valori in virgola mobile separati 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é di PxPosition. In questo modo si ottiene il vantaggio di una classe in linea, che consente di utilizzare un valore long per comprimere 2 valori in virgola mobile per rappresentare gli offset x e y rappresentati come valori in virgola mobile. (I3ad98)

  • È stato sostituito l'utilizzo della classe Px in varie classi di scrittura nell'ambito del grande impegno di refactoring in modo da affidarsi solo ai tipi Dp e primitivi per i parametri dei pixel. Classe Px eliminata nella sua interezza (I3ff33)

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

  • È stato sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring in modo che si basi solo sui tipi Dp e primitivi per i parametri pixel (I086f4)

  • È stato sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring in modo da affidarsi solo ai tipi Dp e primitivi per i parametri dei pixel (Id3434)

  • È stato sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring in modo da affidarsi solo ai tipi Dp e primitivi per i parametri dei pixel (I97a5a)

  • È stato corretto il problema di richiamata per DropdonMenuItems. (I3998b, b/157673259)

  • MutuallyUniqueSetItem è stato deprecato. Usa 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 varie classi di composizione nell'ambito del grande impegno di refactoring in modo che si basi solo sui tipi Dp e primitivi per i parametri dei pixel (I19d02)

  • Verticalscroller ora fornisce Colonna pronta all'uso. Horizontalscroller ora fornisce Row pronta all'uso. (Ieca5d, b/157020670)

  • È stato sostituito l'utilizzo della classe Px in varie classi di composizione nell'ambito del grande impegno di refactoring in modo da affidarsi solo ai tipi Dp e primitivi per i parametri pixel (Iede0b)

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

  • L'API dei modificatori Drawlayer è stata modificata: outlineShape è rinominata forma e ha il valore predefinito rettangoloShape e ora non può essere nullo; clipToOutline è stato rinominato clip; clipToBounds rimosso perché è uguale a clip == true con rettangoloShape (I7ef11, b/155075735)

  • Aggiornate le API di composizione di livello superiore che espongono un Canvas per esporre CanvasScope. In questo modo, i consumatori non devono più gestire i propri oggetti Paint. Per i consumatori che richiedono ancora l'accesso a Canvas, possono utilizzare il metodo di estensione drawCanvas, che fornisce un callback per emettere i comandi di disegno con il canvas sottostante. (I80afd)

  • L'elemento componibile allineatoLineOffset è deprecato. Utilizza il modificatore relativePaddingFrom(). CenterAllineamentLine componibile è stato rimosso. (I60107)

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

  • Aggiunto il modificatore di layout defaultMinSizeConstraints, che imposta i vincoli di dimensione sul layout con wrapping solo quando i vincoli corrispondenti in entrata non sono specificati (0 per i vincoli minimi e infinito per i vincoli massimi). (I311ea, b/150460257)

  • FocusManagerAmbient viene rimosso. Utilizza FocusModifier.requestFocus per ottenere la messa a fuoco. (Ic4826)

  • È stata creata l'API CanvasScope che aggrega un oggetto Canvas per esporre una superficie API di disegno dichiarativa e stateless. Le trasformazioni sono contenute nel relativo ambito del ricevitore e anche le informazioni sulle dimensioni riguardano l'ambito dei relativi limiti inseriti. Non è necessario che un consumatore gestisca il proprio oggetto di stato Paint per configurare le operazioni di disegno.

    È stato aggiunto CanvasScopeSample e è stato aggiornato l'app demo per includere una demo sulla grafica dichiarativa (Ifd86d)

  • Aggiungi la personalizzazione del colore del cursore al campo di testo (I6e33f)

  • Il valore TextFieldValue utilizzato con TextField ora può sopravvivere ricreazione attività quando viene utilizzato in questo modo: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • LayoutModifier2 rinominato in LayoutModifier. (ID29f3)

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

  • Sostituito il parametro focusIdentifier di CoreTextField/TextField con FocusNode per l'integrazione con il sottosistema focus. (I7ea48)

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

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

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

  • Aggiornamento dell'API TextField: riuniti i callback onFocus e onBlur in un singolo callback onFocusChange(Boolean) con parametro (I66cd3)

  • Sono stati aggiunti i parametri verticalGravity e HorizontalGravity a Row e Column. (I7dc5a)

  • I valori wrapContentwidth e wrapContentHeight sono stati aggiornati per prevedere un allineamento verticale o orizzontale anziché un allineamento. Il modificatore di gravità è stato aggiornato per accettare l'allineamento verticale o orizzontale. Riga, colonna e pila sono state aggiornate per supportare gli allineamenti continui personalizzati. (Ib0728)

  • È stata creata l'API PixelMap per supportare l'esecuzione di query sulle informazioni sui pixel da un elemento ImageAsset. (I69ad6)

  • Rimuove ProvideContentColor, invece è sufficiente utilizzare ContentColorAmbient direttamente con Providers (Iee942)

  • Il modulo ui-text-compose è rinominato ui-text. ui-text ora contiene i componibili CoreText e CoreTextField (Ib7d47)

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

  • ui-framework/CoreText, componibili CoreTextField spostati in ui-text-compose. Potresti voler includere ui-text-compose nel tuo progetto. (I32042)

  • Migliora l'API DrawModifier:

    • Ambito del ricevitore per draw() ContentDrawScope
    • Sono stati rimossi tutti i parametri in draw()
    • DrawScope ha la stessa interfaccia del precedente CanvasScope
    • ContentDrawScope ha il metodo drawContent() (Ibaced, b/152919067)
  • runOnIdleCompose e runOnUiThread sono ora funzioni globali anziché metodi su ComposeTestRule. (Icbe8f)

  • [Modificabile]Gli operatori dei delegati delle proprietà statali sono passati alle estensioni per supportare le ottimizzazioni dei delegati per le proprietà Kotlin 1.4. I chiamanti devono aggiungere importazioni per continuare a utilizzare by state { ... } o by mutableStateOf(...). (I5312c)

  • Sono stati aggiunti positionInParent e boundsInParent per LayoutCoordinates. (Icacdd, b/152735784)

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

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

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

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

  • L'elemento trascinabile è stato spostato nel modificatore (Id9b16, b/151959544)

  • L'API ParentData componibile è deprecata. Devi creare un modificatore che implementi l'interfaccia ParentDataModifier oppure usare il modificatore LayoutTag se hai semplicemente bisogno di taggare elementi secondari di layout per riconoscerli all'interno del blocco di misurazione. (I51368, b/150953183)

  • Elemento componibile del Centro deprecato. Deve essere sostituito con il modificatore LayoutSize.Fill + LayoutAllinea.Center oppure con uno dei componibili Box o Stack con i modificatori adatti applicati (Idf5e0).

  • È stata aggiunta l'API VectorPainter per sostituire l'API di sottocomposizione esistente per la grafica vettoriale. Il risultato della sottocomposizione è un oggetto VectorPainter anziché un DrawModifier. Deprecati i precedenti componibili DrawVector in favore di VectorPainter.

    L'API Image(Painter) è stata rinominata in PaintBox(Painter) Un componibile vettoriale creato che si comporta come l'immagine componibile, tranne che con un VectorAsset anziché un ImageAsset (I9af9a, b/149030271)

  • Il nome LayoutFlessibile è stato rinominato in LayoutWeight. Parametro stretto rinominato da riempire. (If4738)

  • Rimosso RepaintBoundary a favore di DrawlayerModifier (I00aa4)

  • DrawVector è stato cambiato da una normale funzione componibile a restituire un Modifier drawVector() che disegna il vettore come sfondo a un layout. (I7b8e0)

  • La funzione componibile Opacità è stata sostituita con il modificatore drawOpacity. (I5fb62)

  • Sostituisci la funzione componibile Clip con il tasto di modifica drawClip(). DrawClipToBounds è un pratico modificatore da usare quando devi ritagliare i limiti dei livelli solo con una forma rettangolare. (If28eb)

  • È stata sostituita la funzione componibile DrawShadow() con il modificatore di drawShadow(). Le ombre sono ora disegnate come parte di LayerModifier. (I0317a)

  • È stato aggiunto LayerModifier, un modificatore che consente di aggiungere un RenderNode a un layout. Consente di impostare taglio, opacità, rotazione, scalabilità e ombre. Questo sostituirà RepaintBoundary. (I7100d, b/150774014)

  • L'elemento 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. L'API Compose.composeInto è stata ritirata. Usa invece setContent o setViewContent. L'API Compose.disposeCompose è stata deprecata. Utilizza invece il metodo dispose nel campo 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#emitModede#0 è stato rinominato in ComponentNode#emitModede#0

  • Immagine creata componibile per gestire il ridimensionamento/il layout, oltre a disegnare un determinato ImageAsset sullo schermo. Questo componibile supporta anche il disegno di qualsiasi istanza di Painter arbitraria rispettando le sue dimensioni intrinseche e supportando una determinata dimensione fissa o minima (Ibcc8f)

  • Elemento componibile a capo obsoleto. Può essere sostituito con il modificatore LayoutAllinea o con l'elemento componibile Stack (Ib237f)

  • WithConstraints ha ottenuto il parametro LayoutDirection (I6d6f7)

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

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

  • Il componibile DrawShape è stato rimosso. Usa il modificatore DrawBackground. (I7ceb2)

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

  • È stato aggiunto AdapterList, un componente di elenco a 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 agli elementi secondari. (Ib351b)

  • Il flag ComposeFlags.COMPOSER_PARAM è stato aggiornato in true e cambierà la strategia di generazione del codice per il plug-in di scrittura. A livello generale, questo fa sì che le funzioni @Composable vengano generate con un parametro sintetico aggiuntivo, che viene passato alle chiamate @Composable successive per consentire al runtime di gestire correttamente l'esecuzione. Si tratta di una modifica significativa che provoca un'interruzione del programma binario, tuttavia, dovrebbe preservare la compatibilità a livello di origine in tutti gli utilizzi autorizzati della scrittura. (I7971c)

  • Componente Canvas aggiunto. Questo componibile occupa alcune dimensioni (fornite dall'utente) e consente di disegnare utilizzando CanvasScope (I0d622)

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

  • È stato modificato LayoutCoordinates per rendere providedAllineamentLines un set invece di una mappa e hai configurato LayoutCoordinates per implementare l'operatore get() invece per recuperare un valore. In questo modo, per i modificatori è più semplice modificare uno o più valori dell'insieme senza creare una nuova raccolta per ogni modificatore. (I0245a)

  • Gli strumenti di scorrimento ora mostrano un comportamento fling nativo di Android. (I922af, b/147493715)

  • Miglioramenti alla superficie API dei vincoli (I0fd15)