You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:10:43