dart - 如何检查 RefreshIndicator 状态以根据其状态值采取行动?

标签 dart flutter

我的意思是检查刷新指示器是否正在刷新。根据该值采取行动以在该值为真时停止 Spinner 旋转。

 Widget _productLogic(MainModel model) {
  Widget content = Center(
    child: Text("No products available."),
  );
  if (model.allProduct.length > 0 && !model.isLoading) {
    content = _buildProductList(model.allProduct);
  } else if (model.isLoading) {
    content = Center(
      child: CircularProgressIndicator(),
    );
  }
  return RefreshIndicator(
      child: content,
      onRefresh: model.fetchProducts,
      backgroundColor: Colors.blue,
      color: Colors.red);
}

@override
Widget build(BuildContext context) {
  return ScopedModelDescendant<MainModel>(
      builder: (BuildContext context, Widget child, MainModel model) {
    return _productLogic(model);
  });
}

enter image description here

最佳答案

实际上,您必须将Global Key 设置为RefreshIndicator 并检查currentState,如下所示

  final GlobalKey<RefreshIndicatorState> _refreshKey =
      new GlobalKey<RefreshIndicatorState>();

然后

 return RefreshIndicator(
        key: _refreshKey,

然后

_refreshKey.currentState?.show()?.then((_) {......

关于dart - 如何检查 RefreshIndicator 状态以根据其状态值采取行动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53940661/

相关文章:

dart - 如何使抖动小部件适应不同的屏幕尺寸

Gradle : Unable to tunnel through proxy

ios - 无法在 ios 模拟器上运行我的 flutter 应用程序

flutter - Flutter错误:未处理的异常:NoSuchMethodError:在空调用了 'findAncestorStateOfType'方法

dart - 如何在 Polymer.dart 0.5 中访问 map 值/遍历 map

dart - Dart Polymer异步属性更改不起作用

flutter - 将 ButtonStyle 属性应用于全局所有按钮

utf-8 - dart2js之后如何将二进制数据转换为utf8字符串

Android 模拟器不处理 http get 请求,但 iOS 模拟器工作正常

android - 为什么我的 Flutter 应用程序无法运行?漏洞!源单元中的阶段 'semantic analysis' 中的异常 '_BuildScript_' 不支持的类文件主要版本 60