很簡單的一個路由跳轉(zhuǎn)Demo, 每天多一點
Navigator.push 和 Navigator.pop
Navigator.push:是跳轉(zhuǎn)到下一個頁面,它要接受兩個參數(shù)一個是上下文context,另一個是要跳轉(zhuǎn)的函數(shù)。
Navigator.pop:是返回到上一個頁面,使用時傳遞一個context(上下文)參數(shù),使用時要注意的是,你必須是有上級頁面的,也就是說上級頁面使用了Navigator.push。
代碼如下:
import 'package:flutter/material.dart';
import 'SecoundPage.dart';
class MemberPage extends StatelessWidget {
const MemberPage({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
var stack = new Stack(
alignment: const FractionalOffset(0.5, 0.1),
children: <Widget>[
CircleAvatar(
backgroundImage: NetworkImage(
'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2277425626,2685399&fm=26&gp=0.jpg'),
radius: 100.0,
),
Container(
child: Text('Jonson'),
color: Colors.redAccent,
),
Positioned(
top: 10.0,
left: 10.0,
child: Text(
'JonsonLeft',
style: TextStyle(color: Colors.orangeAccent),
),
),
Positioned(
bottom: 10.0,
right: 10.0,
child:
Text('JonsonRight', style: TextStyle(color: Colors.orangeAccent)),
),
RaisedButton(
child: Text('跳轉(zhuǎn)'),
onPressed: (){
Navigator.push(context, MaterialPageRoute( //設(shè)置需要跳轉(zhuǎn)的頁面
builder: (context) => SecoundPage() //頁面綁定 記得導入這個類
));
},
)
],
);
return MaterialApp(
title: 'row',
home: Scaffold(
appBar: AppBar(
title: Text('ROW'),
),
body: Center(
child: stack,
)),
);
}
}
第二頁返回的代碼:
import 'package:flutter/material.dart';
class SecoundPage extends StatefulWidget {
SecoundPage({Key key}) : super(key: key);
_SecoundPageState createState() => _SecoundPageState();
}
class _SecoundPageState extends State<SecoundPage> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '第二頁',
home: Scaffold(
appBar: AppBar(title: Text('第二頁'),),
body: Center(
child: RaisedButton(
child: Text('返回'),
onPressed: (){
Navigator.pop(context); //直接pos 上下文就可以
},
)),
),
);
}
}