Flutter 中使用流行的 http 包 进行网络请求是很简单的。

虽然 http 包没有 OkHttp 中的所有功能,但是它抽象了很多通常你会自己实现的网络功能,这使其本身在执行网络请求时简单易用。

如果要使用 http 包,需要在 pubspec.yaml 文件中添加依赖:

如果要发起一个网络请求,在异步 (async) 方法 http.get() 上调用 await 即可:

如何为耗时任务显示进度?

在 Android 中你通常会在后台执行一个耗时任务的时候显示一个 ProgressBar 在界面上。

在 Flutter 中,我们使用 ProgressIndicator Widget。通过代码逻辑使用一个布尔标记值控制进度条的渲染。

在下面的例子中,build 方法被拆分成三个不同的方法。如果 showLoadingDialog() 返回 true(当 widgets.length == 0),渲染 ProgressIndicator。否则,在 ListView 里渲染网络请求返回的数据。

content_copy

import 'dart:convert';import 'package:flutter/material.dart';import 'package:http/http.dart' as http;void main() { runApp(SampleApp());}class SampleApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Sample App', theme: ThemeData( primarySwatch: Colors.blue, ), home: SampleAppPage(), ); }}class SampleAppPage extends StatefulWidget { SampleAppPage({Key key}) : super(key: key); @override _SampleAppPageState createState() => _SampleAppPageState();}class _SampleAppPageState extends State { List widgets = []; @override void initState() { super.initState(); loadData(); } showLoadingDialog() { return widgets.length == 0; } getBody() { if (showLoadingDialog()) { return getProgressDialog(); } else { return getListView(); } } getProgressDialog() { return Center(child: CircularProgressIndicator()); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Sample App"), ), body: getBody()); } ListView getListView() => ListView.builder( itemCount: widgets.length, itemBuilder: (BuildContext context, int position) { return getRow(position); }); Widget getRow(int i) { return Padding(padding: EdgeInsets.all(10.0), child: Text("Row ${widgets[i]["title"]}")); } loadData() async { String dataURL = "https://jsonplaceholder.typicode.com/posts"; http.Response response = await http.get(dataURL); setState(() { widgets = json.decode(response.body); }); }}

以上算是Flutter 当中请求网络,然后添加加载进度框的方法,码子不易,如果你也在学习Flutter,可以点赞、关注、收藏我,后续一直写Flutter相关的文章

flutter 进度条_OkHttp 在 Flutter中的运用场景,Flutter语言连接网络的方法介绍相关推荐

  1. mysql用户权限重置_mysql中重置密码与新用户权限分配的方法介绍

    本篇文章给大家带来的内容是关于mysql中重置密码与新用户权限分配的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.重置root密码 1.修改配置文件,免密登陆 输入命令 ...

  2. linux添加一块硬盘分区,centos6中添加一块新的硬盘并分区的方法介绍

    centos6中是如何添加硬盘和分区的呢?接下来的文章中小编将会带来详细的操作方法介绍,想知道的朋友可以阅读本文了解一下. 具体要求如下: 1.添加一块新的硬盘,大小1G 2.分五个区,每个大小100 ...

  3. python 定义函数方法,python中函数如何定义?python函数的调用方法介绍

    本篇文章给大家带来的内容是关于python中函数如何定义?python函数的调用方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 函数的概念,函数是将具有独立功能的代码块 ...

  4. android 渐变圆形进度条_flutter好用的轮子推荐七-flutter圆形或线型进度条

    前言 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. IT界著名的尼古拉斯·高尔包曾说:轮子是IT进步的阶梯!热门的框架千篇一律,好用轮子万里挑一!F ...

  5. Flutter进度条Flutter圆形进度条Flutter条形进度条Flutter Progress进度条LinearProgressIndicator

    更多文章请查看 flutter从入门 到精通 Flutter Progress 1 条形无固定值进度条 //LinearProgressIndicator不具备设置高度的选项,可以使用SizedBox ...

  6. flutter进度条

    CircularProgressIndicator(strokeWidth: 8), //圆形进度条Divider(), LinearProgressIndicator(minHeight: 14), ...

  7. python安装进度条不动_python – tkinter中的进度条不起作用

    我正在写一个小应用程序来复制一些文件.我做了几乎所有我想要的东西,但有三件事: 1)复制选项处于运动状态时移动的进度条.我可以显示它,但它不会反应. 我用这个来表明它: self.p = ttk.Pr ...

  8. 自定义控件——圆形圆点进度条(仿安全卫士中的一键加速)

    本文已授权微信公众号:鸿洋(hongyangAndroid)首发. 一.源代码 源代码及demo下载(此进度条开源项目后续会持续添加.更新) 二.行动由来 在开发交流群中,一童鞋说要实现这个进度条,但 ...

  9. android 环形时间显示_Android_Android实现自定义圆形进度条,今天无意中发现一个圆形进度 - phpStudy...

    Android实现自定义圆形进度条 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制 ...

  10. 玲珑杯Unity开发心得——进度条界面(异步加载游戏场景)

    /2015/08/04// by xbw ///环境 unity 4.6// 先上效果图 还可以吧,先贴一下代码, using UnityEngine;using System.Collections ...

最新文章

  1. 专业研究HP procurve网络、阿姆瑞特和系统集成的论坛
  2. Asp.net常用的操作函数
  3. 脸红是因为缺乏乙醛分解酶导致的酒精中毒
  4. mysql 排除另一表_MYSQL 两表 排除 重复记录
  5. Juniper CoS 基本配置说明
  6. 前端开发面试题-JavaScript(二)
  7. -i https://pypi.tuna.tsinghua.edu.cn/simple -U
  8. PS CS6教程(photoshop视频教程) 免费下载
  9. eclipse背景设置什么颜色缓解眼睛疲劳
  10. Unity Shader 内置函数
  11. 使用C#进行串口通信开发上位机软件
  12. 利用AlphaFold进行蛋白质结构预测
  13. ExcelDNA的入门使用
  14. cadence SPB17.4 - allegro添加过孔
  15. [翻译工程][英译中]枫决9 MapleKombat IX
  16. 大学计算机教材李琦2019,计算机科学与软件学院_关于征订2019-2020学年第一学期教材的通知...
  17. 【​观察】晋级CNCF白金会员背后,阿里云为何如此看重开源?
  18. 7月8日,腾讯电子签棋煜“签千万”专场招商会,重磅来袭
  19. python爬历年大学生就业数据_Python就业行情和前景分析之一爬取数据
  20. [附源码]计算机毕业设计JAVAjsp美容院业务管理系统

热门文章

  1. HashTable源码简单介绍
  2. 学习EXT.JS5时的重点载图
  3. 移动端设计尺寸基础知识
  4. 10个优秀的JavaScript参考手册
  5. javascript 常用代码技巧大收集
  6. MasterPage
  7. mysqlplus 字段验证策略fieldStrategy
  8. Spring BeanFactory和FactoryBean的区别
  9. 权限管理框架之Shiro
  10. 传统IDC部署网站(八)