颤振 通过路由导航到其他屏幕每隔一个屏幕更新一次



我一直在试图找出导致下面描述的行为的原因:

  1. 我有一个带有许多屏幕的颤振应用程序
  2. 导航到各个屏幕是使用Route和Navigator.pushNamed(context,"/XX"(到它们的抽屉实现的。

这是路由,如下所示:

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

},
)));
}
}

问题是;每次我导航到一个屏幕时,所有其他屏幕都会在后台更新。我知道,因为我设置了控制台打印("我在这里"(;在每个屏幕中。

这是正常行为吗?我确实想要这个,因为它浪费了 CPU 资源。

我希望我有一些关于我做错了什么的线索。

这是

正常行为吗?

是的,默认情况下,路由会添加到以前的路由之上, 并且您通常应该期望随时调用built()方法。

我确实想要这个,因为它浪费了 CPU 资源。

没有。无论如何,构建方法不应该做太多工作,除了创建小部件实例,昂贵的工作是布局和渲染到 GPU,如果视图没有更改,就不会完成。

相关内容

  • 没有找到相关文章

最新更新