您可以爲每個頁面創建新的導航器。作爲參考檢查CupertinoTabView
或者簡單的例子:
import 'package:flutter/material.dart';
class Home extends StatelessWidget {
Navigator _getNavigator(BuildContext context) {
return new Navigator(
onGenerateRoute: (RouteSettings settings) {
return new MaterialPageRoute(builder: (context) {
return new Center(
child: new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new Text(settings.name),
new FlatButton(
onPressed:() =>
Navigator.pushNamed(context, "${settings.name}/next"),
child: new Text('Next'),
),
new FlatButton(
onPressed:() =>
Navigator.pop(context),
child: new Text('Back'),
),
],
),
);
});
},
);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Column(
children: <Widget>[
new Expanded(
child: _getNavigator(context),
),
new Expanded(
child: _getNavigator(context),
),
],
),
);
}
}
void main() {
runApp(new MaterialApp(
home: new Home(),
));
}
其實我知道的'TabView'但是這不是我的意思。我實際上想爲我的tabbar中的每個標籤頁都有一個導航堆棧,想知道如何實現? –
還有一個問題,當我在我的第二級導航器(所以不是由我的'MaterialApp'創建的)我怎樣才能讓後退按鈕工作?它只是關閉我的應用程序:/ –
@BramVanbilsen,如果它是你自己的按鈕,請檢查你使用的Navigator。你應該選擇「第二」而不是「主」。如果是腳手架的按鈕,請確保腳手架放置在「第二」導航器的範圍內。 – Mogol