广告
返回顶部
首页 > 资讯 > 精选 >Flutter怎么使用NetworkImage实现图像显示效果
  • 613
分享到

Flutter怎么使用NetworkImage实现图像显示效果

2023-06-30 07:06:55 613人浏览 泡泡鱼
摘要

本篇内容主要讲解“Flutter怎么使用NetworkImage实现图像显示效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flutter怎么使用NetworkImage实现图像显示效果”吧!

本篇内容主要讲解“Flutter怎么使用NetworkImage实现图像显示效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flutter怎么使用NetworkImage实现图像显示效果”吧!

使用 NetworkImage 显示图像

GitHub 中,每个成员都有其头像的 URL。您的下一个改进是将该头像添加到Member课程中并在应用程序中显示这些头像。

更新Member以添加avatarUrl属性。它现在应该是这样的:

class Member {  Member(this.login, this.avatarUrl);  final String login;  final String avatarUrl;}

由于avatarUrl现在是必需参数,因此 Flutter 在_loadData. 将setState回调替换为_loadData以下更新版本:

setState(() {  final dataList = JSON.decode(response.body) as List;  for (final item in dataList) {    final login = item['login'] as String? ?? '';    final url = item['avatar_url'] as String? ?? '';    final member = Member(login, url);    _members.add(member);  }});

上面的代码使用avatar_url键在从 jsON 解析的地图中查找 URL 值,然后将其设置为url字符串,然后将其传递给Member

现在您可以访问头像的 URL,将其添加到您的ListTile. 替换_buildRow为以下内容:

Widget _buildRow( int i) {   return Padding(     padding: const EdgeInsets.all( 16.0 ),     child: ListTile(       title: Text( ' ${_members[i].login} ' , style: _biggerFont),       Leadership: CircleAvatar(         backgroundColor : Colors.green,         backgroundImage: NetworkImage(_members[i].avatarUrl),       ),     ),   ); }

这会CircleAvatar在您的ListTile. 当您等待图像下载时,背景CircleAvatar将是绿色的。

执行热重启而不是热重新加载。您将在每一行中看到您的会员头像:

Flutter怎么使用NetworkImage实现图像显示效果

整理代码

你的大部分代码现在都在main.dart 中。为了使代码更简洁一些,您将类重构为它们自己的文件。

在lib文件夹中创建名为member.dart和ghflutter.dart的文件。移动到member.dart两者并进入ghflutter.dart。Member``_GHFlutterState``GHFlutter

你不需要任何import语句member.dart,但在进口ghflutter.dart应该是:

import 'dart:convert';import 'package:flutter/material.dart';import 'package:Http/http.dart' as http;import 'member.dart';import 'strings.dart' as strings;

您还需要更新main.dart 中的导入。用以下内容替换整个文件:

// ignore_for_file: prefer_const_constructors, unnecessary_newimport 'dart:convert';import 'package:http/http.dart' as http;import 'package:flutter/material.dart';import 'jg_flutter_page.dart';import 'strings.dart' as strings;void main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return new MaterialApp(      title: strings.appTitle,      theme: ThemeData(primaryColor: Colors.green.shade800),      home: JGFlutter(),    );  }}

jg_flutter_page.dart

