《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
完整开源地址:https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF
//固定写法 统一处理
onGenerateRoute: (RouteSettings settings) {
final String name = settings.name;
final Function pageContentBuilder = this.routes[name];
if (pageContentBuilder != null) {
if (settings.arguments != null) {
final Route route = MaterialPageRoute(
builder: (context) =>
pageContentBuilder(context, arguments: settings.arguments));
return route;
} else {
final Route route = MaterialPageRoute(
builder: (context) => pageContentBuilder(context));
return route;
}
}
},
theme: ThemeData(primaryColor: Colors.red),
home: Scaffold(
appBar: AppBar(
title: Text("路由控件 界面跳转测试"),
centerTitle: true,
),
body: Routing(),
),
);
}
}
class Routing extends StatefulWidget {
@override
_RoutingState createState() => new _RoutingState();
}
class _RoutingState extends State {
@override
Widget build(BuildContext context) {
return Container(
child: ListView(
children: <Widget>[
RaisedButton(
child: Text("跳转到搜索界面,并传值"),
onPressed: () {
Navigator.pushNamed(context, "/search",
arguments: {"id": "路由传值结果555"});
// Navigator.of(context).push(
// MaterialPageRoute(builder: (context) => SearchPage()),
// );
},
),
RaisedButton(
child: Text("跳转到表单界面并传值"),
onPressed: () {
Navigator.pushNamed(context, "/form");
// Navigator.of(context).push(
// MaterialPageRoute(
// builder: (context) => FormPageState(
// title: “跳转到表单界面并传值”,
// )),
// );
},
),
],
),
);
}
}
接受界面
import ‘package:flutter/material.dart’;
class SearchPage extends StatelessWidget {
final arguments;
SearchPage({this.arguments});
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Text('返回'),
backgroundColor: Colors.red,
onPressed: () {
Navigator.of(context).pop();
},
),
appBar: AppBar(title: Text("搜索"), centerTitle: true),
body: SearchContent(
arguments: arguments,