Flutter 如何从另一个小部件推送和弹出一个小部件(B从A转换)
假设我有两个小部件A和B。A侦听事件更改。事件类型为连接状态Flutter 如何从另一个小部件推送和弹出一个小部件(B从A转换),flutter,dart,flutter-bloc,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小部件。如果事件未连接互联网,则推送B,如果连接互联网,则弹出B。有人可以建议我如何实现它。
A --> One Widget (separate screen)
B --> Another Widget (separate screen)
Event Type
|
--> INTERNET_CONNECTED
--> INTERNET_NOT_CONNECTED
我想根据A中触发的事件推送和弹出B小部件。如果事件未连接互联网,则推送B,如果连接互联网,则弹出B。有人可以建议我如何实现它。谢谢…您可以在堆栈()中使用Visibility()小部件根据变量显示小部件
堆栈(
儿童:[
A(),
可见度(
可见:_connected,//假设_connected是一个bool,如果未连接INTERNET,则返回true
儿童:B()
),
],
),
像这样做
制作一个有状态的小部件
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
}
;
}
如何根据状态使用可见性小部件显示/隐藏B?小部件B是一个单独的屏幕,它不是屏幕a的一部分。如何在此场景中使用可见性?因此,您希望根据某个事件从一个屏幕过渡到另一个屏幕?推出新路线如何?是的,过渡。推动一条路线是可行的。我能推它。但是,当屏幕B位于A的顶部时,我无法在事件更改时弹出B。您是否在屏幕A中使用提供程序进行状态管理?(如果您使用的是提供者,让B听状态,并根据需要弹出。)只是一个建议。在这种情况下。A和B都将成为一个屏幕的一部分。这里我要说明的是,我想根据屏幕A中的事件推送和弹出屏幕B。如果B()可见并且是一个全屏小部件,它将覆盖A()。我用这种方法制作了一个完整的应用程序,它就像在站点之间切换一样。是的,我理解你的方法,但我想知道导航是否可行。导航通过。。。?您可以在顶部始终有按钮或任何形式的界面元素,它们可以操纵用于确定B()是否可见的值。例如:您可以在B()中放置一个按钮“returntoa()”,该按钮将“visible”参数中使用的值设置为false。但是一定要使用setState((){});更新您的状态。