如何使用Flutter_bloc完美地处理屏幕导航?

时间:2020-03-22 14:05:36

标签: flutter bloc

在使用flutter_bloc时,我正在使用blocbuilder根据当前状态更改屏幕。现在,我的问题是如何使用电话后退按钮返回到以前的状态来浏览先前的屏幕?

1 个答案:

答案 0 :(得分:1)

您可以使用Widget ** WillPopScope **包装构建方法

示例:

 @override
 Widget build(BuildContext context) {
   return new WillPopScope(
     onWillPop: _onWillPop,
     child: /// your widget,
   );
 }

然后在_onWillPop **方法中添加获取先前状态的事件,并返回false,直到返回第一个状态。

Future<bool> _onWillPop() async {
   if(BlocProvider.of<YourBloc>(context).state is! FirstState) {
      /// Add the event in YourBloc to fetch the previous states.
      ....
      ....
      return false;
   } else {
      return true;
   }
}