错误信息
方法'add'在null上调用。 I / flutter(10160):Receiver:null I / flutter(10160):尝试调用:add('SvgPicture'的实例)I / flutter(10160):
我需要将所有SVG图像添加到网格视图中。我使用了flutter_svg插件。我添加到pubspec.yaml。
class _MyHomePageState extends State<MyHomePage> {
Future<SvgPicture> _getImages(){
var image;
for(int i = 1; i < 425; i++){
var x = SvgPicture.asset(
'assets/images/Defect/icon-$i.svg',
);
image.add(x);
}
return image;
}
以上方法添加所有图像
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
添加了futurebuilder来加载所有图像
child: FutureBuilder<SvgPicture>(
future: _getImages(),
builder: (BuildContext context, AsyncSnapshot snapshot){
List values = snapshot.data;
int count = 1;
添加了listview以加载所有图像
return ListView.builder(
padding: EdgeInsets.only(top: 8.0, right: 0.0, left: 0.0),
itemCount: count,
itemBuilder: (BuildContext context, int index) {
return GridView.count(
physics: ScrollPhysics(),
shrinkWrap: true,
crossAxisCount: 4,
// childAspectRatio: 1.0,
children: List.generate(values.length, (index) {
return GridTile(
child: GestureDetector(
// onTap: () => sub(values[index].childId),
child: Column(
children: [
Card(
//color: Colors.blue.shade100,
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: Colors.blueAccent, width: 1.5)),
添加了svgPicture小部件以查看所有图像
child: Stack(
children: <Widget>[
SvgPicture.asset(
'${values[index]}',
height: 50.0,
),
],
),
),
),
添加了Text小部件,用于查看所有图像文件名
Expanded(
child: Text(
values[index],
textAlign: TextAlign.center,
style: TextStyle(fontSize: 10.0),
您应该进行以下更改:
images
变量。async
关键字添加到您的方法中。
Future<List<SvgPicture>> _getImages() async{
List<SvgPicture> images = List();
for(int i = 1; i < 425; i++){
var x = SvgPicture.asset(
'assets/images/Defect/icon-$i.svg',
);
images.add(x);
}
return images;
}