在Flutter中,您可以使用Navigator.pushReplacement
方法来保留当前路线并弹出先前的路线。下面是一个示例代码:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Navigation Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HomePage(),
routes: {
SecondPage.routeName: (context) => SecondPage(),
},
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Page'),
),
body: Center(
child: RaisedButton(
child: Text('Go to Second Page'),
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => SecondPage(),
),
);
},
),
),
);
}
}
class SecondPage extends StatelessWidget {
static const String routeName = '/second';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Second Page'),
),
body: Center(
child: RaisedButton(
child: Text('Go back to Home Page'),
onPressed: () {
Navigator.pop(context);
},
),
),
);
}
}
在这个示例中,我们定义了两个页面:HomePage
和SecondPage
。在HomePage
中,我们使用Navigator.pushReplacement
方法将路由替换为SecondPage
,这样就保留了HomePage
的路线。而在SecondPage
中,我们使用Navigator.pop
方法来返回到上一个页面,即HomePage
。
要执行此示例,您可以在HomePage
中点击“Go to Second Page”按钮,然后在SecondPage
中点击“Go back to Home Page”按钮,即可返回到HomePage
。这里的路线被保留了下来,并且可以在需要时进行弹出。
上一篇:保留单词频率矩阵中的特殊字符