一、前言
在Android开发中,界面的跳转使用的Context.startActivity来实现,界面通常指的Activity,如果我们的设计是单Activity+Fragment来实现,界面的跳转就需要使用FragmentManager来完成。这些概念到了Flutter中有了一些变化。
二、路由是什么
我们通常使用“屏”来展示应用的不同页面(界面)。比如应用有一屏展示商品列表,点击Item的时候,跳转到新的一“屏”展示商品的详细信息。
在Flutter中,屏(screen) 和 页面(page) 都叫做 路由(route)。
因此, 在后期的开发中,我们基本都会建一个screen或者page的文件夹,里面文件代表一屏需要展示的界面。当前文件的命名也可以加一个screen或者page的后缀,比如login_page.dart 或 login_screen.dart
所以在后面的界面跳转或者页面跳转都值的是路由的跳转,那么如何从一个‘路由’跳转到一个新的路由呢?
三、使用Navigator来实现路由的的跳转功能
在Flutter中,封装了Navigator来实现界面的跳转功能,接下来了解具体的使用。
3.1 使用Navigator.push()跳转到一个新的路由
push()方法需要传入Route对象,随后将Route对象添加到导航器的堆栈上。这里的Route对象我们可以自己实现,当前前期入门的时候,推荐使用MaterialPageRoute,框架已经实现了和平台原生动画类似的动画切换。
Navigator.push(context,
MaterialPageRoute(builder: (context) => const TestPageTwo()));
当然这里我们可以使用Navigator.of(context).push()方法。完成的效果图如下