Con il rilascio di Xamarin.Forms 4.3, oltre ai numerosi nuovi componenti come CarouselView e CollectionView, abbiamo a disposizione, una nuova funzionalità che ci consentirà di mantenere un layout consistente e visivamente identico sia in Android che in iOS: il Visual.Material.
La possibilità di avere lo stesso tema per entrambe le piattaforme ci consente di velocizzare lo sviluppo, consentendoci di sviluppare utilizzando solo un'architettura ed effettuare controlli sul posizionamento dei componenti, verso l'altra piattaforma, molto più dilazionati nel tempo, avendo la quasi certezza che, nel peggior dei casi, si debbano fare solo piccoli aggiustamenti grafici.
Per attivare questa funzionalità, una volta installata la libreria nei progetti Android e iOS, procediamo ad informare sistema di questa opzione tematica.
In Android, procediamo all'interno della MainActivity e in particolare nel metodo OnCreate, a seguito dell'inizializzazione di Xamarin.Forms:
global::Xamarin.Forms.Forms.Init(this, savedInstanceState); // abilitazione Visual.Material global::Xamarin.Forms.FormsMaterial.Init(this, savedInstanceState); // caricamento applicazione LoadApplication(new App());
In iOS, invece, andremo a modificare la classe AppDelegate, facendo l'override del metodo FinishedLaunching:
global::Xamarin.Forms.Forms.Init(); // abilitazione Visual.Material global::Xamarin.Forms.FormsMaterial.Init(); // caricamento applicazione LoadApplication(new App());
Le piattaforme sono ora pronte a visualizzare gli elementi rispettando le stesse linee tematiche. Per attivare il nuovo layout occorrerà aggiungere l'attributo Visual="Material" ai componenti delle nostre view.
<!-- Material layout abilitato solo sul bottone --> <Button Text="Click Me!" Visual="Material"></Button> <!-- oppure... --> <ContentPage Visual="Material"> <!-- tutti i componenti avranno il layout Material --> </ContentPage>
L'opzione è disponibile su tutti i principali componenti come ActivityIndicator, Button, CheckBox, DatePicker, Entry ecc...
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare noopener e noreferrer nei link HTML
Implementare il throttle in JavaScript
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Utilizzare i command service nei test con .NET Aspire
Creare una file based app con C#
Running workloads and operations with Azure Kubernetes Service
Arricchire l'interfaccia di .NET Aspire
Integrare il Docker Model Runner in un workflow di GitHub
Usare i generics di C# con la clausola nameof in modo semplificato
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Eseguire i pre-commit hook di git con dependabot
Stop alle password con Azure Managed Identity


