Flutter中onPressed切换屏幕无效,该如何解决?我哪里操作错误?
Flutter页面切换问题解决
你的问题出在仅创建了页面实例,却没有触发Flutter的导航逻辑——onPressed里的const User_Profile();只是生成了一个页面组件对象,但没有告诉Flutter要把这个页面推入导航栈,自然不会切换屏幕。而print("Hello")能正常执行,说明按钮的点击回调是正常触发的,只是缺少关键的导航步骤。
修正后的首页点击逻辑
把首页的onPressed代码替换成以下内容:
onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) => const User_Profile()), ); print("Hello"); },
额外说明
- 要确保当前页面的
context能访问到导航器:你的首页必须是MaterialApp(或CupertinoApp)的子组件,否则Navigator会找不到导航上下文。如果是嵌套较深的组件,可以考虑使用GlobalKey来获取导航器,不过常规项目结构里直接用当前context即可。 - 如果你用的是命名路由(Navigator 2.0),也可以这样写:
先在MaterialApp中配置路由:
然后在MaterialApp( routes: { '/userProfile': (context) => const User_Profile(), }, )onPressed里调用:Navigator.pushNamed(context, '/userProfile');
内容的提问来源于stack exchange,提问作者Shiko
相关产品推荐
相关产品推荐

