O X do Xamarin Forms — FlowListView, a ListView sem limites !

Fala galera,

tudo blz?

ListView é um controle que hoje esta praticamente em todos os apps que precisamos desenvolver.

Se formos começar a falar da ListView e Xamarin.Forms , vai ter leitura para caramba… Só falando de implementações e a discussão de suas limitações.

As vezes precisamos criar novas funcionalidades para o ListView , implementando em cima de necessidades que hoje a mesma não atende (Sugestão de leitura : Multi-Select ListView ).

E as vezes aparecem seres enviados de outras dimensões que criam controles tão fodas baseados em ListView, que você nem acredita. Este é o caso do FlowListView , a ListView que suporta colunas como se fosse um Grid.

Imagine assim , quero fazer uma interface parecida com a de login do NetFlix (Dica: Interfaces com Xamarin.Forms ) :

A principio vamos pensar em um listview carregando apenas 2 itens por célula, calcular os itens e montar os templates de forma manual (ufa em ?). É ai que entra o FlowListView, com apenas algumas configurações podemos fazer o mesmo.. Duvida? Bora!

Configurando o controle

Vamos ao Nuget e adicionar o pacote DLToolkit.Forms.Controls.FlowListView ao nosso projeto compartilhado:

agora basta inicializar o componente FlowListView.Init(); no App.xaml.cs :

Pronto! Sério, pronto mesmo… agora é só usarmos :D

Utilizando o Controle:

Vamos criar um Model Beeeeeeeeem simples de um profile :

Em seguida em nossa ViewModel, uma lista de Profiles com valores pré definidos:

Em nosso Xaml, vamos declarar o namespace : xmlns:flv=”clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView” e fazer a Seguinte implementação cheia das frescuras visuais :

Rodando :

Muito loco em?

Basicamente a "Magia" esta nos atributos do FlowListView ,neste caso eu defini o FlowColumnCount para alinhar o conteúdo em 2 colunas , e o resto ele fez pra mim. Mesmo que eu tenha feito o resto do layout com Grid, o mais difícil ja esta pronto graças ao Controle!

Por exemplo, caso eu precise criar uma exibição de Anexos :

Existem diversas implementações que o controle nos permite :

Também podemos implementar um comando para cada item simplesmente adicionado a propriedade FlowItemTappedCommand=”{Binding MeuCommand}”

Como eu disse com o FlowListView, o Listview não tem limites :D

Caso queira baixar o código utilizado no Exemplo: Clique aqui.

Quer ver como fazer um App igual ao NetFlix : Clique aqui.

Quer ver outros artigos sobre Xamarin ? Clique aqui.

Espero ter ajudado!

Aquele abraço!