Flutter - Lista básica com ListView - I
Hoje veremos como podemos apresentar uma lista de dados usando o widget ListView do Flutter. |
Exibir uma lista de dados é uma das tarefas básicas em aplicativos para celulares, e, o Flutter inclui o Widget ListView que torna muito fácil realizar esta tarefa.
Se você não conhece o Flutter veja o meu artigo : Flutter - Primeiros contatos e impressões
O Widget ListView é uma lista rolável de widgets organizados linearmente, sendo um dos widget de rolagem mais usado.
Ele exibe seus filhos um após o outro na direção da rolagem; sendo que no eixo cruzado, os filhos são obrigadas a preencher o ListView.
Se não for nulo, o itemExtent força os filhos a ter a determinada extensão na direção de rolagem. A especificação de um itemExtent é mais eficiente do que permitir que os filhos determinem sua própria extensão, pois o mecanismo de rolagem pode usar o conhecimento prévio da extensão dos filhos para economizar trabalho, por exemplo, quando a posição de rolagem muda drasticamente.
Existem quatro
opções para construir um ListView:
1- O construtor padrão recebe uma List<Widget>
explícita de filhos. Esse construtor é apropriado para exibições de lista com um
pequeno número de filhos, pois a construção da Lista requer trabalho para cada
filho que possa ser exibido na lista, em vez de apenas os filhos que estão
realmente visíveis.
2- O construtor ListView.builder usa um
IndexedWidgetBuilder, que cria os filhos sob
demanda. Esse construtor é apropriado para exibições de lista com um número
grande (ou infinito) de filhos, porque o construtor é chamado apenas para
aqueles filhos que estão realmente visíveis.
3- O construtor ListView.separated usa dois
IndexedWidgetBuilders: o
itemBuilder cria itens filhos sob demanda, e o
separatorBuilder também cria filhos separadores que aparecem entre os
itens filhos. Esse construtor é apropriado para exibições de lista com um número
fixo de filhos.
4- O construtor ListView.custom usa um
SliverChildDelegate, que permite personalizar
aspectos adicionais do modelo filho. Por exemplo, um
SliverChildDelegate pode controlar o algoritmo usado para estimar o
tamanho de filhos que não estão realmente visíveis.
Criando um ListView
padrão
Vamos usar o construtor ListView padrão que é perfeito para criar listas que contêm apenas alguns itens. Usaremos também o Widget ListTile integrado, para dar aos nossos itens uma estrutura visual.
A seguir a estrutura básica do código usado para criar uma lista com 3 itens:
ListView(
children: <Widget>[
ListTile(
leading: Icon(Icons.map),
title: Text('Mapa'),
),
ListTile(
leading: Icon(Icons.photo_album),
title: Text('Album'),
),
ListTile(
leading: Icon(Icons.phone),
title: Text('Fone'),
),
],
);
|
Um ListTile contém de uma a três linhas de texto, opcionalmente flanqueadas por ícones ou outros widgets, como caixas de seleção. Os ícones ou outros widgets para um ListTile são definidos usando os parâmetros leading e trailing.
Criando o projeto Flutter
No Visual Studio Code tecle CTRL+ SHIFT+P para abrir a paleta de comandos e a seguir selecione a opção : Fluter:New Project
A seguir informe o nome do projeto : flutter_lista1
e tecle ENTER
Na janela de
diálogo a seguir selecione a pasta onde o projeto vai ser salvo e clique em :
Select a folder to create the project in
O Flutter vai criar um projeto padrão onde todo o código da aplicação vai estar no arquivo main.dart dentro da pasta lib do projeto.
Abra o arquivo main.dart e substitua o código gerado por padrão pelo código abaixo:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final title = 'Lista Básica';
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: ListView(
children: <Widget>[
ListTile(
leading: Icon(Icons.map),
title: Text('Mapa'),
),
ListTile(
leading: Icon(Icons.photo_album),
title: Text('Álbum'),
),
ListTile(
leading: Icon(Icons.phone),
title: Text('Fone'),
),
],
),
),
);
}
}
|
O construtor padrão ListView funciona bem para listas pequenas. Se quisermos trabalhar com listas que contenham o grande número de itens, é melhor usar o construtor ListView.builder.
Estamos usando o widget Scaffold que implementa a estrutura de layout visual de Material Design (MaterialApp), defindindo um appBar e um body. No body definimos o ListView usando como filhos(chilren) o widget ListTile com um ícone eum texto.
Para executar, no VS Code, no modo Debug, pressione F5 ou na janela de comandos (cmd), posicione-se na pasta do projeto e digite o comando: Flutter run
A figura acima mostra o resultado obtido.
No próxima parte do artigo veremos como criar um ListView Horizontal.
"Todas as
coisas são puras para os puros, mas nada é puro para os contaminados e infiéis;
antes o seu entendimento e consciência estão contaminados.
Confessam que conhecem a Deus, mas negam-no com as obras, sendo abomináveis, e
desobedientes, e reprovados para toda a boa obra."
Tito 1:15,16
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET