Flutter Navigator跳转失效:双页面应用按钮跳转至第二页失败
嘿,我来帮你搞定Flutter页面跳转的需求!你提供的第一页代码没写完,我先帮你补全完整的实现,同时附上第二页的示例代码,这样你就能直接运行啦~
完整的第一页代码(包含跳转按钮)
import 'package:flutter/material.dart'; import './view/second_page.dart'; void main() => runApp(const MyApp()); class MyApp extends StatefulWidget { const MyApp({super.key}); @override State<StatefulWidget> createState() { return MainScreen(); } } class MainScreen extends State<MyApp> { @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return MaterialApp( title: '页面跳转示例', theme: ThemeData(primarySwatch: Colors.blue), home: Scaffold( appBar: AppBar(title: const Text('第一页')), body: Center( // 添加跳转按钮 child: ElevatedButton( onPressed: () { // 核心跳转逻辑:跳转到第二页 Navigator.push( context, MaterialPageRoute(builder: (context) => const SecondPage()), ); }, child: const Text('跳转到第二页'), ), ), ), ); } }
第二页代码(view/second_page.dart)
你需要在项目的view目录下创建second_page.dart,内容如下:
import 'package:flutter/material.dart'; class SecondPage extends StatelessWidget { const SecondPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('第二页'), // AppBar默认自带返回箭头,点击会自动回到第一页 ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ const Text('这是第二页!'), const SizedBox(height: 20), // 也可以手动添加返回按钮 ElevatedButton( onPressed: () { Navigator.pop(context); // 返回上一页 }, child: const Text('返回第一页'), ), ], ), ), ); } }
划重点:跳转逻辑说明
- 用
Navigator.push()来触发页面跳转,它需要两个参数:当前页面的context,以及一个MaterialPageRoute,后者通过builder指定要跳转的目标页面(这里就是SecondPage)。 - 第二页的返回方式有两种:一是利用AppBar默认的返回箭头,二是手动调用
Navigator.pop(context)来关闭当前页面回到上一页。
内容的提问来源于stack exchange,提问作者moonvader
相关产品推荐
相关产品推荐

