Mova-se com o Xamarin.Forms 4.4

Estávamos conversando com um cliente no ano passado que cria dezenas de aplicativos móveis a cada ano. Eles disseram: "Não nos lembramos da última vez em que criamos um aplicativo móvel que NÃO incluía uma exibição de carrossel". Muitos de vocês expressaram sentimentos quase idênticos a nós. Portanto, temos o prazer de apresentar um novo controle CarouselView no Xamarin.Forms 4.4.0. Junto com isso, também temos o IndicatorView para exibir as páginas ou itens no carrossel. Assim como o SwipeView por fornecer ações contextuais a qualquer elemento em um CollectionView . O tema do lançamento de mover as coisas não seria completo sem a apresentação do novo suporte de animação GIF para imagens. Vamos começar logo ali.



Recursos do Xamarin.Forms 4.4


As animações GIF são uma maneira excelente e simples de adicionar animação ao seu aplicativo para obter melhores comentários do usuário, chamando a atenção para alguma ação ou detalhe. Também é ótimo para GIFs de gatos, é claro. A Image é tudo o que você precisa, juntamente com a nova propriedade IsAnimationPlaying para ativar e desativar a reprodução.
As animações serão repetidas por padrão. Para parar uma animação, defina IsAnimationPlaying como false.



Assim você tem animações! Isso é ideal para imagens menores, e especialmente aquelas incorporadas ao seu aplicativo. As configurações de loop na imagem GIF são respeitadas. Verifique se você está usando renderizadores rápidos no Android para obter a melhor experiência.

CarouselView e IndicatorView


Criado com o mesmo controle básico do CollectionView , o novo CarouselView simplifica a adição de carrosséis sofisticados ao seu aplicativo, independentemente de você estar rolando horizontal ou verticalmente. Assim como você obtém o CollectionView você obtém:

  • ItensLayout
  • ItemsSource
  • ItemTemplate
  • EmptyTemplate




 <CarouselView HeightRequest="160">    <CarouselView.ItemsSource>        <x:Array Type="{x:Type x:String}">            <x:String>h01.jpg</x:String>            <x:String>h02.jpg</x:String>            <x:String>h03.jpg</x:String>            <x:String>h04.jpg</x:String>        </x:Array>    </CarouselView.ItemsSource>    <CarouselView.ItemTemplate>        <DataTemplate>            <Image Source="{Binding .}"/>        </DataTemplate>    </CarouselView.ItemTemplate> </CarouselView> 

Você também obtém algumas propriedades específicas do carrossel para controlar itens como a distância que os itens anteriores e os próximos devem aparecer.



 <CarouselView PeekAreaInsets="50"              ...> 

Dica avançada: no exemplo acima, você também observará que os itens anteriores e seguintes são redimensionados e deslocados. Você pode conseguir isso hoje com um comportamento e fazendo as modificações de layout na rolagem. Quando enviamos o 4.5, você poderá usar estados visuais para fazer isso com mais facilidade.

Para adicionar um IndicatorView posicione-o onde quiser e associe-o ao CarouselView por nome:

 <CarouselView x:Name="walletCarousel"> // implementation here </CarouselView> <IndicatorView  IndicatorColor="LightGray"  SelectedIndicatorColor="Black"  IndicatorSize="10" HorizontalOptions="Center"  IndicatorView.ItemsSourceBy="walletCarousel"/> 




Para obter mais detalhes sobre todas as coisas poderosas que você pode fazer com o CarouselView e o IndicatorView , consulte a documentação .

Nota: O NuGet Xamarin.Forms.CarouselView (versão prévia) lançado anteriormente será arquivado e não será mais lançado. Se você estava usando esse controle, poderá remover o NuGet e atualizar seu espaço para nome do código. Trabalhamos para manter a API consistente, mas pode ser necessário ajustar algumas coisas. Github

Swipeview


Esse controle geralmente é encontrado em uma lista de itens para permitir que o usuário deslize em qualquer direção para revelar botões de contexto para ações comuns, como editar ou excluir. Para usar esse controle, envolva-o em qualquer elemento ao qual você deseja adicionar o comportamento e especifique seus SwipeItems. Por padrão, um SwipeItem leva um título e um ícone, além de um comando ou manipulador de cliques. Se você deseja adicionar algo mais complexo, você pode fazer isso através de um modelo.



 <SwipeView>        <SwipeView.RightItems>                <SwipeItems Mode="Execute">                        <SwipeItem Text="Favourite" Command="{Binding Favourite}">                                <SwipeItem.Icon>                                        <FontIconSource Glyph=""/>                                </SwipeItem.Icon>                        </SwipeItem>                </SwipeItems>        </SwipeView.LeftItems>        <!-- Swipeable content -->        <Frame>          // content here        </Frame> </SwipeView> 

A amostra acima e mais foram publicadas em blog por nosso talentoso membro da equipe, Javier Suarez Ruiz.

Você também pode usar detalhes específicos da plataforma para controlar o modo de transição de furto no Android e iOS . Para mais detalhes sobre o SwipeView , consulte a documentação .

Contribuintes


Mesmo antes da participação massiva no Hacktoberfest , tivemos muitas contribuições fantásticas no pipeline que agora estão aparecendo no Xamarin.Forms 4.4.0. Confira essas grandes melhorias de 34 de seus colegas desenvolvedores. Os destaques incluem:

  • Use tamanhos nomeados com FontImageSource - @ tuyen-vuduc
  • Escalando métodos de animação ScaleXTo e ScaleYTo - @ sthewissen
  • Espaçamento entre letras - @ KSemenenko
  • Alinhamento do texto do espaço reservado - @ krdmllr

Introdução ao Xamarin.Forms 4.4 hoje


Para iniciar o Xamarin.Forms 4.4, atualize ou instale a partir do seu gerenciador de pacotes NuGet favorito. A transição da 4.3.0 é suave. Se você estiver atualizando de uma versão anterior, observe que o Xamarin.Forms e o Xamarin.Essentials agora dependem do Suporte Android 28.0.0.3. Portanto, convém atualizá-las juntamente com outros pacotes usados ​​que possam depender das bibliotecas do Suporte Android.

Certifique-se de ativar os novos recursos de visualização usando SetFlags se desejar usá-los. Para fazer isso globalmente em todas as plataformas da sua solução, adicione o seguinte no App.xaml.cs :

 public App() {    InitializeComponent();    Device.SetFlags(new[] {        "CarouselView_Experimental",        "IndicatorView_Experimental",        "SwipeView_Experimental"    } );    MainPage = new AppShell(); } 

Estaremos assistindo ao GitHub seus comentários sobre esses controles de visualização entre agora e nossa próxima versão, 4.5, quando esperamos movê-los rapidamente para fora desse estado de visualização.

Source: https://habr.com/ru/post/pt480038/


All Articles