使用颤动中的手势检测器导航到不同页面时,黑屏颤动。说多个英雄共享同一个标签
Black Screen in flutter when navigated to different page using gesturedetector in flutter. Says multiple heros share same tag
我正在开发一个应用程序,其中主页 ui 看起来像网格,当点击网格的单个图块时,用户将导航到另一个页面。但每当它发生时,就会出现错误。这是不查看语法错误的代码。
我没有使用任何英雄部件。虽然我得到这个错误..
body: Container(
child: GridView.count(
crossAxisCount: 2,
children: <Widget>[
Card(
child: InkWell(
onTap: (){
print('tapped pnemonia');
Navigator.push(context, MaterialPageRoute(builder: (context)=> diagnosis()));
},
child: Center(
child: Column(
children: <Widget>[
Text('Pnemonia'),
Image.asset('assets/images/lungs.jpg'),
],
),
),
),
),
],
),
),
);
}
}
输出错误如下:
I/flutter ( 6827): ├# Here is the subtree for one of the offending heroes: Hero
I/flutter ( 6827):
I/flutter ( 6827): When the exception was thrown, this was the stack:
I/flutter ( 6827): #0 Hero._allHeroesFor.inviteHero.<anonymous closure> (package:flutter/src/widgets/heroes.dart:265:11)
I/flutter ( 6827): #1 Hero._allHeroesFor.inviteHero (package:flutter/src/widgets/heroes.dart:276:8)
I/flutter ( 6827): #2 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:295:21)
I/flutter ( 6827): #3 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #4 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #5 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #6 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #7 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #8 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #9 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #10 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #11 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #12 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #13 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #14 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #15 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #16 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #17 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #18 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #19 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #20 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #21 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #22 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #23 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #24 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #25 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #26 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #27 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #28 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #30 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #31 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #32 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #33 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #34 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #35 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #36 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #37 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #38 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #39 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #40 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #41 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #42 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #43 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #44 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #45 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #46 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #47 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #48 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): (elided 3 frames from package dart:async)
I/flutter ( 6827):
I/flutter ( 6827): Another exception was thrown: There are multiple heroes that share the same tag within a subtree.
这是i 运行 build时出现的错误。
当您尝试在一个小部件中使用多个 FloatingActionButtons
时,可能会出现错误 multiple heroes on one route can't have the same tag
。
根据 FloatingActionButton
中 heroTag
的文档:
The tag to apply to the button's Hero widget.
Defaults to a tag that matches other floating action buttons.
Set this to null explicitly if you don't want the floating action
button to have a hero tag.
If this is not explicitly set, then there can only be one
FloatingActionButton per route (that is, per screen), since otherwise
there would be a tag conflict (multiple heroes on one route can't have
the same tag). The material design specification recommends only using
one floating action button per screen.
要解决您的异常并在单个小部件中使用多个 FAB,请确保在 FAB 中为 heroTag
传递 Unique
object/value/string。
注意:如果您不将值传递给 heroTag
,它会创建一个默认值 <default FloatingActionButton tag>
。这对所有 FAB 都是通用的。因此,如果他们在同一个小部件中,他们将使用重复的 heroTag
抛出异常。
如果您有任何疑问,请告诉我。
可能已经晚了,但是,如果您仍然感到困惑。我通过在 FloatingActionButtons.
中手动添加新属性 heroTag
解决了我的问题
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FloatingActionButton(
heroTag: 1, // put something different with this
onPressed: (){
counterBloc.add(CounterEvent.increment);
},
child: Icon(Icons.add),
),
FloatingActionButton(
heroTag: 2, // put something different with this
onPressed: (){
counterBloc.add(CounterEvent.decrement);
},
child: Icon(Icons.remove),
),
],
);
}
希望对某人有所帮助
我正在开发一个应用程序,其中主页 ui 看起来像网格,当点击网格的单个图块时,用户将导航到另一个页面。但每当它发生时,就会出现错误。这是不查看语法错误的代码。 我没有使用任何英雄部件。虽然我得到这个错误..
body: Container(
child: GridView.count(
crossAxisCount: 2,
children: <Widget>[
Card(
child: InkWell(
onTap: (){
print('tapped pnemonia');
Navigator.push(context, MaterialPageRoute(builder: (context)=> diagnosis()));
},
child: Center(
child: Column(
children: <Widget>[
Text('Pnemonia'),
Image.asset('assets/images/lungs.jpg'),
],
),
),
),
),
],
),
),
);
}
}
输出错误如下:
I/flutter ( 6827): ├# Here is the subtree for one of the offending heroes: Hero
I/flutter ( 6827):
I/flutter ( 6827): When the exception was thrown, this was the stack:
I/flutter ( 6827): #0 Hero._allHeroesFor.inviteHero.<anonymous closure> (package:flutter/src/widgets/heroes.dart:265:11)
I/flutter ( 6827): #1 Hero._allHeroesFor.inviteHero (package:flutter/src/widgets/heroes.dart:276:8)
I/flutter ( 6827): #2 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:295:21)
I/flutter ( 6827): #3 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #4 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #5 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #6 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #7 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #8 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #9 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #10 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #11 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #12 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #13 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #14 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #15 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #16 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #17 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #18 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #19 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #20 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #21 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #22 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #23 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #24 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #25 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #26 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #27 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5534:16)
I/flutter ( 6827): #28 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #30 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #31 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #32 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #33 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #34 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #35 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #36 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #37 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #38 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #39 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:5433:14)
I/flutter ( 6827): #40 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #41 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #42 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #43 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #44 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #45 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #46 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): #47 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4272:14)
I/flutter ( 6827): #48 Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:308:15)
I/flutter ( 6827): (elided 3 frames from package dart:async)
I/flutter ( 6827):
I/flutter ( 6827): Another exception was thrown: There are multiple heroes that share the same tag within a subtree.
这是i 运行 build时出现的错误。
当您尝试在一个小部件中使用多个 FloatingActionButtons
时,可能会出现错误 multiple heroes on one route can't have the same tag
。
根据 FloatingActionButton
中 heroTag
的文档:
The tag to apply to the button's Hero widget.
Defaults to a tag that matches other floating action buttons.
Set this to null explicitly if you don't want the floating action button to have a hero tag.
If this is not explicitly set, then there can only be one FloatingActionButton per route (that is, per screen), since otherwise there would be a tag conflict (multiple heroes on one route can't have the same tag). The material design specification recommends only using one floating action button per screen.
要解决您的异常并在单个小部件中使用多个 FAB,请确保在 FAB 中为 heroTag
传递 Unique
object/value/string。
注意:如果您不将值传递给 heroTag
,它会创建一个默认值 <default FloatingActionButton tag>
。这对所有 FAB 都是通用的。因此,如果他们在同一个小部件中,他们将使用重复的 heroTag
抛出异常。
如果您有任何疑问,请告诉我。
可能已经晚了,但是,如果您仍然感到困惑。我通过在 FloatingActionButtons.
中手动添加新属性heroTag
解决了我的问题
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FloatingActionButton(
heroTag: 1, // put something different with this
onPressed: (){
counterBloc.add(CounterEvent.increment);
},
child: Icon(Icons.add),
),
FloatingActionButton(
heroTag: 2, // put something different with this
onPressed: (){
counterBloc.add(CounterEvent.decrement);
},
child: Icon(Icons.remove),
),
],
);
}
希望对某人有所帮助