前言
官方虽然提供了内置的加载指示器和提示信息,但是功能比较简陋,这里推荐:flutter_easyloading
CircularProgressIndicator
CircularProgressIndicator()
加粗样式
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(// 提示的内容content: Text("这是一条提示"),// 阴影elevation: 8,//持续时间,默认4秒duration: Duration(seconds: 4),//颜色backgroundColor: Colors.orange,// 形状shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(20.0)),),));
基本使用
官方地址
https://pub-web.flutter-io.cn/packages/flutter_easyloading
安装
flutter pub add flutter_easyloading
官方在线示例
https://nslogx.github.io/flutter_easyloading/#/
loading
初始化
首先需要在MaterialApp/CupertinoApp
中进行初始化
MaterialApp(//指定显示哪一个页面home: const YcHomePage(),builder: EasyLoading.init(),);
简单使用
// 显示指示器EasyLoading.show(status: '加载中', // 要显示的文字);// 延时2秒Future.delayed(const Duration(seconds: 2), () {// 关闭指示器EasyLoading.dismiss();});
加载样式的设置
加载样式分为全局设置,和非全局设置。下面以加载wave
为例
- 全局设置
main() {runApp(const MyApp());configLoading();
}// 设置loading,其他配置见官方文档
void configLoading() {EasyLoading.instance..displayDuration = const Duration(milliseconds: 2000) // 加载时间..indicatorType = EasyLoadingIndicatorType.wave // 加载类型..loadingStyle = EasyLoadingStyle.light // 加载样式..indicatorSize = 45.0 // 大小..maskType = EasyLoadingMaskType.black // 遮罩..userInteractions = true // 使用单例模式..dismissOnTap = false; // 指示器结束的点击时间
}
- 单独使用
onPressed: () {EasyLoading.instance..displayDuration = const Duration(milliseconds: 2000) // 加载时间..indicatorType = EasyLoadingIndicatorType.cubeGrid // 加载类型..loadingStyle = EasyLoadingStyle.light // 加载样式..indicatorSize = 45.0 // 大小..maskType = EasyLoadingMaskType.black // 遮罩..userInteractions = true // 使用单例模式..dismissOnTap = false; // 指示器结束的点击时间// 显示指示器EasyLoading.show(status: '加载中', // 要显示的文字);// 延时2秒Future.delayed(const Duration(seconds: 2), () {// 关闭指示器EasyLoading.dismiss();});},child: const Text("加载"))
消息提示
初始化
首先需要在MaterialApp/CupertinoApp
中进行初始化
MaterialApp(//指定显示哪一个页面home: const YcHomePage(),builder: EasyLoading.init(),);
showToast
EasyLoading.showToast("这是一个Toast");
// 延时2秒
Future.delayed(const Duration(seconds: 2), () {EasyLoading.dismiss();
});
showInfo
EasyLoading.showInfo("这是一个Info");
showError
EasyLoading.showError("这是一个Error");
showSuccess
EasyLoading.showSuccess("这是一个success");
showProgress
EasyLoading.showProgress(0.2,status: '下载中...');
这个不知道是什么情况,没有显示出圆形进度条。