Xamarin Forms  4.4 -  Apresentando IndicatorView
Hoje vamos apresentar os recursos do novo controle IndicatorView lançado na versão 4.4 do Xamarin.Forms.

Em dezembro de 2019 a Microsoft anunciou a versão 4.4 do Xamarin Forms com uma lista de novos recursos com destaque para o novo CarouselView que já apresentamos no artigo anterior.

Além dele temos o componente IndicatorView que é utilizado junto com o CarouselView e que veremos neste artigo.

Apresentando o novo IndicatorView

O componente IndicatorlView é uma view que exibe os indicadores que representam o número de itens e a posição atual em uma CarouselView:

Atualmente (jan/2020) este recurso é experimental, e pode ser usado adicionando a linha de código a seguir na  classe AppDelegate no projeto iOS, e/ou na classe MainActivity no projeto Android, antes de chamar Forms.Init:


Forms.SetFlags("IndicatorView_Experimental");

Temos as seguintes propriedades definidas para este componente:

Como exemplo vamos usar o projeto criado no artigo anterior e incluir um IndicatorView vinculando-o ao CarouselView usado no projeto.

Incluindo um IndicatorView

Abra o projeto XF_Carousel1 criado no artigo anterior.

A seguir abra o arquivo MainPage.xaml e altere o seu código incluindo as linhas em azul 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_Carousel1.MainPage">
    <Frame Margin="15" Padding="0" VerticalOptions="StartAndExpand" 
           BackgroundColor="AntiqueWhite" CornerRadius="5">
        <StackLayout>
            <StackLayout VerticalOptions="Center" 
                         HorizontalOptions="FillAndExpand" Orientation="Horizontal">
                <Label Margin="10,10,10,10" Text="Fotos" FontAttributes="Bold" />
                <IndicatorView x:Name="meuIndicatorView"
                   IndicatorColor="LightGray" 
                   SelectedIndicatorColor="Blue"    
                   IndicatorSize="20" 
                   VerticalOptions="Center" 
                   HorizontalOptions="CenterAndExpand"    
                   />
            </StackLayout>
            <CarouselView ItemsSource="{Binding Fotos}" IndicatorView="meuIndicatorView">
                <CarouselView.ItemsLayout>
                    <LinearItemsLayout Orientation="Vertical" />
                </CarouselView.ItemsLayout>
                <CarouselView.ItemTemplate>
                    <DataTemplate >
                        <StackLayout>
                            <Frame HasShadow="True"
                               BorderColor="DarkGray"
                               CornerRadius="5"
                               Margin="10"
                               HorizontalOptions="Center"
                               VerticalOptions="CenterAndExpand">
                                <StackLayout>
                                    <Image Source="{Binding ImagemUrl}" HeightRequest="400" WidthRequest="400"/>
                                    <Label Text="{Binding Nome}" HorizontalOptions="Center" />
                                </StackLayout>
                            </Frame>
                        </StackLayout>
                    </DataTemplate>
                </CarouselView.ItemTemplate>
            </CarouselView>
        </StackLayout>
    </Frame>
</ContentPage>

Neste código criamos um IndicatorView que é populado com dados definindos na propriedade IndicatorView para o objeto CarouselView. Cada indicador é um círculo cinza claro, enquanto o indicador que representa o item atual no CarouselView é da cor azul. (Note que estamos usando a rolagem na vertical)

Executando o projeto o resultado obtido será o seguinte:

Por padrão a forma do indicador é um círculo mas podemos usar a propriedade IndicatorsShape, que indica a forma dos indicadores. Essa propriedade pode ser definida como um dos membros de enumeração de IndicatorShape:

Exemplo de código para alterar a forma do indicador para quadrado:

...
<IndicatorView IndicatorsShape="Square"
               ItemsSourceBy="carouselView"
               IndicatorColor="LightGray"
               SelectedIndicatorColor="DarkGray" />

...

No próximo artigo vamos continuar abordando os novos controles da versão 4.4.

Pegue o projeto aqui : XF_Carousel1_2.zip (projeto compartilhado)

"Tendo sido, pois, justificados pela fé, temos paz com Deus, por nosso Senhor Jesus Cristo;
Pelo qual também temos entrada pela fé a esta graça, na qual estamos firmes, e nos gloriamos na esperança da glória de Deus."

Romanos 5:1,2

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:


José Carlos Macoratti