flutter - 如何在 Flutter 中处理堆栈或提供程序架构中的应用程序状态或生命周期

标签 flutter dart viewmodel provider stacked

我在我的项目中使用堆叠架构。
这是我的代码

class InfoScreen extends StatelessWidget {

  InfoViewModel viewModel;

  @override
  Widget build(BuildContext context) {
    return ViewModelBuilder<InfoViewModel>.reactive(
        builder: (context, model, child) => _buildUI(model),
        viewModelBuilder: () => InfoViewModel());
  }

  _buildUI(InfoViewModel viewModel) {
    return Scaffold(backgroundColor: Colors.white, body: MainScreen());
  }
}
我正在使用无状态小部件,所以我不能使用 didChangeDependencies() 方法来了解应用程序状态。
我的问题是如何处理此屏幕中的应用程序状态?
任何帮助或想法表示赞赏。提前致谢

最佳答案

您可以实现 didChangeDependencies() 在您的 ViewModel 中。
例如:

class InfoViewModel extends BaseViewModel with WidgetsBindingObserver{

  void initialise() {
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
    switch (state) {
      case AppLifecycleState.resumed:
        print('On Resume');
        break;
      case AppLifecycleState.inactive:
      case AppLifecycleState.paused:
      case AppLifecycleState.detached:
        break;
    }
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }
}
别忘了调用onModelReady: (model) => model.initialise()在您的 View 小部件中。

关于flutter - 如何在 Flutter 中处理堆栈或提供程序架构中的应用程序状态或生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64590302/

相关文章:

flutter - Dart 中相对导入的正确代码风格是什么?

html - ASP MVC 如何为具有子元素的模型创建编辑器?

MVVM SelectionChanged 组合框不调用 'Set'

flutter - 如何在flutter中应用平移和旋转动画以创建 "cards being flung around"效果

flutter - 没有这样的方法错误: The getter 'isNotEmpty' was called on null

dart - 当不能以任何方式修改时,为什么不能在字符串文字中使用 const 列表?

c# - Entity Framework 模型与 ViewModel 的最佳实践

dart - Flutter 底板圆角半径

Flutter 提供程序无法在发布 apk 中工作,但在 Debug模式下工作正常

flutter - Dart Map 增加一个键的值