import 'package:flutter/material.dart';
import 'package:ui_mvc/Rings.dart';
class Diamonds extends StatefulWidget {
@override
_DiamondsState createState() => _DiamondsState();
}
class _DiamondsState extends State<Diamonds> {
var dataList= [
{
"name": "A1",
"image":"assets/1.jpg" ,
"location": "Delhi",
},
{
"name": "A2",
"image": "assets/2.jpg" ,
"location": "Delhi",
},
{
"name": "A3",
"image": "assets/3.jpg" ,
"location": "Delhi",
},
{
"name": "A4",
"image": "assets/4.jpg" ,
"location": "Delhi",
},
{
"name": "A5",
"image": "assets/5.jpg" ,
"location": "Delhi",
},
];
@override
Widget build(BuildContext context) {
return GridView.builder(
scrollDirection: Axis.horizontal,
itemCount: dataList.length,
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 1),
itemBuilder: (BuildContext context,int index){
return SingleProd(
prodName: dataList[index]['name'],
prodImage: dataList[index]['image'],
prodLocation: dataList[index]['location'],
);
});
}
}
class SingleProd extends StatelessWidget {
final prodName;
final prodImage;
final prodLocation;
SingleProd({
this.prodName,
this.prodImage,
this.prodLocation,
});
@override
Widget build(BuildContext context) {
return Card(
child: Hero(
tag: prodName,
child: Material(
child: InkWell(
onTap: ()=>
Navigator.of(context).push(
new MaterialPageRoute(builder: (context)=> new Rings())
),
child: GridTile(
footer: Container(
color: Colors.white,
child: ListTile(
title: Text(
prodName,
textAlign: TextAlign.left,
),
subtitle: Text(
prodLocation,
textAlign: TextAlign.left,
),
),
),
child: Image.asset(
prodImage,
fit: BoxFit.fitHeight)
),
),
)
),
);
}
}
Итак, я пытаюсь отобразить горизонтальный список из 5 плиток. Я хочу, чтобы каждая плитка перенаправлялась на одну и ту же страницу (пока), поэтому я вызываю Rings (), которая определена на другой странице. А при нажатии на одну из плиток экран становится черным. Но он просто продолжает показывать мне эту ошибку : Следующее утверждение было выдано во время обратного вызова планировщика: Есть несколько героев, которые используют один и тот же тег в поддереве.
В каждом поддереве, для которого герои должны быть анимированы (т.е. поддерево PageRoute), каждый герой должен иметь уникальный ненулевой тег. В этом случае у нескольких героев был следующий тег: A
Вот поддерево одного из героев-нарушителей: Тег героя: Состояние: _HeroState # d0a27 Когда было создано исключение, это был стек:
0 Hero._allHeroesFor.inviteHero. (пакет: flutter / src / widgets / heroes.dart: 265: 11)
1 Hero._allHeroesFor.inviteHero (пакет: flutter / src / widgets / heroes.dart: 276: 8)
2 Hero._allHeroesFor.visitor (пакет: flutter / src / widgets / heroes.dart: 295: 21)
3 SingleChildRenderObjectElement.visitChildren (пакет: flutter / src / widgets / framework.dart: 5433: 14)
4 Hero._allHeroesFor.visitor (пакет: flutter / src / widgets / heroes.dart: 308: 15)