【flutter笔记】使用fluttertoast

3,546 阅读1分钟

前言

Flutter似乎不支持直接调用安卓的Toast,只能用Flutter自己的方式去实现Toast弹窗。(那岂不是iOS也能用,美滋滋)

实现效果

导包

进入pubspec.yaml这个文件,找到这一段代码

dependencies:
  #在这下面添加依赖库,注意库的名字要跟flutter对齐,不对齐会报错的
  flutter:
    sdk: flutter

在下面添加fluttertoast: ^4.0.1,注意要和flutter对齐,对不齐会导入失败的。

dependencies:
  #在这下面添加依赖库,注意库的名字要跟flutter对齐,不对齐会报错的
  flutter:
    sdk: flutter
  fluttertoast: ^4.0.1

然后点击Android Studio右上角的pub get

工具类

Toast这东西几乎是到处都会用到,写一个Toast工具类来便于调用,写法很简单就不多赘述了,直接抄吧。

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';

class ToastUtils {

  static void shotToast(
    String message, [//方括号里是可选参数,可以不填,等号右边是默认值
    Toast time = Toast.LENGTH_SHORT,
    ToastGravity gravity = ToastGravity.BOTTOM,
    Color backColor = Colors.black45,
    Color textColor = Colors.white,
  ]) {
    Fluttertoast.showToast(
        msg: message,//消息内容
        toastLength: time,//停留时间
        gravity: gravity,//出现的位置
        timeInSecForIosWeb: 1,
        backgroundColor: backColor,//背景色
        textColor: textColor,//前景色
        fontSize: 16.0);//文本字号
  }

}

弹出Toast

简直不要太简单,调用之后传入个消息内容就完事了,如果要改颜色和时间也传入就ok

void _clickLogin() {
    if (_user.toString().isEmpty) {
      ToastUtils.shotToast("请输入手机号");//弹出Toast
      return;
    }
    if (_password.toString().isEmpty) {
      ToastUtils.shotToast("请输入密码");//弹出Toast
      return;
    }
    _doLogin();
  }

常见问题

如果在调用的时候报了以下错误

Unhandled Exception: MissingPluginException(No implementation found for method showToast on channel PonnamKarthik/fluttertoast)

点击Android Studio的File->Invalidate Caches/Restart 按钮清除缓存重启一下再试试,AS老毛病了,缓存老是不更新。