-
基本路由
import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "NavigatorWidget", home: HomePage(), )); } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: RaisedButton( child: Text("跳转到搜索页面"), onPressed: (){ Navigator.of(context).push( MaterialPageRoute( builder: (context) => SearchPage() ) ); }, ), ) ); } } class SearchPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("搜索页面")), body: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text("这是搜索页面"), RaisedButton( child: Text("返回上一页"), onPressed: () { Navigator.of(context).pop(); }, ) ], ), ); } }
-
基本路由+传参
import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "NavigatorWidget", home: HomePage(), )); } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: RaisedButton( child: Text("跳转到搜索页面"), onPressed: (){ Navigator.of(context).push( MaterialPageRoute( builder: (context) => SearchPage("我是传参") ) ); }, ), ) ); } } class SearchPage extends StatelessWidget { String param; SearchPage(this.param); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("搜索页面")), body: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text("这是传参值:$param"), RaisedButton( child: Text("返回上一页"), onPressed: () { Navigator.of(context).pop(); }, ) ], ), ); } }
-
命名路由
import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( title: "NavigatorWidget", initialRoute: "/", routes: { "/":(context) => HomePage(), "/search":(context) => SearchPage(), }, )); } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: RaisedButton( child: Text("跳转到搜索页面"), onPressed: (){ Navigator.of(context).pushNamed("/search"); }, ), ) ); } } class SearchPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("搜索页面")), body: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text("这是搜索页面"), RaisedButton( child: Text("返回上一页"), onPressed: () { Navigator.of(context).pop(); }, ) ], ), ); } }
-
命名路由+传参(最常用的)
原文地址:https://www.cnblogs.com/chichung/p/12010946.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。