項目啓動過程中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),
),
)
...