1runApp 这个方法 只有一次执行 类似于Android的applacation 只执行一次 ,不需要每个页面都新建此方法
import 'package:flutter/material.dart';
import 'pages/Search.dart';
import 'Form.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
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<Routing> {
@override
Widget build(BuildContext context) {
return Container(
child: ListView(
children: <Widget>[
RaisedButton(
child: Text("跳转到搜索界面"),
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => SearchPage()),
);
},
),
RaisedButton(
child: Text("跳转到表单界面并传值"),
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => FormPage()),
);
},
),
],
),
);
}
}
MaterialPageRoute(builder: (context) => SearchPage()),是跳转到界面类型 不是body的类名SearchContent
import 'package:flutter/material.dart';
class SearchPage extends StatefulWidget {
@override
SearchPageState createState() => new SearchPageState();
}
class SearchPageState extends State<SearchPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("appBar标题"), centerTitle: true),
body: SearchContent(),
);
}
}
class SearchContent extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Text("搜索页面内容区域"),
);
}
}