flutter 检测硬件返回触发事件

问题描述

登录进入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.'),
        ),
		)
	)
}

以上可以监听到硬件返回事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值