Neste artigo vou apresentar o novo recurso CollectionView da versão 4.0 do Xamarin Forms. |
Vamos continuar a segunda parte do artigo definindo o código da View CarouselPage.xaml onde vamos usar a view CarouselView.
Podemos usar a
view CarouselView que usa o
CollectionView como base, para ajustar o layout usado e adicionar algumas
informações semelhantes a cartões de visita.
Um dos grandes recursos fornecidos pelo CollectionView
é a capacidade de adicionar pontos de alinhamento (snap). Para a
página que você acabou de projetar, ela permite que a visualização pare entre os
cartões.
E se você quiser que apenas um cartão apareça centrado por vez ?
Com as propriedades SnapPointsAlignment e SnapPointsType no ItemsLayout, você pode configurar este comportamento em facilmente, basta adicionar o seguinte código ao seu XAML para ativar esse comportamento:
<CarouselView.ItemsLayout>
<GridItemsLayout Orientation="Horizontal" SnapPointsAlignment="Center" SnapPointsType="Mandatory"/>
</CarouselView.ItemsLayout>
|
Vamos então alterar o código do arquivo CarouselPage.xaml conforme abaixo:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="XF_CollectionView.CarouselPage" Title="CarouselPage"> <ContentPage.Content> <StackLayout> <CarouselView x:Name="ColView1" ItemsSource="{Binding Amigos}" HeightRequest="200" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" Margin="10"> <CarouselView.ItemsLayout> <CarouselView.ItemTemplate> |
Para simular os dados de um cartão definimos mais 3 views Label no código para montar o cartão.
Agora no arquivo GridPage.xaml.cs vamos ter que repetir o código para vincular a lista de string novamente e definir o código para controlar o Slider que vai permitir rolar os cartões:
using System;
using System.Collections.Generic;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace XF_CollectionView
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class CarouselPage : ContentPage
{
public List<string> Amigos { get; set; }
public CarouselPage()
{
InitializeComponent();
Amigos = new List<string>
{
"Pedro","Beatriz","Carlos","David","Eduardo","Francisco","Gil","Helena","Ivan",
"Joel","Cristina","Laurinda","Maria","Nanci","Olivia","Paulo","Amanda",
"Roberto","Sofia","Timoteo","Ursula","Vincente","William","Xavier","Ivonne"
};
ColView1.BindingContext = this;
}
void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
{
ColView1.ScrollTo((int)Math.Floor(e.NewValue));
}
}
}
|
Executando novamente o projeto e testando a implementação feita iremos obter o seguinte resultado:
Em outro artigo veremos com mais detalhes as propriedades e recursos da CollectionView.
Pegue o código do projeto compartilhado aqui : XF_CollectionView_3.zip (sem as referências)
"Sujeitai-vos, pois, a Deus, resisti ao diabo, e ele fugirá de vós." Tiago 4:7
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
https://developer.xamarin.com/api/type/Android.Widget.ListView/
https://developer.xamarin.com/api/property/Android.Widget.ListView.Adapter/
https://developer.xamarin.com/guides/xamarin-forms/user-interface/animation/