所以我试图在 Inkwell 小部件上加载近一千个 gif,其中包含一个盒子装饰图像网络中的 Hero 子元素,我想了解处理此问题的最佳实践,因为加载需要很长时间,我希望它通过第一个出现的,无论是正常的还是通过过滤的,那么 flutter 开发人员如何处理这个问题呢?
那么我如何通过决定首先加载哪个 NetworkImage 来支持慢速互联网用户
InkWell(
onTap: (){
Navigator.push(context, MaterialPageRoute(builder:(context)=>GifDetail(
gifs: gifs,
)));
},
child: Hero(
tag: gifs.url,
child: Card(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Container(
height: 110,
width: 110,
decoration: BoxDecoration(
image: DecorationImage(image: NetworkImage(gifs.url))
),
),
],
),
),
),
),
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用 Cached_network_image 包。最初加载图像仍需要相同的时间,但随后图像会保留在设备上,因此下次加载速度会快得多。确实没有办法绕过图像的初始下载。
通过 ListView.builder 或 GridView.builder 加载只会在滚动之前加载初始视图中的图像,因此也应该有所帮助。
| 归档时间: |
|
| 查看次数: |
6489 次 |
| 最近记录: |