项目启动过程中Flutter报错:
flutter: The following assertion was thrown during a scheduler callback: flutter: There are multiple heroes that share the same tag within a subtree. flutter: Within each subtree for which heroes are to be animated (i.e. a PageRoute subtree), each Hero must flutter: have a unique non-null tag. flutter: In this case, multiple heroes had the following tag: <default FloatingActionButton tag>意思是在子树中有多个Hero共享同一个标签,每个Hero对象的tag必须是惟一的。并且指出了是在FloatingActionButton中的tag存在冲突。 最后发现代码中的FloatingActionButton没有指定heroTag。为FloatingActionButton添加heroTag属性,问题解决。
... Positioned( bottom: 30, right: 10, child: FloatingActionButton( heroTag: 'remove', onPressed: () { int data = _data.last; int index = _data.length - 1; _data.remove(data); _listKey.currentState.removeItem(index, (context, animation) => myListItem(data.toString(), animation)); }, child: Icon(Icons.remove), ), ), Positioned( bottom: 30, right: 70, child: FloatingActionButton( heroTag: 'add', onPressed: () { int num = Random().nextInt(100); _data.add(num); int index = _data.lastIndexOf(num); _listKey.currentState.insertItem(index); }, child: Icon(Icons.add), ), ) ...