Uma lista que rola
Parte da seção Listas e telas do Journey de Flutter da Coddy. Lição 1 de 33.
Uma Column tem a altura de tudo o que está dentro dela. Quando essa altura é maior que a tela, a parte de baixo é cortada, e o Flutter pinta listras amarelas e pretas onde há transbordamento.
Uma ListView recebe os mesmos children: que uma Column, mas permite rolar. Arraste-a para cima no celular e o restante da lista aparecerá.
ListView(
children: [
Text('One'),
Text('Two'),
Text('Three'),
],
)Uma ListView preenche o espaço que lhe é dado e sempre começa no topo, então ela não tem mainAxisSize nem mainAxisAlignment.
Desafio
FácilO app lista 20 cidades em uma Column, e a maioria delas não cabe: procure as listras na parte inferior do celular. Altere a Column para uma ListView para poder rolar para baixo até Wellington, a última cidade.
Experimente você mesmo
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final List<String> cities = [
'Amsterdam',
'Bangkok',
'Cairo',
'Dublin',
'Edinburgh',
'Florence',
'Geneva',
'Havana',
'Istanbul',
'Jakarta',
'Kyoto',
'Lima',
'Madrid',
'Nairobi',
'Oslo',
'Paris',
'Quito',
'Rome',
'Seoul',
'Wellington',
];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Cities')),
body: Column(
children: [
for (String city in cities)
Padding(
padding: const EdgeInsets.all(16),
child: Text(city, style: const TextStyle(fontSize: 24)),
),
],
),
),
);
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Listas e telas
Pratique por conta própria: Compilador de Flutter online