我在我的项目中使用堆叠架构。
这是我的代码
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/