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,
  ),
),