u012444600 2023-01-09 17:55 采纳率: 100%
浏览 16
已结题

提问一个flutter路由有关的问题

请问如何返回多个页面后刷新页面,页面逻辑大概是列表页,点进去有个过渡页详情内容,在点其中一个按钮去表单页面并且清除当前的路由,填写表单后pop返回列表页,但是这时候列表页是接收不到那个页面的onPopPage的

  • 写回答

2条回答 默认 最新

  • 快撑死的鱼 2023-01-09 19:06
    关注

    回答不易,求求您点赞采纳哦

    在 Flutter 中,您可以使用Navigator该类来管理路由和页面转换。要在从多个页面返回后刷新页面,您可以使用小部件onWillPop提供的回调WillPopScope来侦听页面pop事件并在事件发生时更新页面状态。

    以下是如何onWillPop在从详细信息页面和表单页面返回后使用回调刷新列表页面的示例:

    class MyListPage extends StatefulWidget {
      @override
      _MyListPageState createState() => _MyListPageState();
    }
    
    class _MyListPageState extends State<MyListPage> {
      @override
      Widget build(BuildContext context) {
        return WillPopScope(
          onWillPop: () async {
            // Refresh the list page when the pop event occurs
            setState(() {});
            return true;
          },
          child: Scaffold(
            // Your list page content goes here
          ),
        );
      }
    }
    

    从列表页导航到详情页和表单页,可以使用Navigator.push方法。例如:

    Navigator.push(context, MaterialPageRoute(builder: (context) => MyDetailPage()));
    

    要清除当前路由并转到表单页面,可以使用Navigator.pushReplacement方法。例如:

    Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => MyFormPage()));
    

    当用户浏览完表单页面,点击“弹出”按钮时,onWillPop会触发列表页的回调,刷新列表页。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月10日
  • 已采纳回答 1月9日
  • 修改了问题 1月9日
  • 创建了问题 1月9日