【Flutter】Flutter異常:There are multiple heroes that share the same tag within a subtree.

    項目啓動過程中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),
            ),
          )
...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章