记录在Flutter 挣扎中遇到的小问题
1 Navigator Routes GestureDetector
问题1:
I/flutter (19058): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (19058): The following assertion was thrown building Setting(dirty, state: _SettingState#e1f3d):
I/flutter (19058): setState() or markNeedsBuild() called during build.
I/flutter (19058): This Overlay widget cannot be marked as needing to build because the framework is already in the
I/flutter (19058): process of building widgets. A widget can be marked as needing to be built during the build phase
I/flutter (19058): only if one of its ancestors is currently building. This exception is allowed because the framework
I/flutter (19058): builds parent widgets before children, which means a dirty descendant will always be built.
I/flutter (19058): Otherwise, the framework might not visit this widget during this build phase.
I/flutter (19058): The widget on which setState() or markNeedsBuild() was called was:
I/flutter (19058): Overlay-[LabeledGlobalKey#bc2d4]
I/flutter (19058): The widget which was currently being built when the offending call was made was:
I/flutter (19058): Setting
I/flutter (19058):
I/flutter (19058): When the exception was thrown, this was the stack:
I/flutter (19058): #0 Element.markNeedsBuild. (package:flutter/src/widgets/framework.dart:3670:11)
I/flutter (19058): #1 Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:3685:6)
I/flutter (19058): #2 State.setState (package:flutter/src/widgets/framework.dart:1161:14)
I/flutter (19058): #3 OverlayState.insertAll (package:flutter/src/widgets/overlay.dart:346:5)
I/flutter (19058): #4 OverlayRoute.install (package:flutter/src/widgets/routes.dart:43:24)
I/flutter (19058): #5 TransitionRoute.install (package:flutter/src/widgets/routes.dart:180:11)
I/flutter (19058): #6 ModalRoute.install (package:flutter/src/widgets/routes.dart:907:11)
I/flutter (19058): #7 NavigatorState.push (package:flutter/src/widgets/navigator.dart:1754:11)
I/flutter (19058): #8 NavigatorState.pushNamed (package:flutter/src/widgets/navigator.dart:1649:12)
I/flutter (19058): #9 Navigator.pushNamed (package:flutter/src/widgets/navigator.dart:889:34)
I/flutter (19058): #10 onClick (package:scc_etkq_app_flutter/routes/settingmodule/setting.dart:268:13)
I/flutter (19058): #11 _SettingState.build (package:scc_etkq_app_flutter/routes/settingmodule/setting.dart:251:26)
I/flutter (19058): #12 StatefulElement.build (package:flutter/src/widgets/framework.dart:4012:27)
I/flutter (19058): #13 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3924:15)
I/flutter (19058): #14 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #15 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #16 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #17 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #19 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #20 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #21 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #22 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #23 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #24 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #25 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #26 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #27 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #28 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #29 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #30 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #31 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #32 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #33 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #34 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #35 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #37 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #38 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #39 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #40 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #42 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #43 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #44 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #45 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #46 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #47 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #48 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #49 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #50 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #51 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #52 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #53 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #55 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #56 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #57 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #58 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #59 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #60 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #61 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #62 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #63 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #65 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #66 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #67 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #68 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #69 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #70 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #71 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #72 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #73 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #74 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #75 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #76 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #77 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #78 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #79 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #81 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #82 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #83 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #84 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #85 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #86 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
I/flutter (19058): #87 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #88 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #90 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #91 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #92 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #93 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #94 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #95 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #96 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #97 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #98 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #99 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #100 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #101 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #103 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #104 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
I/flutter (19058): #105 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
I/flutter (19058): #106 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
I/flutter (19058): #107 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
I/flutter (19058): #108 Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
I/flutter (19058): #109 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4875:32)
I/flutter (19058): #110 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5208:17)
I/flutter (19058): #111 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #112 _TheatreElement.update (package:flutter/src/widgets/overlay.dart:607:16)
I/flutter (19058): #113 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #114 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #115 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #116 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (19058): #117 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #119 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #120 ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
I/flutter (19058): #121 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:94:11)
I/flutter (19058): #122 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #123 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (19058): #124 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #125 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #126 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #127 StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
I/flutter (19058): #128 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #129 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (19058): #130 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #131 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
I/flutter (19058): #132 Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
I/flutter (19058): #133 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
I/flutter (19058): #134 Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
I/flutter (19058): #135 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2340:33)
I/flutter (19058): #136 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
I/flutter (19058): #137 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
I/flutter (19058): #138 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1016:15)
I/flutter (19058): #139 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:958:9)
I/flutter (19058): #140 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:874:5)
I/flutter (19058): #144 _invoke (dart:ui/hooks.dart:236:10)
I/flutter (19058): #145 _drawFrame (dart:ui/hooks.dart:194:3)
I/flutter (19058): (elided 3 frames from package dart:async)
I/flutter (19058): ════════════════════════════════════════════════════════════════════════════════════════════════════
问题1位置
解决方法:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final wordPair = new WordPair.random();
// TODO: implement build
return new MaterialApp(
title: "鄂托克旗",
theme: new ThemeData(primarySwatch: Colors.blue),
home: new MyHomePage(title: '鄂托克旗安全生产信息化'),
routes:{
"/routes/settingmodule/setting":(BuildContext context)=> Setting(),
"/routes/settingmodule/login":(BuildContext context)=> Login()
},
);
}
}
new Container(
child: Align(
alignment: Alignment.center,
child: new GestureDetector(
onTap: () {
_onClick(context);
},
child: new Text(
"退出登录",
style:
new TextStyle(color: Color(0xFF9EA7B4), fontSize: 15),
),
)),
)
void _onClick(BuildContext context) {
// Navigator.pop(context);
Navigator.pushNamed(context, "/routes/settingmodule/login");
}