我一直试图找出导致下述行为的原因:
以下是路由:
Routes() {
runApp( new StateContainer(child:
new MaterialApp(
title: "My App",
debugShowCheckedModeBanner: false,
theme: new ThemeData(
primaryColor: defaultTargetPlatform == TargetPlatform.iOS
? Colors.blueGrey[900] : Colors.blueGrey[900],
accentColor: defaultTargetPlatform == TargetPlatform.iOS
? Colors.grey[900] : Colors.grey[900],
),
home: new LoginScreen(),
routes: <String, WidgetBuilder> { //5
'/login': (BuildContext context) => new LoginScreen(), //LoginScreen
'/signup' : (BuildContext context) => new SignupScreen(), // SignupScreen
'/home': (BuildContext context) => new HomeScreen(), //HomeScreen
},
)));
}
}
问题是;每次我导航到一个屏幕,所有其他屏幕更新在后台。我知道因为我设置了控制台打印(&#34;我在这里&#34;);在每个屏幕上。
这是正常行为吗?我确实想要这个,因为它浪费了CPU资源。
我希望我有一些关于我做错的线索。
答案 0 :(得分:0)
这是正常行为吗?
是,默认情况下,路线会添加到以前的路线之上,
并且您通常希望随时调用built()
方法。
我确实想要这个,因为它浪费了CPU资源。
不是真的。除了创建窗口小部件实例之外,构建方法无论如何都不应该做很多工作,而昂贵的工作是布局和渲染到GPU,如果视图没有改变则不会完成。