【发布时间】:2021-04-26 11:31:33
【问题描述】:
我正在尝试创建一个函数以在 Flutter (Dart) 中加载图像,但不知道如何使此代码正常工作。我得到:
“未来”类型的值不能分配给“图像”类型的变量。 尝试更改变量的类型,或将右侧类型转换为“图像”。
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
ui.Image _backgroundImage;
Future<ui.Image> loadImage(imageString) async {
ByteData bd = await rootBundle.load(imageString);
// ByteData bd = await rootBundle.load("graphics/bar-1920×1080.jpg");
final Uint8List bytes = Uint8List.view(bd.buffer);
final ui.Codec codec = await ui.instantiateImageCodec(bytes);
final ui.Image image = (await codec.getNextFrame()).image;
return image;
// setState(() => imageStateVarible = image);
}
@override
Widget build(BuildContext context) {
setState( () => {
_backgroundImage = loadImage('imageNameString'); // <<== ISSUE: A value of type 'Future<Image>' can't be assigned to a variable of type 'Image'
});
return Scaffold(
body: Center(
child: Text('testing'),
),
);
}
}
【问题讨论】:
标签: flutter dart dart-async