flutter - onWillPop-无法将Future <bool> Function(BuildContext)分配给参数类型Future <bool> Function()

标签 flutter dart

请帮助我解决我的flutter应用程序中的此错误:

    class MyApp extends StatelessWidget {

      Future<bool> _onBackPressed(BuildContext context) {

        return showDialog(
            context:context,builder:(BuildContext context)=>AlertDialog(title: Text('Exit'),
          actions: <Widget>[
            FlatButton( child:Text('NO'),onPressed: ()=>Navigator.pop(context,false)),
            FlatButton( child:Text('Yes'),onPressed: ()=>Navigator.pop(context,true))


          ],));

      }
      @override
      Widget build(BuildContext context) {
        return WillPopScope(onWillPop:_onBackPressed, // **the argument type Future<bool>Function(BuildContext) can not be assigned to parameter  Future<bool>Function()**

        child: MaterialApp(
        debugShowCheckedModeBanner: false,
        title: 'ListViews',
        theme: ThemeData(
        primarySwatch: Colors.teal,
        ),
        home: Scaffold(
        appBar: AppBar(title: Text('ListViews')),
        body: BodyLayout(),
        ),
        ));
      }
    }
  • 如何纠正此错误?
  • 编写Future<bool>_onBackPressed(BuildContext context) async{后,此错误出现在错误框中

  • 错误:
    the argument type Future<bool>Function(BuildContext) can not be assigned to parameter  Future<bool>Function()
    

    如果您有更好的方法可以添加,请在DOUBLE PRESS EXIT FLUTTER APP 中添加

    最佳答案

    好吧,onWillPop参数需要一个Future<bool> Function(),但是您提供了一个需要BuildContext作为参数的函数(因此是Future<bool> Function(BuildContext context)类型)。

    正确的方法是将函数包装在另一个函数中:

    WillPopScope(
      onWillPop: () => _onBackPressed(context),
      child: ...
    )
    

    而且,我认为没有比检测上次回按的时间戳并将其与按回去的当前时间进行比较的更为优雅的方法来检测两次回按。

    关于flutter - onWillPop-无法将Future <bool> Function(BuildContext)分配给参数类型Future <bool> Function(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100060/

    相关文章:

    flutter - 查找比较两个持续时间的剩余百分比

    android - 如何从 firebase 实时数据库获取数据并更改一个文本字段以表示该特定记录?

    flutter - 如何知道用户当前位置是否在折线内或附近?

    dart - 如何在 flutter 中拆分 Dart 类?

    flutter - 即使配置了Android Studio,如何解决NDK丢失的问题?

    firebase-realtime-database - 如何在 Dart 2 中为我的用例键入 cast

    flutter - 你怎么知道 DraggableScrollableSheet 是折叠还是展开

    flutter - 在Flutter中按下按钮后更新文本

    flutter - 如何将国际化添加到 Flutter 插件

    flutter - 通过 (path.quadraticBezierTo) Flutter 从顶部为容器制作半圆