Flutter - Lista básica com ListView - II
Hoje vamos continuar a apresentar o widget ListView do Flutter para criar listas básicas com poucos elementos. |
Se você não conhece o Flutter veja o meu artigo : Flutter - Primeiros contatos e impressões
Continuando a primeira parte do artigo hoje vamos criar uma lista horizontal usando o widget ListView do Flutter.
Criando uma lista horizontal com ListView
Vamos usar o construtor ListView padrão que é perfeito para criar listas que contêm apenas alguns itens, e, desta vez vamos criar uma lista que rola horizontalmente.
Para fazer isso vamos usar a propriedade scrollDirection que define o eixo ao longo do qual a lista rola. O valor padrão é Axis.vertical.
A seguir a estrutura básica do código usado para criar uma lista com cores que rola horizontalmente:
ListView(
// Aqui definimos a rolagem horizontal.
scrollDirection: Axis.horizontal,
children: <Widget>[
Container(
width: 160.0,
color: Colors.red,
),
Container(
width: 160.0,
color: Colors.blue,
),
Container(
width: 160.0,
color: Colors.green,
),
Container(
width: 160.0,
color: Colors.yellow,
),
Container(
width: 160.0,
color: Colors.orange,
),
],
)
|
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_lista
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 Horizontal';
return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Container(
margin: EdgeInsets.symmetric(vertical: 20.0),
height: 200.0,
child: ListView(
scrollDirection: Axis.horizontal,
children: <Widget>[
Container(
width: 160.0,
color: Colors.red,
),
Container(
width: 160.0,
color: Colors.blue,
),
Container(
width: 160.0,
color: Colors.green,
),
Container(
width: 160.0,
color: Colors.yellow,
),
Container(
width: 160.0,
color: Colors.orange,
),
],
),
),
),
);
}
}
|
Estamos definindo um Container cujo filho é um ListView com scrollDirection igual a Axis.Horizontal e no ListView definimos como filhos (children) cinco widgets Container onde definimos a largura(width) e a cor.
Ao lado temos a figura com o resultado obtido na execução.
Vejamos outro exemplo onde agora vamos exibir strings em uma lista horizontal.
Crie outro projeto Flutter chamado flutter_lista_horizontal;
Vamos abrir o arquivo main.dart e aproveitar a definição da classe MyApp alterando o seu código e removendo o restante do código.
O código do arquivo main.dart deve ficar assim:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter ListView',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: ListViewHorizontal(),
);
}
}
|
Usamos o MaterialApp e definimo o titulo, o tema e no home definimos o widget ListViewHorizontal que iremos criar a seguir.
Ainda no arquivo main.dart inclua a seguir o código do widget ListViewHorizontal conforme mostrato a seguir:
class ListViewHorizontal extends StatelessWidget {
final List<String> _alfabeto = [
"A","B","C","D","E","F","G","H","I","J","K",
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Exemplo de ListView Horizontal'),
),
body: Center(
child: ListView(
padding: EdgeInsets.all(10.0),
scrollDirection: Axis.horizontal,
children: _alfabeto
.map((data) => CircleAvatar(
minRadius: 50.0,
backgroundColor: Colors.red,
child: Text(data,
style: TextStyle(
color: Colors.white,
fontSize: 19.0,
)),
))
.toList(),
),
),
);
}
}
|
A widget ListViewHorizontal estende StatelessWidget e define um Scaffold com AppBar.
Inicialmente definimos uma lista de strings chamada _alfabeto com algumas strings.
Usamos a widget Center para centralizar a exibição e definimos como seu filho um ListView.
Incluimos um widget padding onde definimos um preenchimento e definimos o scroll horizontal.
Definimos a lista de strings _alfabeto como filhos da ListView e usamos o método map da lista (list.map) que retorna um novo Iterable com elementos que são criados chamando f em cada elemento deste Iterable em ordem de iteração.
Aqui estamos aplicando o widget CircleAvatar que é um círculo que representa um usuário sendo normalmente usado com a imagem de perfil de um usuário ou, na ausência de tal imagem, as iniciais do usuário. Neste widget definimos o raio, a cor e um texto como filho com fonte e cor definidas.
Para executar, no VS Code, no modo Debug, pressione F5.
Na janela de comandos (cmd), posicione-se na pasta do projeto e digite o comando: Flutter run
Abaixo vemos o resultado obtido:
No próxima parte do artigo veremos como criar um ListView para exibir um grande número de itens.
Pegue o código do arquivo main.dart aqui : main_lista_horizontal.zip
"E, quanto
fizerdes por palavras ou por obras, fazei tudo em nome do Senhor Jesus, dando
por ele graças a Deus Pai."
Colossenses 3:17
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