首页 > 解决方案 > 我无法在图像小部件中显示从网络图像选择器获得的图像

问题描述

我的页面上有一个图像小部件。使用图像选择器插件,我想从我的计算机中获取图像并将其显示在图像选择器中,但我不能。

如果我愿意,我可以在另一个小部件中显示图像,但我想在图像小部件中显示它。我在哪里犯错?

import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_web_image_picker/flutter_web_image_picker.dart';
import 'package:image_picker/image_picker.dart';

class BlackKitchen extends StatefulWidget {
  @override
  _BlackKitchenState createState() => _BlackKitchenState();
}

class _BlackKitchenState extends State<BlackKitchen> {
  
  bool loading = false;
  Image image;
  @override
  Widget build(BuildContext context) {
    final num myHeight = MediaQueryData.fromWindow(window).size.height;
    final num myWidth = MediaQueryData.fromWindow(window).size.width;
    return MaterialApp(
      title: 'My Title',
      theme: ThemeData(
        primarySwatch: Colors.red,
      ),
      home: Scaffold(
        body: Stack(
          overflow: Overflow.visible,
          children: [
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Center(
                child: loading
                    ? CircularProgressIndicator()
                    : SizedBox(
                        height: 0,
                        width: 0,
                      ),
              ),
            ),
            image!= null
                ? Padding(
                    padding: const EdgeInsets.only(left: 332.0, top: 232.0),
                    child: Visibility(
                      visible: true,
                      child: Image.file(
                        image,
                        width: 839.0,
                        height: 125.0,
                        fit: BoxFit.fill,
                      ),
                    ),
                  )
                : Padding(
                    padding: const EdgeInsets.only(left: 332.0, top: 232.0),
                    child: Image.asset(
                      "images/last.jpg",
                      width: 839.0,
                      height: 125.0,
                      fit: BoxFit.fill,
                    ),
                  ),
            Visibility(
              visible: true,
              child: Image.asset(
                "images/black_kitchen_edited.png",
                fit: BoxFit.fill,
                height: myHeight,
                width: myWidth,
              ),
            ),
          ],
        ),
        floatingActionButton: FloatingActionButton.extended(
          backgroundColor: Colors.white54,
          icon: Icon(Icons.add_a_photo),
          label: Text('Choose Photo'),
          onPressed: () {
            choosePhoto();
          },
        ),
      ),
    );
  }

  choosePhoto() async {
    final _image = await FlutterWebImagePicker.getImage;
    setState(() {
      image = _image;
    });
  }
}

我的错误

错误:无法将参数类型“图像”分配给参数类型“文件”。dart(argument_type_not_assignable)

标签: flutterflutter-webflutter-image

解决方案


推荐阅读