请问如何返回多个页面后刷新页面,页面逻辑大概是列表页,点进去有个过渡页详情内容,在点其中一个按钮去表单页面并且清除当前的路由,填写表单后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会触发列表页的回调,刷新列表页。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报