flutter 进度条_OkHttp 在 Flutter中的运用场景,Flutter语言连接网络的方法介绍
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语言连接网络的方法介绍相关推荐
- mysql用户权限重置_mysql中重置密码与新用户权限分配的方法介绍
本篇文章给大家带来的内容是关于mysql中重置密码与新用户权限分配的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.重置root密码 1.修改配置文件,免密登陆 输入命令 ...
- linux添加一块硬盘分区,centos6中添加一块新的硬盘并分区的方法介绍
centos6中是如何添加硬盘和分区的呢?接下来的文章中小编将会带来详细的操作方法介绍,想知道的朋友可以阅读本文了解一下. 具体要求如下: 1.添加一块新的硬盘,大小1G 2.分五个区,每个大小100 ...
- python 定义函数方法,python中函数如何定义?python函数的调用方法介绍
本篇文章给大家带来的内容是关于python中函数如何定义?python函数的调用方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 函数的概念,函数是将具有独立功能的代码块 ...
- android 渐变圆形进度条_flutter好用的轮子推荐七-flutter圆形或线型进度条
前言 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. IT界著名的尼古拉斯·高尔包曾说:轮子是IT进步的阶梯!热门的框架千篇一律,好用轮子万里挑一!F ...
- Flutter进度条Flutter圆形进度条Flutter条形进度条Flutter Progress进度条LinearProgressIndicator
更多文章请查看 flutter从入门 到精通 Flutter Progress 1 条形无固定值进度条 //LinearProgressIndicator不具备设置高度的选项,可以使用SizedBox ...
- flutter进度条
CircularProgressIndicator(strokeWidth: 8), //圆形进度条Divider(), LinearProgressIndicator(minHeight: 14), ...
- python安装进度条不动_python – tkinter中的进度条不起作用
我正在写一个小应用程序来复制一些文件.我做了几乎所有我想要的东西,但有三件事: 1)复制选项处于运动状态时移动的进度条.我可以显示它,但它不会反应. 我用这个来表明它: self.p = ttk.Pr ...
- 自定义控件——圆形圆点进度条(仿安全卫士中的一键加速)
本文已授权微信公众号:鸿洋(hongyangAndroid)首发. 一.源代码 源代码及demo下载(此进度条开源项目后续会持续添加.更新) 二.行动由来 在开发交流群中,一童鞋说要实现这个进度条,但 ...
- android 环形时间显示_Android_Android实现自定义圆形进度条,今天无意中发现一个圆形进度 - phpStudy...
Android实现自定义圆形进度条 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制 ...
- 玲珑杯Unity开发心得——进度条界面(异步加载游戏场景)
/2015/08/04// by xbw ///环境 unity 4.6// 先上效果图 还可以吧,先贴一下代码, using UnityEngine;using System.Collections ...
最新文章
- 【alibaba-cloud】nacos安装
- Linux系统电脑非正常关机之后可能出现在登录界面循环的情况
- 如果你的Spring水平就这?求求就不要去面试官那里送人头了
- java test使用手册,啄木鸟(woodpecker)自动化测试工具使用手册
- 14-08-08 考核试题总结~
- 私有api调用审核失败 prefs:root
- git branch/git checkout建立分支
- 【解决方案】SkeyeVSS石油油田钻井无线智能视频监控系统解决方案
- leaflet加载谷歌影像地图、天地图影像地图、天地图影像注记
- php 阿里云短信接口 demo最新
- TensorFlow 2.1.0 使用 TFRecord 转存与读取图片
- 【数据库技术课程设计】 电信学院考研信息管理系统 +【Visual FoxPro】
- usnews美国大学计算机排名2021,2021年USNEWS美国大学计算机
- NR TM测试模式解析
- 怎么找国外客户啊?(外贸实战高手解析)
- [网友问答1]STM32驱动PCF8591模块,实现AD/DA转换
- 2021年春季ACM训练赛第4场
- Selenium、geckodriver和FireFox各版本对应关系
- day01(Flume)
- Elasticsearch从入门到放弃:文档CRUD要牢记