我如何改变或覆盖android/ios返回按钮在flutter中的动作

pkwftd7m  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(126)

当用户按下后退按钮时,我需要对页面进行更改(更改setState中的bool等)。
我查了一下,我知道人们使用WillPopScope来覆盖默认的“后退”操作,但在所有的例子中,他们只是弹出页面,我需要做一个自定义函数来代替它,但不知道如何做。我的函数看起来像这样,我需要在用户按下后退按钮时运行:

Future<void> backToCats() async{
    setState(() {
      isLoaded=false;
    });
    if(isFromSearch){
      loadCategories();
    }
    setState(() {
      showingBrands=false;
      isLoaded=true;
    });
  }
0tdrvxhp

0tdrvxhp1#

您可以在WillPopScope小工具的onWillPop参数中执行自定义逻辑。只需确保在末尾返回true或false,以指示是否允许弹出页面。WillPopScope将激活后退按钮和其他自动向后导航的操作,例如在iOS上从屏幕侧面滑动。
例如,如果您需要在有状态小部件中将bool设置为false,则如下所示

WillPopScope(
  onWillPop: () async {
    setState(() => myBool = false);
    return true;
  }
  child: ...
);

相关问题