{"id":13552066,"url":"https://github.com/nslogx/flutter_easyloading","last_synced_at":"2025-05-15T03:06:29.355Z","repository":{"id":37621553,"uuid":"229680550","full_name":"nslogx/flutter_easyloading","owner":"nslogx","description":"✨A clean and lightweight loading/toast widget for Flutter, easy to use without context, support iOS、Android and Web","archived":false,"fork":false,"pushed_at":"2024-05-26T13:09:45.000Z","size":5232,"stargazers_count":1297,"open_issues_count":98,"forks_count":238,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-04-21T03:56:10.079Z","etag":null,"topics":["android","custom-animation","dart","dartlang","flutter","flutter-easyloading","flutter-package","flutter-plugin","flutter-toast","flutter-widget","indicator","ios","loading","spinkit","toast","widget"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/flutter_easyloading","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nslogx.png","metadata":{"files":{"readme":"README-zh_CN.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-23T05:08:27.000Z","updated_at":"2025-04-18T04:20:40.000Z","dependencies_parsed_at":"2024-01-19T06:56:43.183Z","dependency_job_id":"29ad0d5d-731f-47a3-ab77-2e08d36f4f5f","html_url":"https://github.com/nslogx/flutter_easyloading","commit_stats":{"total_commits":125,"total_committers":5,"mean_commits":25.0,"dds":0.08799999999999997,"last_synced_commit":"3dcffd52224c006a23e30e19ce2517aee3aa50cb"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nslogx%2Fflutter_easyloading","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nslogx%2Fflutter_easyloading/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nslogx%2Fflutter_easyloading/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nslogx%2Fflutter_easyloading/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nslogx","download_url":"https://codeload.github.com/nslogx/flutter_easyloading/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264766,"owners_count":22041793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","custom-animation","dart","dartlang","flutter","flutter-easyloading","flutter-package","flutter-plugin","flutter-toast","flutter-widget","indicator","ios","loading","spinkit","toast","widget"],"created_at":"2024-08-01T12:01:58.480Z","updated_at":"2025-05-15T03:06:29.325Z","avatar_url":"https://github.com/nslogx.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Flutter EasyLoading\n\n[![pub package](https://img.shields.io/pub/v/flutter_easyloading?style=flat)](https://pub.dev/packages/flutter_easyloading) [![pub points](https://badges.bar/flutter_easyloading/pub%20points)](https://pub.dev/packages/flutter_easyloading/score) [![popularity](https://badges.bar/flutter_easyloading/popularity)](https://pub.dev/packages/flutter_easyloading/score) [![likes](https://badges.bar/flutter_easyloading/likes)](https://pub.dev/packages/flutter_easyloading/score) [![license](https://img.shields.io/github/license/nslogx/flutter_easyloading?style=flat)](https://github.com/nslogx/flutter_easyloading) [![stars](https://img.shields.io/github/stars/nslogx/flutter_easyloading?style=social)](https://github.com/nslogx/flutter_easyloading)\n\n[English](./README.md) | 简体中文\n\n\u003cimg src=\"https://raw.githubusercontent.com/nslogx/flutter_easyloading/master/images/gif01.gif\" width=200 height=429/\u003e \u003cimg src=\"https://raw.githubusercontent.com/nslogx/flutter_easyloading/master/images/gif02.gif\" width=200 height=429/\u003e \u003cimg src=\"https://raw.githubusercontent.com/nslogx/flutter_easyloading/master/images/gif03.gif\" width=200 height=429/\u003e \u003cimg src=\"https://raw.githubusercontent.com/nslogx/flutter_easyloading/master/images/gif04.gif\" width=200 height=429/\u003e\n\n## 在线预览\n\n👉 [https://nslogx.github.io/flutter_easyloading](https://nslogx.github.io/flutter_easyloading/#/)\n\n## 安装\n\n将以下代码添加到您项目中的 `pubspec.yaml` 文件:\n\n```yaml\ndependencies:\n  flutter_easyloading: ^latest\n```\n\n## 导入\n\n```dart\nimport 'package:flutter_easyloading/flutter_easyloading.dart';\n```\n\n## 如何使用\n\n首先, 在`MaterialApp`/`CupertinoApp`中初始化`FlutterEasyLoading`:\n\n```dart\nclass MyApp extends StatelessWidget {\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter EasyLoading',\n      theme: ThemeData(\n        primarySwatch: Colors.blue,\n      ),\n      home: MyHomePage(title: 'Flutter EasyLoading'),\n      builder: EasyLoading.init(),\n    );\n  }\n}\n```\n\n然后, 请尽情使用吧:\n\n```dart\nEasyLoading.show(status: 'loading...');\n\nEasyLoading.showProgress(0.3, status: 'downloading...');\n\nEasyLoading.showSuccess('Great Success!');\n\nEasyLoading.showError('Failed with Error');\n\nEasyLoading.showInfo('Useful Information.');\n\nEasyLoading.showToast('Toast');\n\nEasyLoading.dismiss();\n```\n\n添加 Loading 状态回调\n\n```dart\nEasyLoading.addStatusCallback((status) {\n  print('EasyLoading Status $status');\n});\n```\n\n移除 Loading 状态回调\n\n```dart\nEasyLoading.removeCallback(statusCallback);\n\nEasyLoading.removeAllCallbacks();\n```\n\n## 自定义\n\n❗️**注意:**\n\n- **`textColor`、`indicatorColor`、`progressColor`、`backgroundColor` 仅对 `EasyLoadingStyle.custom`有效。**\n\n- **`maskColor` 仅对 `EasyLoadingMaskType.custom`有效。**\n\n```dart\n/// loading的样式, 默认[EasyLoadingStyle.dark].\nEasyLoadingStyle loadingStyle;\n\n/// loading的指示器类型, 默认[EasyLoadingIndicatorType.fadingCircle].\nEasyLoadingIndicatorType indicatorType;\n\n/// loading的遮罩类型, 默认[EasyLoadingMaskType.none].\nEasyLoadingMaskType maskType;\n\n/// toast的位置, 默认 [EasyLoadingToastPosition.center].\nEasyLoadingToastPosition toastPosition;\n\n/// 动画类型, 默认 [EasyLoadingAnimationStyle.opacity].\nEasyLoadingAnimationStyle animationStyle;\n\n/// 自定义动画, 默认 null.\nEasyLoadingAnimation customAnimation;\n\n/// 文本的对齐方式 , 默认[TextAlign.center].\nTextAlign textAlign;\n\n/// 文本的样式 , 默认 null.\nTextStyle textStyle;\n\n/// loading内容区域的内边距.\nEdgeInsets contentPadding;\n\n/// 文本的内边距.\nEdgeInsets textPadding;\n\n/// 指示器的大小, 默认40.0.\ndouble indicatorSize;\n\n/// loading的圆角大小, 默认5.0.\ndouble radius;\n\n/// 文本大小, 默认15.0.\ndouble fontSize;\n\n/// 进度条指示器的宽度, 默认2.0.\ndouble progressWidth;\n\n/// 指示器的宽度, 默认4.0, 仅对[EasyLoadingIndicatorType.ring, EasyLoadingIndicatorType.dualRing]有效.\ndouble lineWidth;\n\n/// [showSuccess] [showError] [showInfo]的展示时间, 默认2000ms.\nDuration displayDuration;\n\n/// 动画时间, 默认200ms.\nDuration animationDuration;\n\n/// 文本的颜色, 仅对[EasyLoadingStyle.custom]有效.\nColor textColor;\n\n/// 指示器的颜色, 仅对[EasyLoadingStyle.custom]有效.\nColor indicatorColor;\n\n/// 进度条指示器的颜色, 仅对[EasyLoadingStyle.custom]有效.\nColor progressColor;\n\n/// loading的背景色, 仅对[EasyLoadingStyle.custom]有效.\nColor backgroundColor;\n\n/// 遮罩的背景色, 仅对[EasyLoadingMaskType.custom]有效.\nColor maskColor;\n\n/// 当loading展示的时候，是否允许用户操作.\nbool userInteractions;\n\n/// 点击背景是否关闭.\nbool dismissOnTap;\n\n/// 指示器自定义组件\nWidget indicatorWidget;\n\n/// 展示成功状态的自定义组件\nWidget successWidget;\n\n/// 展示失败状态的自定义组件\nWidget errorWidget;\n\n/// 展示信息状态的自定义组件\nWidget infoWidget;\n```\n\n因为 `EasyLoading` 是一个全局单例, 所以你可以在任意一个地方自定义它的样式:\n\n```dart\nEasyLoading.instance\n  ..displayDuration = const Duration(milliseconds: 2000)\n  ..indicatorType = EasyLoadingIndicatorType.fadingCircle\n  ..loadingStyle = EasyLoadingStyle.dark\n  ..indicatorSize = 45.0\n  ..radius = 10.0\n  ..progressColor = Colors.yellow\n  ..backgroundColor = Colors.green\n  ..indicatorColor = Colors.yellow\n  ..textColor = Colors.yellow\n  ..maskColor = Colors.blue.withOpacity(0.5)\n  ..userInteractions = true\n  ..dismissOnTap = false\n  ..customAnimation = CustomAnimation();\n```\n\n更多的指示器类型可查看 👉 [flutter_spinkit showcase](https://github.com/jogboms/flutter_spinkit#-showcase)\n\n## 自定义动画\n\n例子: 👉 [Custom Animation](https://github.com/nslogx/flutter_easyloading/blob/develop/example/lib/custom_animation.dart)\n\n## 待完成\n\n- [x] 新增进度条指示器\n\n- [x] 新增自定义动画\n\n## 更新日志\n\n[CHANGELOG](./CHANGELOG.md)\n\n## 开源许可协议\n\n[MIT License](./LICENSE)\n\n## ❤️❤️❤️\n\n感谢 [flutter_spinkit](https://github.com/jogboms/flutter_spinkit) ❤️\n\n感谢 [JetBrains Open Source](https://www.jetbrains.com/community/opensource/#support) 提供支持\n\n[\u003cimg src=\"https://raw.githubusercontent.com/nslogx/flutter_easyloading/master/images/jetbrains.png\" width=200 height=112/\u003e](https://www.jetbrains.com/?from=FlutterEasyLoading)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnslogx%2Fflutter_easyloading","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnslogx%2Fflutter_easyloading","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnslogx%2Fflutter_easyloading/lists"}