iDe*_*ode 14
更多的是关于代码可读性(但不限于),看看他们都在做同样的工作,但以不同的方式:
runApp(
MaterialApp(
home: HomePage(),
),
);
Run Code Online (Sandbox Code Playgroud)
或者
runApp(
MaterialApp(
initialRoute: '/',
routes: {
'/': (_) => HomePage(),
},
),
);
Run Code Online (Sandbox Code Playgroud)
使用onGenerateInitialRoute/ 也onGenerateRoute允许您更改导航器动画。
runApp(
MaterialApp(
onGenerateInitialRoutes: (route) {
return [
MaterialPageRoute(builder: (_) => HomePage())
];
}
),
);
Run Code Online (Sandbox Code Playgroud)
或者
runApp(
MaterialApp(
initialRoute: '/',
onGenerateRoute: (settings) {
if (settings.name == '/') return MaterialPageRoute(builder: (_) => HomePage());
return MaterialPageRoute(builder: (_) => UnknownPage()); // you can do this in `onUnknownRoute` too
},
),
);
Run Code Online (Sandbox Code Playgroud)
小智 6
Home-route 是应用程序的默认路由,而另一方面,初始路由是屏幕上呈现的第一个路由。两者看起来相同,但工作方式不同。home:应用程序的默认路线,如果没有给出初始路线,则在屏幕上呈现。初始:无论是否给出家乡路线,如果给出了初始路线,那么在应用程序启动时,初始路线将呈现在屏幕上,有两种行为或初始路线,
1.InitialRoute 将首先在屏幕上渲染,现在如果还给出了家乡路线,那么在这种情况下,当我们按后退按钮时,我们将返回家乡路线
如果我们谈论回家路线,也有两种情况,
让我们看下面的代码来理解,
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text("Home Route"),
),
),
initialRoute: '/init',
routes: <String, WidgetBuilder>{
'/init': (BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Initial Route"),
),
);
}
},
);
}
}
Run Code Online (Sandbox Code Playgroud)
因为我们已经给出了初始路线以及家乡路线,所以当我们启动应用程序时,我们的应用程序将首先渲染初始路线,如下所示,如上所示,应用程序显示了我们在 MaterialApp 构造中定义的初始路线,现在让我们看看什么当我们按下后退按钮时会发生

现在,当我们按下后退按钮时,它会带我们回到回家的路线
现在要理解的是,如果我们提供了不同的主页和初始路线,那么初始路线将首先渲染并显示在屏幕上,如果用户按下后退按钮,那么在这种情况下,主页路线将呈现在屏幕上。
在哪里使用不同的初始路线和家乡路线?:有很多用例,我们可以使用不同的家乡路线和初始路线案例,大学可以向学生显示初始视图,学生可以使用该初始视图来申请特定时间的入学,而不是显示在主页上,餐厅可以通过显示初始路线来显示折扣优惠并注册用户,以防用户按下后退按钮,他们将返回到家庭路线,如上所示。
| 归档时间: |
|
| 查看次数: |
3494 次 |
| 最近记录: |