繁体   English   中英

Flutter:刷新网络图片

Flutter: refresh network image

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我是 flutter 的初学者,我正在寻找一种简单的方法来刷新网络图像。

在这样的基本代码中,让颤振再次获取和绘制该图像的最简单方法是什么? 在我的代码中,图像是来自安全摄像头的快照,因此每次获取它时都会更改,但始终具有相同的 url。 每次启动应用程序时,我都会收到一张新图片,但我希望在按下图像本身时刷新图像。

import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var title = 'Web Images';
    return MaterialApp(
      title: title,
      home: Scaffold(
        appBar: AppBar(
          title: Text(title),
        ),
        body: Image.network('https://picsum.photos/250?image=9'),
      ),
    );
  }
} 
2 个回复

使用有状态小部件扩展您的类,然后:

   body: Inkwell(
     onTap: ()=> setState(){};
     Image.network('https://picsum.photos/250?image=9'),
   ),

这将刷新页面。 或者,如果您不想点击,则:

@override
void initState() {
  super.initState();
  setState(){
    print('refreshing');
  }
}

如果您需要强制图片刷新 - 试试这样的代码:

import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var title = 'Web Images';
    return MaterialApp(
        title: title,
        home: Scaffold(
          appBar: AppBar(
            title: Text(title),
          ),
          body: ForcePicRefresh(),
        ));
  }
}

class ForcePicRefresh extends StatefulWidget {
  @override
  _ForcePicRefreshState createState() => _ForcePicRefreshState();
}

class _ForcePicRefreshState extends State<ForcePicRefresh> {
  String url =
      'https://www.booths.co.uk/wp-content/uploads/British-Flower-1x1-2-660x371.jpg';
  Widget _pic;

  @override
  void initState() {
    _pic = Image.network(url);
    super.initState();
  }

  _updateImgWidget() async {
    setState(() {
      _pic = CircularProgressIndicator();
    });
    Uint8List bytes = (await NetworkAssetBundle(Uri.parse(url)).load(url))
        .buffer
        .asUint8List();
    setState(() {
      _pic = Image.memory(bytes);
    });
  }

  @override
  Widget build(BuildContext context) {
    return InkWell(
      child: _pic,
      onTap: () {
        _updateImgWidget();
      },
    );
  }
}
1 Flutter - 调整网络图像的大小

有没有办法在不事先将图像写入存储的情况下调整图像大小? 我正在使用一个 pdf 库,它的图像需要它的字节。 我所做的是使用 http.get 获取图像,然后获取将其放入 pdf 的字节。 问题是我需要在将图像放入 pdf 之前调整图像的大小。 我唯一拥有的是图像的网址或 uint8list ...

2 Flutter - 网络图像到文件

我有一个像“https://example.com/xyz.jpg”这样的图片网址。 现在我想把图像放在一个文件类型变量中; 沿着这些路线的东西: 重点是从给定的 URL 获取图像并将其保存为 File 变量。 我该怎么做? 我在互联网上搜索了许多解决方案,但没有直接的方法。 PS:我可能 ...

4 未找到 Flutter 网络图像图像

我的应用程序从 Firestore 读取 URL。 此 URL 指向 Firestorage 中的图像。 如果图像在 firestorage 中被删除,应用程序将继续尝试读取 URL... 我怎样才能捕捉到这个错误? 提前谢谢你! ...

5 Flutter:添加后刷新图像

如果我已经在firebase的flutter中添加了数据,但是我想添加更多,添加页面上的图像仍然出现在图像之前,我如何刷新它像以前一样返回空白? ...

6 如何在颤振中重新加载网络图像?

在 flutter 中使用网络图像时,有时我收到错误Connection closed before full header was received 。 下面的代码允许我输出错误,但如何强制小部件重新加载图像? ...

2020-05-19 13:44:40 1 216   flutter
9 如何在Flutter中下载网络映像

我通过观看YouTube上的教程,使用Api构建了一个简单的壁纸应用。 但是在最后阶段,我无法从android模拟器中的URL保存图像。 你们能帮我完成这项工作吗? ...

10 在flutter中控制网络图像质量

我正在构建一个颤振电子书应用程序。 当用户阅读时,图像需要很长时间才能加载,因为它们的大小超过 1 mb。 对于大多数拥有良好互联网连接的用户来说,这不是问题,但对于其他许多用户来说却是问题。 是否可以通过控制下载量来控制从 Internet 加载时图像的质量,类似于您搜索 google 图像时,图 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM