iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Flutter常用插件有哪些
  • 105
分享到

Flutter常用插件有哪些

2023-06-15 01:06:20 105人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Flutter常用插件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Dio网络请求框架提起 Flutter 的网络框架,就不得不提 DIO,而且令人自豪的是 DIO 是国

这篇文章将为大家详细讲解有关Flutter常用插件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Dio网络请求框架

提起 Flutter 的网络框架,就不得不提 DIO,而且令人自豪的是 DIO 是国人开发的哦!DIO 作为一个网络框架实现了全部的网络请求,包括 GET、POST、PUT、PATCH、DELETE等,同时还支持拦截器,错误捕获和文件下载。借助 DIO,可以快速完成 Flutter App 与后端的数据交互。示例代码如下:

Response response;var dio = Dio();response = await dio.get('/test?id=12&name=wendu');print(response.data.toString());// Optionally the request above could also be done asresponse = await dio.get('/test', queryParameters: {'id': 12, 'name': 'wendu'});print(response.data.toString());

DIO最新版本为4.0,在GitHub 上有近万个 Star,流行指数达到了99%,项目地址为:pub.flutter-io.cn/packages/di…

url_launcher系统应用跳转

在 App 中不可避免会使用url 跳转到系统浏览器或其他应用,这时候 url_launcher 就派上用场了, 用法十分简单:

import 'package:flutter/material.dart';import 'package:url_launcher/url_launcher.dart';const _url = 'https://flutter.cn';void main() => runApp(      const MaterialApp(        home: Material(          child: Center(            child: RaisedButton(              onPressed: _launchURL,              child: Text('Show Flutter homepage'),            ),          ),        ),      ),    );void _launchURL() async =>    await canLaunch(_url) ? await launch(_url) : throw 'Could not launch $_url';

url_launcher支持跳转到系统的浏览器打开网页,跳转拨打电话和发送短信界面,在 pub 上流行度为100%,项目地址为:pub.flutter-io.cn/packages/ur…

flutter_easyrefresh上下拉刷新

flutter 中上下拉加载数据的不二之选,也是国人开发的,支持在大部分组件上套用实现上拉加载或下拉刷新。使用方法也是很简单,同时也支持自定义 header 和 footer。

import 'package:flutter_easyrefresh/easy_refresh.dart';//...  EasyRefresh(    child: ScrollView(),    onRefresh: () async{      ....    },    onLoad: () async {      ....    },  )

flutter_easyrefresh 在 pub 上的流行度为95%,项目地址为:pub.flutter-io.cn/packages/fl…

flutter_swiper 轮播组件

flutter_swiper 是一个轮播组件,号称是 flutter 最佳的轮播组件。flutter_swiper 支持自动轮播,显示页面指示,动画时长,点击回调等多种参数设置。

new Swiper(  itemBuilder: (BuildContext context, int index) {    return new Image.network(      "Http://via.placeholder.com/288x188",      fit: BoxFit.fill,    );  },  itemCount: 10,  viewportFraction: 0.8,  scale: 0.9,)

flutter_swiper 的流行度达到了99%,项目地址为:pub.flutter-io.cn/packages/fl…

catcher 异常捕获

catcher 是一个 flutter 的全局异常捕获插件,可以自动捕捉到系统的异常,并且可以指定异常上报地址自动将运行错误上报给服务端,从而方便开发者跟踪程序的 Bug 进而进行修复。

import 'package:flutter/material.dart';import 'package:catcher/catcher.dart';main() {  /// STEP 1. Create catcher configuration.   /// Debug configuration with dialog report mode and console handler. It will show dialog and once user accepts it, error will be shown   /// in console.  CatcherOptions debuGoptions =      CatcherOptions(DialogReportMode(), [ConsoleHandler()]);        /// Release configuration. Same as above, but once user accepts dialog, user will be prompted to send email with crash to support.  CatcherOptions releaseOptions = CatcherOptions(DialogReportMode(), [    EmailManualHandler(["support@email.com"])  ]);  /// STEP 2. Pass your root widget (MyApp) along with Catcher configuration:  Catcher(rootWidget: MyApp(), debuGConfig: debugOptions, releaseConfig: releaseOptions);}

catcher 的流行度达到了95%,项目地址为:pub.flutter-io.cn/packages/ca…

cached_network_image 网络图片加载缓存

cached_network_image 有点类似iOS的 SDWEBImage,可以缓存已经加载过的图片而无需重复下载,既提高了加载速度也节省了网络资源请求。同时 cached_network_image 支持占位图、加载进度和请求失败的占位组件,可以做到很好的用户体验。

CachedNetworkImage(        imageUrl: "http://via.placeholder.com/350x150",        placeholder: (context, url) => CircularProgressIndicator(),        errorWidget: (context, url, error) => Icon(Icons.error),     ),//......

cached_network_image 流行度达到了99%,项目地址为:pub.flutter-io.cn/packages/ca…

shared_preferences 本地离线键值对缓存

shared_preferences类似iOS的 NSUserDefaults和安卓的 SharedPreferences,支持App简单的键值对离线缓存,对于离线存储简单的数据十分适用。但是需要注意的是插件的离线写入操作是异步的,因此并不能保证写入返回后100%存储成功,因此对于十分关键的数据不建议使用。

import 'package:flutter/material.dart';import 'package:shared_preferences/shared_preferences.dart';void main() {  runApp(MaterialApp(    home: Scaffold(      body: Center(      child: RaisedButton(        onPressed: _incrementCounter,        child: Text('Increment Counter'),        ),      ),    ),  ));}_incrementCounter() async {  SharedPreferences prefs = await SharedPreferences.getInstance();  int counter = (prefs.getInt('counter') ?? 0) + 1;  print('Pressed $counter times.');  await prefs.setInt('counter', counter);}

shared_preferences的流行度为100%,项目地址为:pub.flutter-io.cn/packages/sh…

image_picker 和 multi_image_pikcer 图片选择器

image_picker 和 multi_image_picker 为图片选择器,前者支持单张图片选择,后者支持多图选择,二者均支持相机或从相册选择图片。需要注意的是 multi_image_picker 默认语言是英文的,需要自己配置本地语言。

import 'dart:io';import 'package:flutter/material.dart';import 'package:image_picker/image_picker.dart';//......class _MyHomePageState extends State<MyHomePage> {  File _image;  final picker = ImagePicker();  Future getImage() async {    final pickedFile = await picker.getImage(source: ImageSource.camera);    setState(() {      if (pickedFile != null) {        _image = File(pickedFile.path);      } else {        print('No image selected.');      }    });  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text('Image Picker Example'),      ),      body: Center(        child: _image == null            ? Text('No image selected.')            : Image.file(_image),      ),      floatingActionButton: FloatingActionButton(        onPressed: getImage,        tooltip: 'Pick Image',        child: Icon(Icons.add_a_photo),      ),    );  }}

image_picker 项目地址为:pub.flutter-io.cn/packages/im…,multi_image_picker 项目地址为:pub.flutter-io.cn/packages/mu…。

marquee滚动文字组件

遇到文字太长不想换行也不想截断的时候就可以使用 marquee 了,marquee 在文字超出容器宽度后会自动滚动播报。同时,marquee 支持设置文字的多种参数,如字体,滚动方向,留白,滚动速度等等。

Marquee(  text: 'Some sample text that takes some space.',  style: TextStyle(fontWeight: FontWeight.bold),  scrollAxis: Axis.horizontal,  crossAxisAlignment: CrossAxisAlignment.start,  blankSpace: 20.0,  velocity: 100.0,  pauseAfterRound: Duration(seconds: 1),  startPadding: 10.0,  accelerationDuration: Duration(seconds: 1),  accelerationCurve: Curves.linear,  decelerationDuration: Duration(milliseconds: 500),  decelerationCurve: Curves.easeOut,)

marquee 的流行度达到了96%,项目地址为:pub.flutter-io.cn/packages/ma…。

sqflite 本地数据库访问

sqflite 从名字就知道它是用于手机端 sqlite 数据库访问的工具,支持 sqlite 数据库的全部增改删查操作,同时还支持事务和批量操作。SQL 的操作支持直接执行SQL 语句,也支持模板语法。

// Get a location using getDatabasesPathvar databasesPath = await getDatabasesPath();String path = join(databasesPath, 'demo.db');// Delete the databaseawait deleteDatabase(path);// open the databaseDatabase database = await openDatabase(path, version: 1,    onCreate: (Database db, int version) async {  // When creating the db, create the table  await db.execute(      'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');});// Insert some records in a transactionawait database.transaction((txn) async {  int id1 = await txn.rawInsert(      'INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)');  print('inserted1: $id1');  int id2 = await txn.rawInsert(      'INSERT INTO Test(name, value, num) VALUES(?, ?, ?)',      ['another name', 12345678, 3.1416]);  print('inserted2: $id2');});// Update some recordint count = await database.rawUpdate(    'UPDATE Test SET name = ?, value = ? WHERE name = ?',    ['updated name', '9876', 'some name']);print('updated: $count');// Get the recordsList<Map> list = await database.rawQuery('SELECT * FROM Test');List<Map> expectedList = [  {'name': 'updated name', 'id': 1, 'value': 9876, 'num': 456.789},  {'name': 'another name', 'id': 2, 'value': 12345678, 'num': 3.1416}];print(list);print(expectedList);assert(const DeepCollectionEquality().equals(list, expectedList));// Count the recordscount = Sqflite    .firstIntValue(await database.rawQuery('SELECT COUNT(*) FROM Test'));assert(count == 2);// Delete a recordcount = await database    .rawDelete('DELETE FROM Test WHERE name = ?', ['another name']);assert(count == 1);// Close the databaseawait database.close();

关于“Flutter常用插件有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Flutter常用插件有哪些

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

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

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

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

下载Word文档
猜你喜欢
  • Flutter常用插件有哪些
    这篇文章将为大家详细讲解有关Flutter常用插件有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。DIO网络请求框架提起 Flutter 的网络框架,就不得不提 DIO,而且令人自豪的是 DIO 是国...
    99+
    2023-06-15
  • pycharm常用插件有哪些
    在PyCharm中,有许多常用的插件可以增强开发体验和提高工作效率。以下是一些常用的PyCharm插件:1. Anaconda:集成...
    99+
    2023-10-09
    pycharm
  • Flutter 常用插件汇总
    目录DIO网络请求框架url_launcher系统应用跳转flutter_easyrefresh上下拉刷新flutter_swiper 轮播组件catcher 异常捕获cached_...
    99+
    2024-04-02
  • Grafana有哪些常用的插件
    Grafana广泛应用的开源监控和数据可视化工具,有许多常用的插件,包括但不限于: Graph 插件:用于创建时间序列数据的图表,...
    99+
    2024-04-02
  • maven常用的插件有哪些
    这篇文章主要介绍了maven常用的插件有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景maven 常用的三个插件对打包有不同的作用:maven-jar-plugin:...
    99+
    2023-06-22
  • 非常有用的jQuery插件有哪些
    这期内容当中小编将会给大家带来有关非常有用的jQuery插件有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. UploadifyUploadify是一款用于在你网...
    99+
    2024-04-02
  • 常用的Android Studio插件有哪些
    这篇文章主要讲解了“常用的Android Studio插件有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常用的Android Studio插件有哪些”吧!GsonFormat将 Jso...
    99+
    2023-06-04
  • Web前端常用插件有哪些
    一、React Developer Tools React Developer Tools是一款用于帮助开发和调试React应用的插件。它可以让开发者在Chrome和Firefox中直观地查看React组件树结构,对每一个组件的pro...
    99+
    2023-10-29
    插件 常用 有哪些
  • VIM中常用的插件有哪些
    今天小编给大家分享一下VIM中常用的插件有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。插件安装设置这是为新用户准备的,...
    99+
    2023-06-28
  • VSCode有哪些常用插件和配置
    这篇“VSCode有哪些常用插件和配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“VSCode有哪些常用插件和配置”文章吧...
    99+
    2023-06-29
  • 常用的android插件化框架有哪些
    常用的Android插件化框架有以下几种:1. VirtualAPK:支持动态加载APK,并且插件与宿主之间可以共享资源。它的特点是...
    99+
    2023-10-21
    android
  • VSCode常用插件和好用配置有哪些
    这篇文章主要介绍了VSCode常用插件和好用配置有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇VSCode常用插件和好用配置有哪些文章都会有所收获,下面我们一起来看看吧。一、VSCode常用插件推荐工欲善...
    99+
    2023-07-04
  • 使用idea插件的常见问题有哪些
    使用IDEA插件时可能遇到的一些常见问题有: 插件无法安装或更新:有时候插件仓库无法访问或下载速度缓慢,可以尝试切换到其他插件仓...
    99+
    2023-10-22
    idea
  • VSCode中日常开发实用插件有哪些
    小编给大家分享一下VSCode中日常开发实用插件有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Visual Studio Code是一个轻量级但功能强大的源...
    99+
    2023-06-06
  • webpack中常用的JS压缩插件有哪些
    这篇文章给大家分享的是有关webpack中常用的JS压缩插件有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里 讲解 三种JS 打包插件:(1)UglifyJS支持: babel present2015、w...
    99+
    2023-06-14
  • 非常有用的jQuery工具提示插件有哪些
    这篇文章给大家介绍非常有用的jQuery工具提示插件有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这里介绍了10个非常有用的jquery 提示插件。工具提示条对于完善web网站的...
    99+
    2024-04-02
  • Vuex插件有哪些
    这篇文章主要讲解了“Vuex插件有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex插件有哪些”吧!会话保持vuex-persistedstate使...
    99+
    2024-04-02
  • VS插件有哪些
    本篇内容介绍了“VS插件有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!其中Copy As Html 对于写博客十分有用,实例如下:&n...
    99+
    2023-06-17
  • Chrome插件有哪些
    本篇内容介绍了“Chrome插件有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1、EB前...
    99+
    2024-04-02
  • nodejs有哪些插件
    本篇内容介绍了“nodejs有哪些插件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作