flutter 单个Widget中的多个API请求

5lhxktic  于 2023-06-07  发布在  Flutter
关注(0)|答案(1)|浏览(229)

我现在正尝试切换到Flutter,因为Flutter给开发人员带来了创造力的自由。
我现在知道如何实现我想要的UI设计,但一个重要的事情是UX。
我的app是这样设置的。

class HomeFragment extends StatelessWidget {
  const HomeFragment({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
        height: MediaQuery.of(context).size.height,
        width: MediaQuery.of(context).size.width,
        margin: EdgeInsets.all(0),
        color: Color(colorBackground),
        child: Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
          Expanded(
              child: SingleChildScrollView(
                  scrollDirection: Axis.vertical,
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      Container(
                        height: 180,
                        child: MyUsersWidget(),
                      ),
                      Container(
                          child: Column(
                        mainAxisSize: MainAxisSize.min,
                        children: <Widget>[
                          UserImages(),
                        ],
                      )),
                    ],
                  )))
        ]));
  }
}

MyUsersWidget是一个Horizontal ListView,显示Images的用户,里面有API requestGET的所有用户图片。
UserImages是一个垂直ListView,它显示Images和图像名称,并且其中也有API requestGET所有图像及其名称。

它们具有不同的API端点。
我现在遇到的情况是,当我调试时,MyUsersWidget的API请求首先被调用,然后它将结果冻结到某个点。
然后当我点击“CTRL+S”时,它会继续UserImages的API请求,然后显示所有数据。
什么是最优化的方式来调用多个API请求?
为什么它冻结,然后继续当我热重新加载?
非常感谢您即将分享的知识!

a2mppw5e

a2mppw5e1#

您需要提供如何调用API请求。请求被延迟的一个可能原因是可能使用了await关键字。使用await将让Widget在继续之前等待异步函数的完成结果。
至于为什么应用程序在热重新加载时在屏幕上显示数据。这种情况的可能原因是API请求已成功完成,并且在继续下一个API请求之前,点击热重载在Widget上显示数据。

相关问题