dart - 如何在 Flutter 中将 RefreshIndicator 与 FutureBui

我正在尝试找出一种方法来在 FutureBuilder 完成加载时向周围的类指示。 RefreshIndicatorFuture 作为参数,并在 Future 完成时停止显示刷新指示器。我无法访问传递给 FutureBuilder 的完全相同的 Future 变量,尤其是当它们位于两个单独的类中时,除非我可以传递对一个的引用当它在其他类(class)完成时,我会知道......

最佳答案

我也在寻找这个答案。终于明白了……

这是我的做法

FutureBuilder<String>(
        future: _calculation,
        // a previously-obtained Future<String> or null
        builder: (BuildContext context,
            AsyncSnapshot<String> snapshot) {
          switch (snapshot.connectionState) {
            case ConnectionState.none:
              return Text('Press button to start.');
            case ConnectionState.active:
            case ConnectionState.waiting:
              return Text('Awaiting result...');
            case ConnectionState.done:
              if (snapshot.hasError)
                return Text('Error: ${snapshot.error}');
              return new RefreshIndicator(
                  key: _refreshIndicatorKey,
                  color: Colors.blue,
                  onRefresh: () {
                    return _calculation = getCalculation(); // EDITED
                  },
                  child: SingleChildScrollView(
                      physics: AlwaysScrollableScrollPhysics(),
                      child: Text('Result: ${snapshot.data}')
                  )


              );
              break;
            default:
              return null;
          }
        },
      )
 

Future<String> getCalculation() async {
    try {
      /*Write your API here or what ever u want to get when pull to refresh*/
      return ""/*the value of api*/; //EDITED

    } catch (e) {
      ///Handle Exception here. So in FutureBuilder we can capture it in snapshot.hasError
      return Future.error(e.toString());
    }
  }




      

关于dart - 如何在 Flutter 中将 RefreshIndicator 与 FutureBuilder 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51775098/

相关文章:

firebase - 在 Flutter App 上更新 FCM Token

dart - 多个小部件使用相同的 GlobalKey

dart - 将 SliverFillRemaining 与 CustomScrollView 和

ios - 如何使用 Runner.app 创建用于测试的 .ipa 文件?

dart - 在 TextSpan 中测试文本

flutter - 文件选择器插件

opencv - Flutter 实时人脸检测

flutter - 如何将命令行参数(如 "-FIRAnalyticsDebugEnabled")传

android - Flutter NetworkImage 处理 403 错误

dart - 如何使用 Flutter 制作可滚动的包装 View ?