Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何从父窗口中的子窗口小部件显示CircularProgressIndicator()?_Flutter_Dart - Fatal编程技术网

Flutter 如何从父窗口中的子窗口小部件显示CircularProgressIndicator()?

Flutter 如何从父窗口中的子窗口小部件显示CircularProgressIndicator()?,flutter,dart,Flutter,Dart,我有一个来自子状态小部件的网络调用。为此,我需要在包含脚手架的父小部件中显示CircularProgressIndicator。有什么办法可以证明吗 父窗口小部件: class OrderDetailPage extends StatefulWidget { @override _OrderDetailPageState createState() => _OrderDetailPageState(); } class _OrderDetailPageState extend

我有一个来自子状态小部件的网络调用。为此,我需要在包含脚手架的父小部件中显示CircularProgressIndicator。有什么办法可以证明吗

父窗口小部件:

class OrderDetailPage extends StatefulWidget {
   @override
  _OrderDetailPageState createState() => _OrderDetailPageState();

}

class _OrderDetailPageState extends State<OrderDetailPage> {
    bool isloading = false;

    Widget build(BuildContext context){
       return Scaffold(body: isLoading ? Center(child: CircularProgressIndicator() : Container(
          child: ChildWidget()
      ));
    }
}
class OrderDetailPage扩展StatefulWidget{
@凌驾
_OrderDetailPageState createState()=>\u OrderDetailPageState();
}
类_OrderDetailPageState扩展状态{
bool isloading=false;
小部件构建(构建上下文){
返回脚手架(主体:isLoading?中心(子项:圆形压路机指示器():容器(
child:ChildWidget()
));
}
}
儿童:

class ChildWidget extends StatefulWidget {
  @override
  ChildWidgetState createState() => ChildWidgetState();
}

class ChildWidgetState extends State<OrderDetailPage> {
  return Center(child: RaisedButton(onPressed: () { // need to make isloading in parent widget to true and false})
}
class ChildWidget extends StatefulWidget {
  ChildWidget({this.callback});
  @override
  ChildWidgetState createState() => ChildWidgetState();
}

class ChildWidgetState extends State<OrderDetailPage> {
  return Center(child: RaisedButton(onPressed: () { 
   widget.callback();
}
class-ChildWidget扩展了StatefulWidget{
@凌驾
ChildWidgetState createState()=>ChildWidgetState();
}
类ChildWidgetState扩展了状态{
返回中心(子:RaisedButton(按下时:(){//需要将父窗口小部件中的isloading设置为true和false})
}

有两种方法将
状态向上传递到小部件树中

将回调函数从父级传递到子级:

class OrderDetailPage extends StatefulWidget {
   @override
  _OrderDetailPageState createState() => _OrderDetailPageState();

}

class _OrderDetailPageState extends State<OrderDetailPage> {
    bool isloading = false;
    Widget build(BuildContext context){
       return Scaffold(body: isLoading ? Center(child: CircularProgressIndicator() : Container(
          child: ChildWidget(callback: () => setState(() => isLoading = !isLoading))
      ));
    }
}
class OrderDetailPage扩展StatefulWidget{
@凌驾
_OrderDetailPageState createState()=>\u OrderDetailPageState();
}
类_OrderDetailPageState扩展状态{
bool isloading=false;
小部件构建(构建上下文){
返回脚手架(主体:isLoading?中心(子项:圆形压路机指示器():容器(
child:ChildWidget(回调:()=>setState(()=>isLoading=!isLoading))
));
}
}
儿童:

class ChildWidget extends StatefulWidget {
  @override
  ChildWidgetState createState() => ChildWidgetState();
}

class ChildWidgetState extends State<OrderDetailPage> {
  return Center(child: RaisedButton(onPressed: () { // need to make isloading in parent widget to true and false})
}
class ChildWidget extends StatefulWidget {
  ChildWidget({this.callback});
  @override
  ChildWidgetState createState() => ChildWidgetState();
}

class ChildWidgetState extends State<OrderDetailPage> {
  return Center(child: RaisedButton(onPressed: () { 
   widget.callback();
}
class-ChildWidget扩展了StatefulWidget{
ChildWidget({this.callback});
@凌驾
ChildWidgetState createState()=>ChildWidgetState();
}
类ChildWidgetState扩展了状态{
返回中心(子项:升起按钮(ON按下:(){
widget.callback();
}

最新的替代方案是使用状态管理解决方案,如
InheritedWidget
提供者
软件包或其他许多软件包中的一个。

是的,有一种方法可以做到。请分享您问题中的代码,然后我可以提供帮助you@Niteesh由于安全原因,无法共享代码。父级和子级都是有状态wid获取。我们可以用传递给子窗口小部件的键来显示它吗?当您提出问题时,假设您在这里创建简单的可复制代码,这些问题集中在您遇到的问题上。请参阅如何使用future builder提出问题