Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Victor Moreira
Victor Moreira

Posted on

     

Entendendo GridView com Flutter

Imagine que você precise criar uma tela de exibição de items como fotos ou cards de comidas como os apps de delivery, pois então com certeza o GridView irá lher ajudar e muito na construção.

GridView Capa

GridView.count

A maneira mais simples de implementarmos o GridView é através do construtorGridView.count(). Com ele é possível já termos uma exibição de grid, como o código de exemplo abaixo:

GridView.count(      crossAxisCount: 2,      children: List.generate(10, (index) {        return Container(          child: Card(            color: Colors.grey,          ),        );      }),    );
Enter fullscreen modeExit fullscreen mode

Neste exemplo vemos a presença de um atributo chamadocrossAxisCount esse atributo delimita quantas colunas teremos na grid, que no exemplo são duas.

Nochildren estamos passando oList.generate este o qual sua função é replicar as grades que estão sendo demonstradas, neste exemplo colocamos 10 grades, que irão apresentar o nossocontainer , conforme exemplo ilustrado abaixo:

GridView Count Exemplo

GridView.builder

O GridView.builder é utilizado para requisições de itens em API, no qual não se temos ao certo o número exato de retorno. Através dele podemos ter uma melhor performance em nossas aplicações, pois ele vai trabalhar sob demanda.

Um dos atributos do builder é ogridDelegate que é responsável pelo controle de nossa grid, nele podemos passar a instância doSliverGridDelegateWithFixedCrossAxisCount, que neste caso vamos fixar a nossa grade em 2 colunas passandocrossAxisCount:2.

Os outros dois atributos do nosso builder que são importantes é oitemCount que vamos passar a quantidade de itens que nossa requisição a API trouxe, e oitemBuilder que é onde vamos passar os itens para serem apresentados em widget.

Abaixo exemplo de um código de umGridView.builder recebendo itens daAPI Dog.

GridView.builder(  padding: EdgeInsets.all(12),  gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(               crossAxisCount: 2),               itemCount:_dogAPIStore.dogAPI.message.length,               itemBuilder: (context, index) {                   return Column(                      children: [                        DogItem(                         imageDog:_dogAPIStore.dogAPI.message[index]                                  .toString(),                           heigth: 0.2,                           width: 0.4,                         ),                       ],);}),
Enter fullscreen modeExit fullscreen mode

O widgetDogItem será o que representará cada item vindo da API, nele criamos um atributo para receber a imagem, e os outros dois atributos para setar a altura e largura.

Exemplo em execução:

GridView builder Exemplo

Top comments(1)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
bernardinaquintas profile image
Bernardina Quintas
Developer fornt-end mobile and Web
  • Joined

Não tem uma forma de criar uma Gridview em uma sequência de uma card em cima do outro.?

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Frontend Developer
  • Joined

Trending onDEV CommunityHot

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp