前言
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老毛病了,缓存老是不更新。