Вам нужен один и тот же tag
для анимации вашего героя.
Попробуйте использовать один и тот же тег для обоих виджетов героя. В приведенном ниже примере я использовал тег back
.
Попробуйте приведенный ниже код, он отлично работает:
ПЕРВЫЙ ЭКРАН
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10.0, vertical: 6.0),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
PageRouteBuilder(
pageBuilder: (context, a, b) =>
DetailsOfNewBikes(value: item)));
},
child: Hero(
tag:'back',
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(
item.bikeimage,
),
fit: BoxFit.cover,
colorFilter: ColorFilter.mode(
Colors.black26,
BlendMode.darken,
),
),
borderRadius: BorderRadius.circular(10.0),
color: Colors.grey,
),
),
)))
ВТОРОЙ ЭКРАН
child: new Column(
children: <Widget>[
Hero(
tag:'back',
child: Container(
child: Padding(
child: Image.network('${widget.value.bikeimage}'),
padding: EdgeInsets.symmetric(horizontal: 0.0),
),
),
),
SizedBox(
height: 5,
),
],
),
Чтобы узнать больше об анимации героев, перейдите по ссылке ниже:
Анимация героев во флаттере
Надеюсь, это поможет.