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. 【alibaba-cloud】nacos安装
  2. Linux系统电脑非正常关机之后可能出现在登录界面循环的情况
  3. 如果你的Spring水平就这?求求就不要去面试官那里送人头了
  4. java test使用手册,啄木鸟(woodpecker)自动化测试工具使用手册
  5. 14-08-08 考核试题总结~
  6. 私有api调用审核失败 prefs:root
  7. git branch/git checkout建立分支
  8. 【解决方案】SkeyeVSS石油油田钻井无线智能视频监控系统解决方案
  9. leaflet加载谷歌影像地图、天地图影像地图、天地图影像注记
  10. php 阿里云短信接口 demo最新
  11. TensorFlow 2.1.0 使用 TFRecord 转存与读取图片
  12. 【数据库技术课程设计】 电信学院考研信息管理系统 +【Visual FoxPro】
  13. usnews美国大学计算机排名2021,2021年USNEWS美国大学计算机
  14. NR TM测试模式解析
  15. 怎么找国外客户啊?(外贸实战高手解析)
  16. [网友问答1]STM32驱动PCF8591模块,实现AD/DA转换
  17. 2021年春季ACM训练赛第4场
  18. Selenium、geckodriver和FireFox各版本对应关系
  19. day01(Flume)
  20. Elasticsearch从入门到放弃:文档CRUD要牢记

热门文章

  1. Zookeeper+Curator 分布式锁
  2. poj3414 Pots
  3. 任务调度 QUARTZ
  4. main方法能重载么?能被其他方法调用么? 能继承么?
  5. 解决Xshell连接linux失败的问题
  6. servlet 之forward和sendRedirect跳转
  7. 关于RocketMQ消费者消费队列的消费起始位置源码分析
  8. JDK 8 函数式编程入门
  9. EF Code First学习笔记 初识Code First
  10. 屏蔽Codeforces做题时的Problem tags提示