Xamarin.Forms Introdução ao CollectionView
CollectionView
é uma exibição para apresentar listas de dados usando especificações de layout diferentes. Ele tem como objetivo fornecer uma alternativa mais flexível e com desempenho para ListView
. Por exemplo, as capturas de tela a seguir mostram um CollectionView
que usa uma grade vertical de duas colunas e que permite várias seleções:
CollectionView
deve ser usado para apresentar listas de dados que exigem rolagem ou seleção. Um layout associável pode ser usado quando os dados a serem exibidos não exigem rolagem ou seleção. Para obter mais informações, consulte Layouts associáveis em Xamarin.Forms.
CollectionView
está disponível a partir da Xamarin.Forms 4.3.
Importante
CollectionView
está disponível no iOS e no Android, mas só está parcialmente disponível no Plataforma Universal do Windows.
Diferenças de CollectionView e ListView
Embora as CollectionView
APIs e ListView
sejam semelhantes, há algumas diferenças notáveis:
CollectionView
tem um modelo de layout flexível, que permite que os dados sejam apresentados vertical ou horizontalmente, em uma lista ou uma grade.CollectionView
dá suporte a seleção única e múltipla.CollectionView
não tem nenhum conceito de células. Em vez disso, um modelo de dados é usado para definir a aparência de cada item de dados na lista.CollectionView
utiliza automaticamente a virtualização fornecida pelos controles nativos subjacentes.CollectionView
reduz a superfície de API deListView
. Muitas propriedades e eventos deListView
não estão presentes emCollectionView
.CollectionView
não inclui separadores internos.CollectionView
gerará uma exceção se elaItemsSource
for atualizada do thread da interface do usuário.
Mover de ListView para CollectionView
ListView
as implementações em aplicativos existentes Xamarin.Forms podem ser migradas para CollectionView
implementações com a ajuda da tabela a seguir:
Conceito | API de ListView | CollectionView |
---|---|---|
Dados | ItemsSource |
Um CollectionView é preenchido com dados definindo sua ItemsSource propriedade. Para obter mais informações, confira Preencher um CollectionView com dados. |
Aparência do item | ItemTemplate |
A aparência de cada item em um CollectionView pode ser definida definindo a ItemTemplate propriedade como um DataTemplate . Para obter mais informações, consulte Definir aparência do item. |
Células | TextCell , ImageCell , ViewCell |
CollectionView não tem nenhum conceito de células e, portanto, nenhum conceito de indicadores de divulgação. Em vez disso, um modelo de dados é usado para definir a aparência de cada item de dados na lista. |
Separadores de linha | SeparatorColor , SeparatorVisibility |
CollectionView não inclui separadores internos. Eles podem ser fornecidos, se desejado, no modelo de item. |
Seleção | SelectionMode , SelectedItem |
CollectionView dá suporte a seleção única e múltipla. Para obter mais informações, consulte Xamarin.Forms CollectionView Selection. |
Altura da linha | HasUnevenRows , RowHeight |
Em um CollectionView , a altura da linha de cada item é determinada pela ItemSizingStrategy propriedade . Para obter mais informações, consulte Dimensionamento de itens. |
Cache | CachingStrategy |
CollectionView usa automaticamente a virtualização fornecida pelos controles nativos subjacentes. |
Cabeçalhos e rodapés | Header , HeaderElement , HeaderTemplate , Footer , FooterElement , FooterTemplate |
CollectionView pode apresentar um cabeçalho e rodapé que rolam com os itens na lista, por meio das Header propriedades , Footer , HeaderTemplate e FooterTemplate . Para obter mais informações, consulte Cabeçalhos e rodapés. |
Agrupamento | GroupDisplayBinding , GroupHeaderTemplate , GroupShortNameBinding , IsGroupingEnabled |
CollectionView exibe dados agrupados corretamente definindo sua IsGrouped propriedade como true . Cabeçalhos de grupo e rodapés de grupo podem ser personalizados definindo as GroupHeaderTemplate propriedades e GroupFooterTemplate como DataTemplate objetos. Para obter mais informações, consulte Xamarin.Forms Agrupamento CollectionView. |
Puxar para atualizar | IsPullToRefreshEnabled , IsRefreshing , RefreshAllowed , RefreshCommand , RefreshControlColor , BeginRefresh() , EndRefresh() |
Há suporte para o pull para atualizar a funcionalidade definindo um CollectionView como o filho de um RefreshView . Para obter mais informações, consulte Pull para atualizar. |
Itens de menu de contexto | ContextActions |
Há suporte para itens de menu de contexto definindo um SwipeView como o modo de exibição raiz no DataTemplate que define a aparência de cada item de dados no CollectionView . Para obter mais informações, confira Menus de contexto. |
Rolagem | ScrollTo() |
CollectionView define métodos ScrollTo , que rolam itens para exibição. Para obter mais informações, consulte Rolagem. |