ListView.builder en Flutter: ejercicio resuelto
Si buscas ListView.builder en Flutter, este ejercicio muestra como pintar listas largas sin penalizar rendimiento.
Enunciado
Crea una pantalla con una lista de 100 elementos y muestra el índice en cada fila.
Solución en Flutter
import 'package:flutter/material.dart';
void main() => runApp(const MaterialApp(home: ListPage()));
class ListPage extends StatelessWidget {
const ListPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('ListView.builder')),
body: ListView.builder(
itemCount: 100,
itemBuilder: (context, index) {
return ListTile(
leading: CircleAvatar(child: Text('${index + 1}')),
title: Text('Elemento ${index + 1}'),
subtitle: const Text('Renderizado eficiente'),
);
},
),
);
}
}Resultado esperado
Una lista fluida que solo crea en memoria los widgets visibles en pantalla.
Errores frecuentes
- Usar
ListView(children: ...)para listas muy largas. - No definir
itemCount. - Cargar logica pesada dentro de
itemBuilder.
Aplicación práctica
Este patrón se usa en feeds, listados de productos, chat y resultados de búsqueda.
Siguiente ejercicio recomendado
- Consumo de API con http en Flutter: ejercicio resuelto
- Firebase Auth login en Flutter: ejercicio resuelto con email y password
- BottomNavigationBar en Flutter: ejercicio resuelto con IndexedStack
- Todos los ejercicios Flutter
Práctica guiada y siguiente paso
- Más ejercicios de Flutter
- Ejercicios C para reforzar fundamentos
- Programación en C en 100 ejercicios resueltos
- Ver en Amazon (incluido en Kindle Unlimited)
- Suscribirte a la newsletter
FAQ
¿Cuándo conviene ListView.builder frente a ListView normal?
Cuándo tienes listas medianas o largas y quieres mejor rendimiento.
¿Se puede combinar con paginacion?
Sí. Es una base común para scroll infinito y carga por bloques.
¿Este patrón sirve en produccion?
Sí. Es uno de los widgets más usados en apps Flutter reales.