Démarrez-vous Xamarin Forms? Créons une interface utilisateur simple

Howdy! «C’est un plaisir pour moi de vous avoir ici. 💚 J'imagine que vous êtes dans cet article car vous débutez dans Xamarin Forms et vous souhaitez améliorer vos connaissances. 💕
Cette fois, nous allons créer une interface utilisateur simple étape par étape, qui nous aidera à améliorer de nombreuses compétences XAML importantes qui nous faciliteront la vie lors du développement d'une interface utilisateur dans Xamarin Forms. Notre conception d'aujourd'hui est obtenue à partir de Dribble créé par l'utilisateur Yana .
Nous allons reproduire cette interface utilisateur et je soulignerai quelques points importants que nous aborderons: [19659003] ✔ Identification de la mise en page principale
✔ Contrôles qui se chevauchent
✔ Gestion de la liste de cartes avec un CollectionView
Alors, commençons! 😎
🔧 Création des paramètres de base
Tout d'abord, ajoutons le package PancakeView Nuget.
🔧 Ensuite, ajoutez l'espace de noms suivant:
xmlns: PanCake = "clr-namespace: Xamarin.Forms.PancakeView; assembly = Xamarin.Forms.PancakeView"
Ajoutez les lignes suivantes, qui nous aideront à masquer la barre d'état sur iOS:
xmlns: ios = "clr-namespace: Xamarin.Forms.PlatformConfiguration.iOSSpecific; assembly = Xamarin.Forms.Core"
ios: Page.PrefersStatusBarHidden = "True"
ios: Page.PreferredStatusBarUpdateAnimation = "Fondu"
Et enfin, réglons notre écran uniquement pour les conceptions verticales. Si vous ne savez pas comment le faire, vous pouvez voir ce message .
🕵 Identifier la mise en page principale
La première étape que nous devons garder à l'esprit est de sélectionner la bonne mise en page . Dans ce cas, nous utiliserons une grille. Si vous voulez en savoir plus sur les grilles, vous pouvez aller ici . Dans l'image suivante, nous allons analyser les colonnes et les lignes nécessaires à notre structure principale.
Implémentation du code:
< Grid RowDefinitions = " Auto, Auto, Auto, Auto, Auto, Auto, Auto " >
</ Grid >
✔ Contrôles de chevauchement
Dans ce étape, nous répliquerons les lignes 1, 2 et 3 (comme spécifié dans l'image de structure ci-dessus). L'un des points les plus importants ici est d'apprendre un moyen simple de chevaucher des contrôles. 💪
Ces lignes sont composées des éléments suivants:
- Image principale: Comme vous pouvez le voir, cette image a un rayon de coin en bas. C’est pourquoi nous utiliserons PancakeView. À l'intérieur de la structure principale, ajoutez la ligne de code suivante:
< PanCake: PancakeView Grid.Row = " 0 " Grid.RowSpan = " 3 " CornerRadius = " 0,0,55,55 " >
< Image Source = " Main " Aspect = " AspectFill " />
</ PanCake: PancakeView >
- Icône ➕ Titre ➕ Image arrondie:
⚠ À obtenir le chevauchement avec l'image ajoutée ci-dessus, il vous suffit d'ajouter la ligne suivante dans le même numéro de couleur utilisé dans l'explication précédente – dans ce cas, le numéro de ligne 0.
Dans cette partie, ajoutons une autre Grille, qui contiendra les trois éléments mentionnés ci-dessus. Il est important de savoir que nous utiliserons également PancakeView pour obtenir l'image arrondie.
< Grid Grid.Row = " 0 " ColumnDefinitions = " *, *, * " Padding = " 20,40,20,0 " >
< Image Grid.Column = " 0 " Source = " Points " HorizontalOptions = " Start " HeightRequest = " 20 " />
< Label Grid.Column = " 1 " Text = " CardInfo " VerticalTextAlignment = " Center " TextColor = " Blanc " FontAttributes = " Gras " ] HorizontalTextAlignment = " Center " />
< PanCake: PancakeView Grid.Column = [19659022] " 2 " HorizontalOptions = " End " CornerRadius = " 25 " WidthRequest = " 50 " HeightRequest = " 50 " >
< Image Source = " Modèle " Aspect = [19659022] " AspectFill " />
</ PanCake: PancakeView >
</ Grid [19659022]>
- Enfin, Description ➕ SearchBar:
< Label Grid.Row = " 1 " Padding [19659021] = " 0,180,0,0 " HorizontalTextAlignment = " Center " FontSize [19659021] = " 23 " Texte = " Don ' t sais comment exprimer & # 10; vos sentiments? " TextColor = " White " FontAttributes = " Gras " />
< SearchBar Grid.Row = " 2 " BackgroundColor = " Transparent " Margin = " 30 " / >
À ce stade, nous avons le résultat suivant:
🎯 Gestion de la liste des cartes avec un CollectionView [19659008] Avant la liste des cartes, ajoutons les étiquettes Titre et Description:
< Libellé Grid.Row = " 3 " Padding = " 30,30,0,10 " FontSize = " 25 " FontAttributes = [19659022] " Gras " Texte = " Choisissez votre carte parfaite " />
< Libellé Grid.Row = " 4 " Padding = " 30,0 " Texte = " Si vous ' cherchez le moyen idéal d'exprimer ce que vous pensez de quelque chose, une façon simple de vous dire ' êtes amoureux. " TextColor = " Silver " />
< Libellé Grid.Row = " 3 " Padding = " 30,30,0,10 " FontSize = " 25 " FontAttributes = [19659022] " Gras " Texte = " Choisissez votre carte parfaite " />
< Libellé Grid.Row = " 4 " Padding = " 30,0 " Texte = " Si vous ' cherchez le moyen idéal d'exprimer ce que vous pensez de quelque chose, une façon simple de vous dire ' êtes amoureux. " TextColor = " Silver " />
Maintenant, continuons avec la liste. Il est important de savoir qu’il a été rendu conforme au modèle MVVM (Model-View-View-Model) (c’est pourquoi les propriétés sont liées). Si vous voulez en savoir plus à ce sujet, vous pouvez visiter ce poste .
< CollectionView Grid.Row = " 5 "
HorizontalScrollBarVisibility = " Jamais "
Marge = " 0,20 "
ItemsSource = " {Reliure cartes} "
VerticalOptions = " StartAndExpand "
ItemsLayout = " HorizontalList "
HeightRequest = [19659022] " 135 " >
< CollectionView.ItemTemplate >
< DataTemplate >
< Grille RowDefinitions = " Auto " Margin = " 8,0 " >
< Frame Grid.Row = " 0 " HasS hadow = " False " CornerRadius = " 20 " BackgroundColor = " # e7ebf1 " WidthRequest = " 95 " HorizontalOptions = ] " Début " >
< Image Grid.Row = " 0 " HorizontalOptions = " Center " Source = " {Binding Picture} " [19659020] WidthRequest = " 150 " />
</ Frame >
</ Grid [19659022]>
</ DataTemplate >
</ CollectionView.ItemTemplate >
</ CollectionView >
Last Étape: Ajout des boutons du bas!
< Grid Grid.Row = " 6 " ColumnDefinitions = ] " *, * " >
< Button Grid.Column = " 0 " Texte = " Choisissez un texte " TextColor = " Blanc " FontAttributes = " Gras " BackgroundColor = " # ff5061 " Margin = " 20,0 " HeightRequest = " 60 " CornerRadius [19659021] = " 30 " />
< Button Grid.Column = " 1 " Texte [19659021] = " Écrivez votre propre " TextColor = " Black " BorderColor = " # ff5061 " BorderWidth = " 3 " FontAttributes = ] " Gras " Marge = " 20,0 " HeightRequest = " 60 " CornerRadius = " 30 " />
</ Grid > [19659348] ->
Et notre interface utilisateur simple est terminée! 😎
Merci d'avoir lu! 💚💕 Vous pouvez voir le code complet sur mon dépôt Github .
À la prochaine fois! 🤓
Source link