Parte 5 - Navegação
Precisamos de uma estrutura para armazenar as atrações que foram favoritadas pelo usuário.
Neste caso, uma lista resolve o problema. Pois assim, adicionamos e removemos os items desta lista, de acordo com a açao do usuário (favoritar / remover).
final List<Atracao> _listaFavoritos = [];
return Scaffold(
...
body: ListView.builder(
itemCount: listaAtracoes.length,
itemBuilder: (context, index) {
final isFavorito = _listaFavoritos.contains(listaAtracoes[index]);
return ListTile(
...
trailing: IconButton(
onPressed: () {
setState(() {
if (isFavorito) {
_listaFavoritos.remove(listaAtracoes[index]);
} else {
_listaFavoritos.add(listaAtracoes[index]);
}
});
},
icon: isFavorito
? const Icon(Icons.favorite, color: Colors.red)
: const Icon(Icons.favorite_border),
);