Xamarin.Forms

#.fo rms Sommario

Di 1

Capitolo 1: Iniziare con Xamarin.Forms 2

Osservazioni 2

Versioni 2

Examples 3

Installazione (Visual Studio) 3

Xamarin Plugin per Visual Studio 3

Xamarin.Forms 4

Hello World Xamarin Forms: Visual Studio 5

Passaggio 1: creazione di un nuovo progetto. 5

Passaggio 2: analisi del campione 6

Passaggio 3: avvio dell'applicazione 7

Capitolo 2: Accesso alle funzionalità native con DependencyService 8

Osservazioni 8

Examples 8

Implementazione del text-to-speech 8

Implementazione iOS 9

Implementazione Android 10

Implementazione di Windows Phone 11

Implementazione in codice condiviso 12

Ottenere numeri di versione del sistema operativo dell'applicazione e del dispositivo - An 12

Capitolo 3: AppSettings Reader in Xamarin.Forms 15

Examples 15

Lettura del file app.config in un progetto Xaml Xamarin.Forms 15

Capitolo 4: Associazione dati 17

Osservazioni 17

Possibili eccezioni 17

System.ArrayTypeMismatchException: Tentativo di accedere a un elemento come tipo incompati 17

System.ArgumentException: oggetto di tipo 'Xamarin.Forms.Binding' non può essere convertit 17 Il Picker.Items proprietà non è Bindable 17

Examples 18

Collegamento di base a ViewModel 18

Capitolo 5: Avviso display 20

Examples 20

DisplayAlert 20

Esempio di avviso con un solo pulsante e azione 21

Capitolo 6: caching 22

Examples 22

Memorizzazione nella cache con Akavache 22

Informazioni su Akavache 22

Raccomandazioni per Xamarin 22

Semplice esempio 22

Gestione degli errori 23

Capitolo 7: Caratteri personalizzati negli stili 24

Osservazioni 24

Examples 24

Accesso a caratteri personalizzati in Syles 24

Capitolo 8: CarouselView - Versione pre-release 27

Osservazioni 27

Examples 27

Importa CarouselView 27

Importa CarouselView in una pagina XAML 28

Le basi 28

Creazione di origine bindable 28

DataTemplates 28

Capitolo 9: Cellule Xamarin.Forms 30

Examples 30

EntryCell 30

SwitchCell 30

TextCell 31 ImageCell 32

ViewCell 33

Capitolo 10: Ciclo di vita generico dell'app Xamarin.Forms? Platform-dipendente! 35

Examples 35

Il ciclo di vita di Xamarin.Forms non è l'effettivo ciclo di vita dell'app ma una rapprese 35

Capitolo 11: Comportamento specifico della piattaforma 37

Osservazioni 37

Examples 37

Rimozione dell'icona nell'intestazione di navigazione in Anroid 37

Riduci le dimensioni del carattere dell'etichetta in iOS 38

Capitolo 12: Creazione di controlli personalizzati 40

Examples 40