import 'dart:convert';import 'package:flutter/material.dart';import 'package:http/http.dart' as http;import 'member.dart';import 'strings.dart' as strings;class JGFlutter extends StatefulWidget {  const JGFlutter({Key? key}) : super(key: key);  @override  _JGFlutterState createState() => _JGFlutterState();}class _JGFlutterState extends State<JGFlutter> {  final _members = <Member>[];  final _biggerFont = const TextStyle(fontSize: 18.0);  @override  void initState() {    // TODO: implement initState    super.initState();    _loadData();  }  Future<void> _loadData() async {    const dataUrl = 'https://api.github.com/orgs/raywenderlich/members';    final response = await http.get(Uri.parse(dataUrl));    setState(() {      final dataList = json.decode(response.body) as List;      for (final item in dataList) {        final login = item['login'] as String? ?? '';        final url = item['avatar_url'] as String? ?? '';        final member = Member(login, url);        _members.add(member);      }    });  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: const Text(strings.appTitle),      ),      body: ListView.separated(          itemCount: _members.length,          itemBuilder: (BuildContext context, int position) {            return _buildRow(position);          },          separatorBuilder: (context, index) {            return const Divider();          }),    );  }  Widget _buildRow(int i) {    return Padding(      padding: const EdgeInsets.all(16.0),      child: ListTile(        title: Text('${_members[i].login}', style: _biggerFont),        leading: CircleAvatar(          backgroundColor: Colors.green,          backgroundImage: NetworkImage(_members[i].avatarUrl),        ),      ),    );  }}

member

class Member {  Member(this.login, this.avatarUrl);  final String login;  final String avatarUrl;}

strings.dart

const appTitle = 'JGFlutter';

到此,相信大家对“Flutter怎么使用NetworkImage实现图像显示效果”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Flutter怎么使用NetworkImage实现图像显示效果

本文链接: https://www.lsjlt.com/news/327697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter使用NetworkImage实现图像显示效果
    使用 NetworkImage 显示图像 在 GitHub 中,每个成员都有其头像的 URL。您的下一个改进是将该头像添加到Member课程中并在应用程序中显示这些头像。 更新Mem...
    99+
    2022-11-13
  • Flutter怎么使用NetworkImage实现图像显示效果
    本篇内容主要讲解“Flutter怎么使用NetworkImage实现图像显示效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flutter怎么使用NetworkImage实现图像显示效果”吧!...
    99+
    2023-06-30
  • C语言实现二值图像模拟灰值图像显示效果
    本文实例为大家分享了C语言实现二值图像模拟灰值图像显示效果的具体代码,供大家参考,具体内容如下 图案法 图案法(patterning)是指灰度可以用一定比例的黑白点组成的区域表示,从...
    99+
    2022-11-12
  • Android使用API实现图像扭曲效果示例
    本文实例讲述了Android使用API实现图像扭曲效果。分享给大家供大家参考,具体如下:public class BitmapMesh extends GraphicsActivity { @Override protected void ...
    99+
    2023-05-30
    android api 图像
  • 怎么使用Flutter+Metal实现图像处理
    这篇“怎么使用Flutter+Metal实现图像处理”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Flutter+M...
    99+
    2023-07-02
  • CSS怎么实现响应式图像显示
    这篇文章主要介绍“CSS怎么实现响应式图像显示”,在日常操作中,相信很多人在CSS怎么实现响应式图像显示问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS怎么实现响应式图像...
    99+
    2022-10-19
  • vue怎么使用天地图和openlayers实现多个底图叠加显示效果
    这篇文章主要介绍了vue怎么使用天地图和openlayers实现多个底图叠加显示效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用天地图和openlayers实现多个底图叠加显示效果文章都会有所收...
    99+
    2023-06-30
  • 纯CSS怎么实现鼠标悬停显示图片效果
    这篇文章给大家分享的是有关纯CSS怎么实现鼠标悬停显示图片效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在做一个网盘的项目,用到了鼠标移上去效果,这个效果可以用js来实现...
    99+
    2022-10-19
  • 怎么使用Android Flutter实现弹幕效果
    本篇内容介绍了“怎么使用Android Flutter实现弹幕效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言需求要点如下:...
    99+
    2023-07-02
  • 使用opencvs怎么实现一个图像平移效果
    今天就跟大家聊聊有关使用opencvs怎么实现一个图像平移效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。图像平移:按照指定方向和距离,移动到相应位置格式:cv.warpAffin...
    99+
    2023-06-14
  • 利用Echarts实现图例显示百分比效果
    目录效果图主要代码全部代码echarts图例显示百分比 效果图 主要代码 全部代码 secondChart = () => { //datas的数据是接口拿到的数据...
    99+
    2022-11-13
  • Opencv怎么实现图像卡通化效果
    本文小编为大家详细介绍“Opencv怎么实现图像卡通化效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“Opencv怎么实现图像卡通化效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。OpenCV的全称是:Op...
    99+
    2023-06-26
  • css怎么实现3D图像轮转效果
    这篇文章主要讲解了“css怎么实现3D图像轮转效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css怎么实现3D图像轮转效果”吧!首先看html文件,div.billboard为效果的容器...
    99+
    2023-07-04
  • Java怎么实现图像与声音效果
    这篇文章主要介绍“Java怎么实现图像与声音效果”,在日常操作中,相信很多人在Java怎么实现图像与声音效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现图像与声音效果”的疑惑有所帮助!接下来...
    99+
    2023-06-03
  • jQuery隐藏和显示效果怎么实现
    jQuery的隐藏和显示效果可以通过以下方法来实现:1. hide()和show()方法:可以使用hide()方法来隐藏元素,使用s...
    99+
    2023-10-11
    jQuery
  • vue使用天地图、openlayers实现多个底图叠加显示效果
    实现效果: 需求:根据返回的经纬度列表通过天地图、openlayers实现底图添加(航道图层、线图层、水深图层) tk:自己申请的密钥 安装opelayers cnpm i -S ...
    99+
    2022-11-13
  • PyQt5实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果
    目录前言一、解决步骤1.1 qt designer1.2 pycharm编写程序总结前言 如题目所述,又是花费了两天的时间实现了该功能,本来今天下午有些心灰意冷,打算放弃嵌入到Sc...
    99+
    2022-11-12
  • 怎么用css实现超出显示省略号效果
    CSS中的超出省略是指当一个元素内的文本超出了其容器的宽度或高度时,通过CSS的属性设置来以省略号的形式来显示该文本内容的一种方式。一般情况下,文本溢出时浏览器会自动将文本换到下一行进行显示。但是在某些情况下,特别是在移动端或者响应式设计中...
    99+
    2023-05-14
  • PyQt5如何实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果
    这篇文章将为大家详细讲解有关PyQt5如何实现将Matplotlib图像嵌入到Scoll Area中显示滚动条效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言如题目所述,又是花费了两天的时间实现了该...
    99+
    2023-06-15
  • Electron怎么实现应用显示隐藏时展示动画效果
    今天小编给大家分享一下Electron怎么实现应用显示隐藏时展示动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。最终效...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作