【发布时间】:2020-01-18 03:53:19
【问题描述】:
我正在尝试创建一个包含许多不同图像的 ListView,但是当我滚动并加载图像时,我的 iPhone 6 Plus 内存不足,然后应用程序就停止了。这是一个显示问题的示例(为简洁起见,我使用 URL 参数来确保 Flutter 将每个 URL 视为不同的图像)
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
List<String> imgUrls = List.generate(
200,
(i) => 'https://images.unsplash.com/photo-1448227922836-6d05b3f8b663?ixlib'
'=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60&foo=$i');
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Lots of Images',
home: Scaffold(
body: Scrollbar(
child: ListView.builder(
itemCount: imgUrls.length,
itemBuilder: (BuildContext context, int index) => Image.network(
imgUrls[index],
)),
),
),
);
}
}
有什么方法可以告诉 ListView 通过处理已滚动到屏幕外的图像来释放内存?
【问题讨论】:
标签: flutter