Creare un controllo di input personalizzato di Xamarin Forms (non è richiesto alcun nativo 40

Etichetta con raccolta cumulabile di span 43

Creazione di un controllo voce personalizzato con una proprietà MaxLength 44

Capitolo 13: Creazione di controlli personalizzati 46

introduzione 46

Examples 46

Implementazione di un controllo CheckBox 46

Creazione del controllo personalizzato 46

Consumare il controllo personalizzato 47

Creazione del renderizzatore personalizzato su ciascuna piattaforma 47

Creazione del renderizzatore personalizzato per Android 48

Creazione del renderizzatore personalizzato per iOS 49

Capitolo 14: Creazione di controlli personalizzati 54

Examples 54

Creazione di un pulsante personalizzato 54

Capitolo 15: Database SQL e API in Xamarin Forms. 56

Osservazioni 56

Examples 56

Creare API utilizzando il database SQL e implementare nei moduli Xamarin, 56 Capitolo 16: DependencyService 57

Osservazioni 57

Examples 57

Interfaccia 57

implementazione iOS 57

Codice condiviso 58

Implementazione Android 59

Capitolo 17: effetti 61

introduzione 61

Examples 61

Aggiunta di effetti specifici per piattaforma per un controllo di entrata 61

Capitolo 18: Gesti 66

Examples 66

Crea un'immagine toccabile aggiungendo un TapGestureRecognizer 66

Ingrandisci un'immagine con il gesto di pizzica 66

Mostra tutto il contenuto dell'immagine ingrandito con PanGestureRecognizer 67

Posiziona un segnaposto dove l'utente ha toccato lo schermo con MR.Gestures 67

Capitolo 19: Gesto Xamarin 69

Examples 69

Tocca Gesto 69

Capitolo 20: Gesto Xamarin 70

Examples 70

Evento di gesto 70

Capitolo 21: La gestione delle eccezioni 72

Examples 72

Un modo per segnalare le eccezioni su iOS 72

Capitolo 22: Lavorare con database locali 75

Examples 75

Utilizzo di SQLite.NET in un progetto condiviso 75

Lavorare con database locali utilizzando xamarin.forms in visual studio 2015 77

Capitolo 23: Lavorare con Maps 87 Osservazioni 87

Examples 87

Aggiunta di una mappa in Xamarin.Forms (Xamarin Studio) 87

Inizializzazione delle mappe 87

progetto iOS 87

Progetto Android 87

Configurazione della piattaforma 88

progetto iOS 88

Progetto Android 89

Aggiungere una mappa 98

Progetto PCL 98

Capitolo 24: Le notifiche push 100

Osservazioni 100

Examples 100

Notifiche push per iOS con Azure 100

Notifiche push per Android con Azure 103

Notifiche push per Windows Phone con Azure 106

Capitolo 25: Le notifiche push 108

Osservazioni 108

Lingo di notifica semplice AWS: 108

Lingo di notifica push generico: 108

Examples 108

Esempio di iOS 108

Capitolo 26: MessagingCenter 110

introduzione 110

Examples 110

Semplice esempio 110

Passando argomenti 111

Cancellazione, cancellami 111

Capitolo 27: Navigazione in Xamarin.Forms 112

Examples 112 Flusso NavigationPage 112

Flusso NavigationPage con XAML 113

Navigazione gerarchica con XAML 114

Spingendo nuove pagine 114

Page1.xaml 115

Page1.xaml.cs 115

Page2.xaml 115

Page2.xaml.cs 115

Popping pages 116

Page3.xaml 116

Page3.xaml.cs 116

Navigazione modale con XAML 116

Modifiche a schermo intero 117

Avvisi / conferme e notifiche 117

ActionSheets 117

Pagina principale di dettaglio principale 117

Navigazione dettagliata principale 118

Capitolo 28: Navigazione in Xamarin.Forms 119

Osservazioni 119

Examples 119

Utilizzo di INavigation dal modello di visualizzazione 119

Capitolo 29: OAuth2 123

Examples 123

Autenticazione tramite plug-in 123

Capitolo 30: Pagina Xamarin.Forms 125

Examples 125

TabbedPage 125

Pagina dei contenuti 126

MasterDetailPage 127

Capitolo 31: Perché Xamarin Forms e When to use Xamarin Forms 129

Osservazioni 129

Examples 129 Perché Xamarin Forms e When to use Xamarin Forms 129

Capitolo 32: Regolazioni visive specifiche della piattaforma 131

Examples 131

Regolazioni idioma 131

Regolazioni della piattaforma 131

Usando gli stili 132

Utilizzo di viste personalizzate 132

Capitolo 33: Renderizzatori personalizzati 134

Examples 134

Renderer personalizzato per ListView 134

Renderizzatore personalizzato per BoxView 136

Accesso al renderer da un progetto nativo 140

Etichetta arrotondata con un renderizzatore personalizzato per Frame (parti PCL e iOS) 140

BoxView arrotondato con colore di sfondo selezionabile 141

Capitolo 34: Selettore contatti - Form Xamarin (Android e iOS) 144

Osservazioni 144

Examples 144

contact_picker.cs 144

MyPage.cs 144

ChooseContactPicker.cs 145

ChooseContactActivity.cs 145

MainActivity.cs 147

ChooseContactRenderer.cs 147

Capitolo 35: Servizi di dipendenza 150

Osservazioni 150

Examples 150

Accedi a Fotocamera e Galleria. 150

Capitolo 36: Test dell'unità BDD in Xamarin.Forms 151

Osservazioni 151

Examples 151

Simple Specflow per testare i comandi e la navigazione con NUnit Test Runner 151 perché ne abbiamo bisogno? 151 Uso: 151

Uso avanzato per MVVM 153

Capitolo 37: Test unitario 155

Examples 155

Test dei modelli di visualizzazione 155

Prima di iniziare ... 155

Requisiti aziendali 155

Classi comuni 156

Servizi 156

Costruire lo stub ViewModel 157

Come creare un'istanza LoginPageViewModel? 158 test 158

Test di scrittura 159

Implementazione della logica aziendale 160

Capitolo 38: Trigger & Behaviors 162

Examples 162

Esempio di trigger di Xamarin Form 162

Multi trigger 163

Capitolo 39: Utilizzando ListViews 165

introduzione 165

Examples 165

Pull to Refresh in XAML e Code behind 165

Capitolo 40: Xamarin Forms Layouts 166

Examples 166

ContentPresenter 166

contentView 166

Telaio 167

ScrollView 168

TemplatedView 170

AbsoluteLayout 170

Griglia 173 RelativeLayout 175

stackLayout 176

Utilizzo in XAML 177

Utilizzo nel codice 177

Capitolo 41: Xamarin Plugin 180

Examples 180

Condividi Plugin 180

ExternalMaps 180

Geolocator Plugin 181

Media Plugin 183

Plugin di messaggistica 186

Plugin di autorizzazioni 188

Capitolo 42: Xamarin Relative Layout 192

Osservazioni 192

Examples 192

Pagina con un'etichetta semplice al centro 192

Scatola dopo scatola 194

Capitolo 43: Xamarin.Forms Views 197

Examples 197

Pulsante 197

Date picker 198

Iscrizione 199

editore 200

Immagine 201

Etichetta 202

Titoli di coda 204 Di

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: xamarin-forms

It is an unofficial and free Xamarin.Forms ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official Xamarin.Forms.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/it/home 1 Capitolo 1: Iniziare con Xamarin.Forms

Osservazioni

Xamarin.Forms consente di creare app iOS, Android e Windows con grandi quantità di codice condiviso, incluso il codice dell'interfaccia utente o il markup dell'interfaccia utente XAML. Le pagine e le viste delle app sono associate ai controlli nativi su ciascuna piattaforma, ma possono essere personalizzate per fornire un'interfaccia utente specifica della piattaforma o per accedere a funzionalità specifiche della piattaforma.

Versioni

Versione Data di rilascio

2.3.1 2016/08/03

2.3.0-Hotfix1 2016/06/29

2.3.0 2016/06/16

2.2.0-Hotfix1 2016/05/30

2.2.0 2016/04/27

2.1.0 2016/03/13

2.0.1 2016/01/20

2.0.0 2015/11/17

1.5.1 2016/10/20

1.5.0 2016/09/25

1.4.4 2015/07/27

1.4.3 2015/06/30

1.4.2 2015/04/21

1.4.1 2015/03/30

1.4.0 2015/03/09

1.3.5 2015/03/02

1.3.4 2015/02/17 https://riptutorial.com/it/home 2 Versione Data di rilascio

1.3.3 2015/02/09

1.3.2 2015/02/03

1.3.1 2015/01/04

1.3.0 2014/12/24

1.2.3 2014/10/02

1.2.2 2014/07/30

1.2.1 2014/07/14

1.2.0 2014/07/11

1.1.1 2014-06-19

1.1.0 2014/06/12

1.0.1 2014/06/04

Examples

Installazione (Visual Studio)

Xamarin.Forms è un'astrazione dell'interfaccia utente dell'interfaccia utente nativamente supportata da più piattaforme che consente agli sviluppatori di creare facilmente interfacce utente che possono essere condivise su Android, iOS, Windows e Windows Phone. Le interfacce utente sono renderizzate utilizzando i controlli nativi della piattaforma di destinazione, consentendo alle applicazioni Xamarin.Form di mantenere l'aspetto e il feel appropriati per ciascuna piattaforma. Xamarin Plugin per Visual Studio

Per iniziare con Xamarin.Forms per Visual Studio è necessario avere il plugin Xamarin stesso. Il modo più semplice per installarlo è scaricare e installare l'ultima versione di Visual Studio.

Se hai già installato Visual Studio più recente, vai a Pannello di controllo> Programmi e funzionalità, fai clic con il tasto destro su Visual Studio e fai clic su Cambia. Quando si apre il programma di installazione, fai clic su Modifica e seleziona gli strumenti di sviluppo mobile multipiattaforma:

https://riptutorial.com/it/home 3 Puoi anche scegliere di installare l'SDK di Android:

Deselezionalo se hai già installato l'SDK. Sarai in grado di configurare Xamarin per utilizzare l'SDK Android esistente in seguito. Xamarin.Forms

Xamarin.Forms è un set di librerie per la libreria di classi portatili e gli assembly nativi. La stessa libreria Xamarin.Forms è disponibile come pacchetto NuGet. Per aggiungerlo al tuo progetto basta usare il normale comando Install-Package della Console di Gestione pacchetti:

Install-Package Xamarin.Forms per tutti gli assembly iniziali (ad esempio MyProject, MyProject.Droid e MyProject.iOS).

Il modo più semplice per iniziare con Xamarin.Forms è creare un progetto vuoto in Visual Studio:

https://riptutorial.com/it/home 4 Come puoi vedere ci sono 2 opzioni disponibili per creare l'app vuota - Portatile e condiviso. Vi consiglio di iniziare con Portable one perché è il più usato nel mondo reale (differenze e ulteriori spiegazioni da aggiungere).

Dopo aver creato il progetto, assicurati di utilizzare l'ultima versione di Xamarin.Forms poiché il modello iniziale potrebbe contenere quello vecchio. Usa la tua Console Gestione pacchetti o Gestisci l'opzione Pacchetti NuGet per eseguire l'aggiornamento agli ultimi Xamarin.Forms (ricorda che è solo un pacchetto NuGet).

Mentre i modelli di Visual Studio Xamarin.Forms creeranno per te un progetto di piattaforma iOS, dovrai connettere Xamarin a un host di build Mac per poter eseguire questi progetti su iOS Simulator o dispositivi fisici.

Hello World Xamarin Forms: Visual Studio

Dopo aver installato Xamarin come descritto nel primo esempio, è ora di lanciare la prima applicazione di esempio. Passaggio 1: creazione di un nuovo progetto.

In Visual Studio, scegli Nuovo -> Progetto -> Visual C # -> Cross-Platform -> Blank App (Xamarin.Forms Portable) https://riptutorial.com/it/home 5 Denominare l'app "Hello World" e selezionare la posizione per creare il progetto e fare clic su OK. Questo creerà una soluzione per te che contiene tre progetti:

1. HelloWorld (qui è posizionata la logica e le viste, ovvero il progetto portatile) 2. HelloWorld.Droid (il progetto Android) 3. HelloWorld.iOS (il progetto iOS)

Passaggio 2: analisi del campione

Dopo aver creato la soluzione, un'applicazione di esempio sarà pronta per essere distribuita. Apri App.cs trova nella radice del progetto portatile e investiga il codice. Come visto sotto, il Content del campione è uno StackLayout che contiene Label :

https://riptutorial.com/it/home 6 using Xamarin.Forms;

namespace Hello_World { public class App : Application { public App() { // The root page of your application MainPage = new ContentPage { Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Children = { new Label { HorizontalTextAlignment = TextAlignment.Center, Text = "Welcome to Xamarin Forms!" } } } }; } protected override void OnStart() { // Handle when your app starts } protected override void OnSleep() { // Handle when your app sleeps } protected override void OnResume() { // Handle when your app resumes } } }

Passaggio 3: avvio dell'applicazione

Ora fai semplicemente clic con il pulsante destro del mouse sul progetto che desideri avviare ( HelloWorld.Droid o HelloWorld.iOS ) e fai clic su Set as StartUp Project di avvio. Quindi, nella barra degli strumenti di Visual Studio, fare clic sul pulsante Start (il pulsante triangolare verde che assomiglia a un pulsante Riproduci) per avviare l'applicazione sul simulatore / emulatore di destinazione.

Leggi Iniziare con Xamarin.Forms online: https://riptutorial.com/it/xamarin-forms/topic/908/iniziare- con-xamarin-forms

https://riptutorial.com/it/home 7 Capitolo 2: Accesso alle funzionalità native con DependencyService

Osservazioni

Se non vuoi che il tuo codice si interrompa quando non viene trovata alcuna implementazione, controlla prima DependencyService se ha un'implementazione disponibile.

Puoi farlo con un semplice controllo se non è null .

var speaker = DependencyService.Get();

if (speaker != null) { speaker.Speak("Ready for action!"); } oppure, se il tuo IDE supporta C # 6, con operatore null-condizionale:

var speaker = DependencyService.Get();

speaker?.Speak("Ready for action!");

Se non lo fai e non viene trovata alcuna implementazione in fase di runtime, il tuo codice genererà un'eccezione.

Examples

Implementazione del text-to-speech

Un buon esempio di una funzione che richiede il codice specifico della piattaforma è quando si desidera implementare la sintesi vocale (tts). Questo esempio presuppone che si stia lavorando con codice condiviso in una libreria PCL.

Una panoramica schematica della nostra soluzione apparirebbe come l'immagine sottostante.

https://riptutorial.com/it/home 8 Nel nostro codice condiviso definiamo un'interfaccia che è registrata con DependencyService . Qui è dove faremo le nostre chiamate. Definisci un'interfaccia come sotto.

public interface ITextToSpeech { void Speak (string text); }

Ora in ogni piattaforma specifica, abbiamo bisogno di creare un'implementazione di questa interfaccia. Iniziamo con l'implementazione iOS. Implementazione iOS

using AVFoundation;

public class TextToSpeechImplementation : ITextToSpeech { https://riptutorial.com/it/home 9 public TextToSpeechImplementation () {}

public void Speak (string text) { var speechSynthesizer = new AVSpeechSynthesizer ();

var speechUtterance = new AVSpeechUtterance (text) { Rate = AVSpeechUtterance.MaximumSpeechRate/4, Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), Volume = 0.5f, PitchMultiplier = 1.0f };

speechSynthesizer.SpeakUtterance (speechUtterance); } }

Nell'esempio di codice sopra riportato si nota che esiste un codice specifico per iOS. Ti piace tipi come AVSpeechSynthesizer . Questi non funzionerebbero nel codice condiviso.

Per registrare questa implementazione con Xamarin DependencyService aggiungere questo attributo sopra la dichiarazione dello spazio dei nomi.

using AVFoundation; using DependencyServiceSample.iOS;//enables registration outside of namespace

[assembly: Xamarin.Forms.Dependency (typeof (TextToSpeechImplementation))] namespace DependencyServiceSample.iOS { public class TextToSpeechImplementation : ITextToSpeech //... Rest of code

Ora quando fai una chiamata come questa nel tuo codice condiviso, viene iniettata l'implementazione corretta per la piattaforma su cui stai eseguendo la tua app.

DependencyService.Get() . Maggiori informazioni su questo in seguito. Implementazione Android

L'implementazione di Android di questo codice potrebbe apparire come sotto.

using Android.Speech.Tts; using Xamarin.Forms; using System.Collections.Generic; using DependencyServiceSample.Droid;

public class TextToSpeechImplementation : Java.L