错误消息
方法'add'在null上被调用。 I /颤振(10160):接收器:空 I / flutter(10160):尝试调用:add(“ SvgPicture”的实例) I /颤振(10160):
我需要将所有SVG图像添加到网格视图。我使用了 flutter_svg 插件。我添加到pubspec.yaml。
2019-04-22 00:21:31.862001.txt
以上方方法添加了所有图像
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;
}
添加了futurebuilder以加载所有图像
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
添加了列表视图以加载所有图像
child: FutureBuilder<SvgPicture>(
future: _getImages(),
builder: (BuildContext context, AsyncSnapshot snapshot){
List values = snapshot.data;
int count = 1;
添加了svgPicture小部件以查看所有图像
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)),
添加了文本小部件,用于查看所有图像文件名
child: Stack(
children: <Widget>[
SvgPicture.asset(
'${values[index]}',
height: 50.0,
),
],
),
),
),
答案 0 :(得分: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;
}