问题描述
登录进入A页面之后,发起A页面的列表接口请求。此时点击其中的一个列表项进入B页面,在B页面进行一些操作之后,B页面可以返回A页面(B页面有一个返回按钮,此外还需要检测设备的返回事件),此时需要A页面重新进行列表接口的请求,获取最新数据
解决方案
// B页面点击返回事件触发
onTap: (){
Navigator.pop(context, 'back');
}
// A页面点击列表项触发
clickHall(item) async {
final res = await Navigator.of(context)
.pushNamed('/xxx', arguments: item);
if (res == 'back') {
getHallList();
}
}
以上是解决返回按钮触发的事件
// 此外还需要监听到B页面的设备返回事件
将B页面通过WillPopScope包裹起来
class PageB extends StatelessWidget {
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
Navigator.pop(context, 'back');
return false;
},
child: Scaffold(
appBar: AppBar(
title: Text('pageB')
),
body: Center(
child: Text('Press the back button to return to Page A.'),
),
)
)
}
以上可以监听到硬件返回事件