我现在正尝试切换到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 request
到GET
的所有用户图片。
UserImages是一个垂直ListView
,它显示Images
和图像名称,并且其中也有API request
到GET
所有图像及其名称。
它们具有不同的API端点。
我现在遇到的情况是,当我调试时,MyUsersWidget的API请求首先被调用,然后它将结果冻结到某个点。
然后当我点击“CTRL+S”时,它会继续UserImages的API请求,然后显示所有数据。
什么是最优化的方式来调用多个API请求?
为什么它冻结,然后继续当我热重新加载?
非常感谢您即将分享的知识!
1条答案
按热度按时间a2mppw5e1#
您需要提供如何调用API请求。请求被延迟的一个可能原因是可能使用了await关键字。使用
await
将让Widget在继续之前等待异步函数的完成结果。至于为什么应用程序在热重新加载时在屏幕上显示数据。这种情况的可能原因是API请求已成功完成,并且在继续下一个API请求之前,点击热重载在Widget上显示数据。