GridView VS GridLayout em aplicativos Android


212

Eu tenho que usar uma grade para implementar o Photo Browser no Android. Então, eu gostaria de saber a diferença entre GridView e GridLayout .

Para que eu escolha o caminho certo.

Atualmente, estou usando o GridView para exibir as imagens dinamicamente.

Respostas:


264

Um GridView é um ViewGroup que exibe itens na grade de rolagem bidimensional. Os itens na grade vêm do ListAdapter associado a esta exibição.

É isso que você deseja usar (continue usando). Como um GridView obtém seus dados de um ListAdapter, os únicos dados carregados na memória serão os exibidos na tela. Os GridViews, assim como os ListViews, reutilizam e reciclam suas visualizações para melhorar o desempenho.

Enquanto um GridLayout é um layout que coloca seus filhos em uma grade retangular.

Foi introduzido na API nível 14 e foi recentemente suportado na Biblioteca de suporte. Seu principal objetivo é resolver problemas de alinhamento e desempenho em outros layouts. Confira este tutorial se você quiser saber mais sobre o GridLayout.


15
GridLayout também é um ViewGroup.
Dzmitry Lazerka

22
Eu nunca disse que não era. Eu estava apenas enfatizando o fato de que é um layout.
Benito Bertoli

16
@ Laki Um cenário seria se você deseja carregar um monte de imagens em uma grade como a formação. O uso do GridView carregaria apenas na memória as visualizações visíveis na tela. Considerando que, se você usar um GridLayout, precisará carregar todas as imagens que serão exibidas a qualquer momento, causando um erro de memória excedente na maioria dos dispositivos.
BigBen3216

15
Parece que a diferença básica é que o GridView pode acomodar apenas a largura uniforme da coluna. Layout da grade permite que você tenha conteúdo abrangendo 2 ou mais colunas. A disposição da grade permite projetar telas com conteúdo abrangendo tamanhos das colunas diferentes
Yasir

58
@laki Cenário um: Desenhe uma calculadora, GridLayout. Cenário dois: desenhe uma galeria, GridView.
Mario Velasco
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.