Flutter如何创建一个内嵌的navigation


这篇文章主要讲解了“Flutter如何创建一个内嵌的navigation”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter如何创建一个内嵌的navigation”吧!我们在flutter中可以使用Navigator.push或者Navigator.pushNamed方法来向Navigator中添加不同的页面,从而达到页面调整的目的。一般情况下这样已经足够了,但是有时候我们有多个Navigator的情况下,上面的使用方式就不够用了。比如我们有一个主页面app的Navigator,然后里面有一个匹配好友的功能,这个功能有多个页面,因为匹配好友功能的多个页面实际上是一个完整的流程,所以这些页面需要被放在一个子Navigator中,并和主Navigator区分开。那么应该如何处理呢?主Navigator是我们app的一些主要界面,这里我们有三个界面,分别是主home界面,一个setting配置界面和好友匹配界面。其中好友匹配界面包含了三个子界面,这三个子界面将会用到子路由。先来看下主路由,主路由的情况跟普通的路由没啥区别,这里我们首先定义和home和setting匹配的两个widget:HomePage和SettingsPage:HomePage很简单,它包含了一个floatingActionButton,当点击它的时候会调用 Navigator.pushNamed方法进行路由切换。然后是SettingsPage,它是一个简单的Column:最后一个页面是FriendMatchF免费云主机域名low,这个页面比较复杂,我们在下一个再进行讲解。然后我们为主路由在onGenerateRoute方法中进行定义:主路由很简单,跟普通的路由没有太多的区别。接下来是构建子路由的步骤。在主路由中,如果路由的名称是routeFriendMatch,那么就会跳转到FriendMatchFlow。而这个flow页面实际上是由几个子页面组成的:选择好友页面,等待页面,匹配页面和匹配完毕页面。具体的页面代码这里就不写了,我们主要来讲一下子路由的使用。对于FriendMatchFlow来说,它本身是一个Navigator,所以我们的build方法是这样的:因为他需要根据用户的不同点击来进行内部路由的切换,所以需要保存对当前子Navigator的应用,所以这里FriendMatchFlow是一个StatefulWidget,并且上面的_navigatorKey是一个GlobalKey对象,以提供对子Navigator的引用:这里的_onGenerateRoute方法,跟主路由也是很类似的,主要定义的是子路由中页面的跳转:这里的on***Selected是VoidCallback回调,用来进行路由的切换:可以看到上面的路由切换实际上是在子路由上切换,跟父路由无关。如果想要直接从子路由跳出到父路由该怎么处理呢?很简单,调用Navigator.of的pop方法即可:这里的context默认是全局的context,所以会导致主路由的跳转变化。感谢各位的阅读,以上就是“Flutter如何创建一个内嵌的navigation”的内容了,经过本文的学习后,相信大家对Flutter如何创建一个内嵌的navigation这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: golang中判断请求是http还是https

今天小编给大家分享一下golang中判断请求是http还是https的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 golang中判断请求是ht…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/21 17:44
Next 05/21 17:44

相关推荐