Usar el widget Hero con multiples widgets de origen
Para usar el widget hero con multiples elementos (listas) usar variables en en lugar de texto "hardcodeado".
Modelo a usar para almacenar la etiqueta de Hero
class Media {
int id;
String image;
String name;
Media(this.id, this.image, this.name);
}
Widget con lista de multiples elementos hero.
final List<Media> _items = [
Media(1, "assets/poster1.jpg", "Blade Runner"),
Media(2, "assets/poster2.jpg", "Avengers"),
];
/// ...
body: ListView(
children: <Widget>[
_listItem(context, _items[0]),
_listItem(context, _items[1]),
],
);
Widget _listItem(BuildContext context, item) {
/// ...
leading: Hero(
tag: item.id,
child: Image.asset(item.image),
),
/// ...
}
Widget vista de detalle de hero.
final Media media;
/// ...
body: Hero(
tag: media.id,
child: Image.asset(
media.image,
width: MediaQuery.of(context).size.width,
fit: BoxFit.cover,
),
),