如何从另一个窗口小部件推送和弹出一个窗口小部件(从A到B的转换)

时间:2020-08-28 09:08:34

标签: flutter dart flutter-bloc

假设我有两个小部件A和B。A监听事件更改。事件类型是“连接状态”。

A --> One Widget (separate screen)
B --> Another Widget (separate screen)

Event Type
 |
 --> INTERNET_CONNECTED 
 --> INTERNET_NOT_CONNECTED

我想根据A内部触发的事件来推送和弹出B小部件。如果事件是INTERNET_NOT_CONNECTED,则推动B;如果INTERNET_CONNECTED然后弹出B。有人可以建议我如何实现它。谢谢...

2 个答案:

答案 0 :(得分:0)

您可以在Stack()中使用Visibility()小部件来显示取决于变量的小部件。

Stack(
  children: [
    A(),
    Visibility(
      visible: _connected, //assuming _connected is a bool that returns true if INTERNET_NOT_CONNECTED
      child: B()
    ),
  ],
),

答案 1 :(得分:0)

这样做,

制作一个StateFulWidget。


import 'package:connectivity/connectivity.dart';//https://pub.dev/packages/connectivity

@override
initState() {
  super.initState();
  getcon();
}

getcon() async{

var connectivityResult = await (Connectivity().checkConnectivity()).then((value) {
if (value== ConnectivityResult.mobile||value== ConnectivityResult.wifi) {
  Navigator.pop(context)//popping the screen A
Navigator.push()//write code here to push to screen B


}
                  ;

}