Con il rilascio della versione 4.3.0, Xamarin.Forms ha ufficialmente rimosso il vincolo sull'abilitazione degli experimental flag per l'utilizzo delle CollectionView.
Ma vediamo nel dettaglio cosa sono: per la maggior parte delle situazioni, una CollectionView, è un componente che si va a sostituire alla "vecchia" ListView. Consentendo di costruire interfacce più veloci, moderne, mantendo i controlli nativi. La novità più importante è la completa rimozione della ViewCell e quindi del suo template poco flessibile e articolato, dando piena libertà all'immaginazione dello sviluppatore, o del designer, tramite DataTemplate.
<CollectionView ItemsSource="{Binding items}"> <CollectionView.ItemTemplate> <DataTemplate> <StackLayout > <Label Text="{Binding Name}" /> <Label Text="{Binding Value}" /> </StackLayout> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView>
Con le CollectionView non solo il layout dell'elemento sarà a nostra completa discrezione, ma anche l'interazione con il componente, e le modalità di interazione con la lista saranno sotto il nostro pieno controllo.
Se prima, con le ListView, eravamo obbligati a layout con scroll verticali e spaziature fisse, ora possiamo scegliere sia l'orientamento che il numero di elementi da visualizzare.
Se ad esempio volessimo visualizzare una lista ci basterà scrivere:
<CollectionView.ItemsLayout> <ListItemsLayout ItemSpacing="4"></ListItemsLayout> <CollectionView.ItemsLayout>
Se viceversa, volessimo un layout a griglia, il nostro codice somiglierà più al seguente.
<CollectionView.ItemsLayout> <GridItemsLayout Span="2" VerticalItemSpacing="4" HorizontalItemSpacing="4" ></GridItemsLayout> <CollectionView.ItemsLayout>
Raramente visualizzeremo liste, o griglie, con pochi elementi, quindi potremmo aver bisogno di definire anche la modalità con cui è possibile visionarli. Tramite la proprietà Orientation si deciderà come la CollectionView si espanderà sulla nostra UI.
Migrare da ListView a CollectionView
Il primo grande concetto da tenere in considerazione è che la CollecionView implementa un set ridotto delle API disponibili all'interno della ListView, non è quindi garantita la piena compatibilità in caso di migrazione. Possiamo comunque affermare che nella gran parte dei casi questa scelta sarà completamente indolore, anzi, ne guadagneremo: il supporto alla selezione singola/multipla, il sistema di virtualizzazione fornito dai controlli nativi, possibilità di creare UX più interattive e con template completamente custom.
Attualmente la CollectionView è pienamente supportata dai sistemi iOS e Android, mentre per UWP non abbiamo ancora tutte le funzionalità disponibili. Per seguire le fasi di avanzamento possiamo utilizzare il seguente link: https://gist.github.com/hartez/7d0edd4182dbc7de65cebc6c67f72e14.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Le novità di Angular: i miglioramenti alla CLI
Gestire domini wildcard in Azure Container Apps
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Miglioramenti nell'accessibilità con Angular CDK
Eseguire attività pianificate con Azure Container Jobs
Utilizzare Tailwind CSS all'interno di React: installazione
Verificare la provenienza di un commit tramite le GitHub Actions
Utilizzare i primary constructor di C# per inizializzare le proprietà
Generare token per autenicarsi sulle API di GitHub
Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
Implementare il throttling in ASP.NET Core