网络调用后如何修改 UI 以填充子小部件

Posted

技术标签:

【中文标题】网络调用后如何修改 UI 以填充子小部件【英文标题】:How to modify UI to fill children widget after network call 【发布时间】:2021-07-24 23:50:19 【问题描述】:

我是 Flutter 的新手,请帮助我在执行网络调用后如何填充子小部件?

类 _BusResultScreenState 扩展状态

@覆盖 小部件构建(BuildContext 上下文)

helper myHelper = new helper();
myHelper.fetch(apiArg).then ((response) 
  if(response['type']=="success") 
    // Sample data from server in response.feedback
    [
       "name":"bus1","id":"54",
       "name":"bus2","id":"55",
       "name":"bus3","id":"56"
     ]
     while()
        SharedBusCard(arg1,arg2,...) // This has to go into children Widget
     
  
);

return Scaffold(
  backgroundColor: Colors.grey.shade200,
  body: SafeArea(
    child: Padding(
      padding: const EdgeInsets.all(12),
      child: Column(
        children: <Widget>[
          Material(
            elevation: 4,
            child: Container(
          ... code
          .... code
          SizedBox(height: 15),
          Expanded(
            child: Container(
              width: double.infinity,
              height: double.infinity,
              child: ListView(
                children: <Widget>[
                      //I wanted to display results here
                    SharedBusCard(arg1,arg2,...) // this is the card to be looped
                ],
              ),
            ),
          )
        ],
      ),
    ),
  ),
);

感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用FutureBuilder 小部件。它对网络调用很有用,您可以处理错误,在其中显示加载屏幕。 Here is documentation and a great video of using it.

【讨论】:

以上是关于网络调用后如何修改 UI 以填充子小部件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AppBar 中包装子小部件以获得更大的子高度和 Flutter 中的填充

如何从 Flutter 中的子小部件调用父小部件功能

如何在颤动中从父小部件调用子小部件的initState()方法

在子小部件中,如何在 kivy 中获取父小部件的实例

将组件添加到子小部件后调整 QDialog 的大小

如何将父小部件焦点重定向到子小部件?