パッケージ、リポジトリ、アプリカテゴリを検索

flutter_easyloading のカバー
パッケージ詳細v4.0.2

flutter_easyloading

Flutter用の洗練された軽量なローディング/トーストウィジェット。コンテキストなしで簡単に使用でき、iOS、Android、Webをサポートしています。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
11.4万
いいね数
2290
Pub ポイント
160

パッケージをインストール

flutter pub add flutter_easyloading

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Flutter用の軽量で洗練されたローディングおよびトーストウィジェットで、複数のプラットフォームでのシンプルさと使いやすさを目的としています。コンテキストを必要とせず表示できるため、アプリ内のさまざまな場所に迅速に実装するのに最適です。iOS、Android、Web、macOS、Windows、Linuxをサポートしており、デバイス間で一貫したユーザー体験を提供します。パッケージは、ローディングインジケーターやトーストメッセージの滑らかなアニメーションとカスタマイズ可能な外観を提供しています。

用途

  • API 呼び出し中にローディング状態を表示する
  • トーストで成功またはエラーメッセージを表示する
  • バックグラウンドタスク中にフィードバックを提供する
  • 非侵襲的な通知によるUXの向上
  • グローバルロードオーバーレイの実装
  • 複雑なワークフローにおけるUIフィードバックの簡素化

主な機能

  • 使用にはコンテキストが不要です
  • クロスプラットフォーム対応(iOS、Android、Web、macOS、Windows、Linux)
  • カスタマイズ可能な外観と期間
  • 読み込みおよびトースト用のスムーズなアニメーション
  • 最小限のセットアップで簡単な API
  • ロードモードとトーストモードの両方をサポートしています

適している対象

  • 迅速なUIフィードバックソリューションを求める開発者
  • 軽量な読み込みコンポーネントを必要とするプロジェクト
  • 複数のプラットフォームをターゲットにするアプリ
  • 開発者の生産性を最優先とするチーム
  • 繊細なフィードバックを必要とするユーザーエクスペリエンス重視のアプリケーション
  • 最小限のオーバーヘッドでプロトタイプとMVP

注意事項

  • 機能豊富なローダーと比べてカスタマイズの選択肢が限られている
  • ブランド固有のデザインには、追加のスタイリングが必要になる場合があります
  • 詳細な進行状況の追跡を伴う複雑な読み込みシナリオには適していません
  • プラットフォーム固有のレンダリングに外部依存関係に依存しています
  • 永続的なUI要素ではなく、単純で一時的なフィードバックに適しています

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Flutter EasyLoading

pub package CI pub points likes license

🌐 English | 简体中文

A lightweight, customizable loading, progress, result, and toast overlay for Flutter. Display calls do not require a BuildContext.

  • Loading, determinate progress, result states, and toast messages
  • Global calls without passing a BuildContext
  • Built-in indicators, custom widgets, and custom transitions
  • Global defaults with immutable per-call overrides
  • Material and Cupertino application support

🎬 Preview

Loading indicator preview Progress preview Result preview Toast preview

Open the interactive Flutter EasyLoading preview

🧰 Requirements

  • Dart 3.6.0 or later, below Dart 4.0.0
  • Flutter 3.27.0 or later

Read the 4.0 migration guide before upgrading from 3.x.

📦 Installation

flutter pub add flutter_easyloading

Or add the dependency manually:

dependencies:
  flutter_easyloading: ^4.0.2
import 'package:flutter_easyloading/flutter_easyloading.dart';

🚀 Quick Start

Install one EasyLoading Host at the root MaterialApp or CupertinoApp:

MaterialApp(
  builder: EasyLoading.init(),
  home: const HomePage(),
);

Display and dismiss content from anywhere after the Host is mounted:

await EasyLoading.show(status: 'Loading...');
await EasyLoading.showProgress(0.5, status: 'Downloading...');

await EasyLoading.showSuccess('Completed');
await EasyLoading.showError('Request failed');
await EasyLoading.showInfo('Update available');
await EasyLoading.showToast('Saved');

await EasyLoading.dismiss();

All display and dismissal methods return Future<void> and can be awaited.

If the application already has a root builder, compose it through init:

MaterialApp(
  builder: EasyLoading.init(
    builder: (context, child) => ExistingRoot(child: child),
  ),
  home: const HomePage(),
);

📖 API Reference

Initialization and state
API Returns Description
EasyLoading() EasyLoading Returns the shared configuration instance.
EasyLoading.instance EasyLoading Accesses the shared configuration instance.
EasyLoading.isShow bool Reports whether an EasyLoading overlay is active.
EasyLoading.init({builder}) TransitionBuilder Creates the application-level Host builder and optionally composes another builder.
FlutterEasyLoading(child: child) FlutterEasyLoading Creates the Host widget directly. Most applications should use EasyLoading.init().
Display and dismissal
API Parameters Description
EasyLoading.show(...) status, indicator, maskType, dismissOnTap, duration, options Shows or updates an indeterminate loading indicator.
EasyLoading.showProgress(value, ...) status, maskType, indicator, duration, dismissOnTap, options Shows or updates determinate progress from 0.0 to 1.0.
EasyLoading.showSuccess(status, ...) duration, maskType, dismissOnTap, options Shows a success result.
EasyLoading.showError(status, ...) duration, maskType, dismissOnTap, options Shows an error result.
EasyLoading.showInfo(status, ...) duration, maskType, dismissOnTap, options Shows an information result.
EasyLoading.showToast(status, ...) duration, toastPosition, maskType, dismissOnTap, options Shows a text-only toast.
EasyLoading.showCustom(content, ...) duration, maskType, dismissOnTap, options Shows arbitrary widget content.
EasyLoading.dismiss({animation}) animation defaults to true Dismisses the active overlay.
Callbacks
API Description
EasyLoading.addStatusCallback(callback) Adds an EasyLoadingStatusCallback.
EasyLoading.removeCallback(callback) Removes one status callback.
EasyLoading.removeAllCallbacks() Removes every status callback.
EasyLoading.addDismissCallback(callback) Adds an EasyLoadingDismissCallback.
EasyLoading.removeDismissCallback(callback) Removes one dismissal callback.
EasyLoading.removeAllDismissCallbacks() Removes every dismissal callback.
void onStatus(EasyLoadingStatus status) {
  // EasyLoadingStatus.show or EasyLoadingStatus.dismiss
}

void onDismiss(EasyLoadingDismissReason reason) {
  // programmatic, tap, timeout, or hostDetached
}

EasyLoading.addStatusCallback(onStatus);
EasyLoading.addDismissCallback(onDismiss);

// Remove callbacks when their owner is disposed.
EasyLoading.removeCallback(onStatus);
EasyLoading.removeDismissCallback(onDismiss);

⚙️ Configuration

Set global defaults once during application startup:

EasyLoading.instance
  ..loadingStyle = EasyLoadingStyle.dark
  ..indicatorType = EasyLoadingIndicatorType.fadingCircle
  ..maskType = EasyLoadingMaskType.none
  ..toastPosition = EasyLoadingToastPosition.bottom
  ..displayDuration = const Duration(seconds: 2)
  ..animationDuration = const Duration(milliseconds: 200);
General
Property Type Default Description
loadingStyle EasyLoadingStyle dark Panel color style.
indicatorType EasyLoadingIndicatorType fadingCircle Built-in loading indicator.
maskType EasyLoadingMaskType none Default barrier style and interaction mode.
toastPosition EasyLoadingToastPosition center Default toast placement.
animationStyle EasyLoadingAnimationStyle opacity Panel transition style.
displayDuration Duration 2000 ms Default result and toast duration.
animationDuration Duration 200 ms Presentation and dismissal transition duration.
userInteractions bool? null Optional override for input reaching the application below the overlay.
dismissOnTap bool? null (false) Default tap-to-dismiss override.
Layout and text
Property Type Default Description
textAlign TextAlign center Status text alignment.
contentPadding EdgeInsets vertical: 15, horizontal: 20 Panel content padding.
textPadding EdgeInsets bottom: 10 Space between the indicator and status text.
indicatorSize double 40 Built-in indicator width and height.
radius double 5 Panel corner radius.
fontSize double 15 Status font size when textStyle is not set.
progressWidth double 2 Determinate progress stroke width.
lineWidth double 4 Stroke width for supported built-in indicators.
textStyle TextStyle? null Complete status text style.
Colors and effects
Property Type Default Description
textColor Color? null Status color for EasyLoadingStyle.custom.
indicatorColor Color? null Indicator color for EasyLoadingStyle.custom.
progressColor Color? null Progress color for EasyLoadingStyle.custom.
backgroundColor Color? null Panel color for EasyLoadingStyle.custom.
boxShadow List<BoxShadow>? null Panel shadows for EasyLoadingStyle.custom.
maskColor Color? null Barrier color for EasyLoadingMaskType.custom.
Custom widgets and animation
Property Type Default Description
customAnimation EasyLoadingAnimation? null Transition used by EasyLoadingAnimationStyle.custom.
indicatorWidget Widget? null Global replacement for the loading indicator.
successWidget Widget? null Global replacement for the success icon.
errorWidget Widget? null Global replacement for the error icon.
infoWidget Widget? null Global replacement for the information icon.

Custom modes require their corresponding values:

  • EasyLoadingStyle.custom: backgroundColor, indicatorColor, and textColor; progress also requires progressColor.
  • EasyLoadingMaskType.custom: maskColor.
  • EasyLoadingAnimationStyle.custom: customAnimation.

🎛️ Per-call Options

EasyLoadingOptions is an immutable snapshot for one display call. Every field is optional and inherits the corresponding global value when omitted.

Group Supported fields
Appearance loadingStyle, indicatorType, animationStyle, backgroundColor, boxShadow
Indicator and progress indicatorSize, indicatorColor, progressColor, progressWidth, lineWidth
Text textAlign, textStyle, textColor, fontSize, textPadding
Layout alignment, constraints, contentPadding, radius
Animation animationDuration, customAnimation
Mask and interaction maskColor, userInteractions

maskType, dismissOnTap, and duration remain direct method parameters. toastPosition is a direct parameter of showToast.

await EasyLoading.show(
  status: 'Uploading',
  maskType: EasyLoadingMaskType.black,
  duration: const Duration(seconds: 10),
  options: const EasyLoadingOptions(
    loadingStyle: EasyLoadingStyle.auto,
    alignment: AlignmentDirectional.topEnd,
    constraints: BoxConstraints(maxWidth: 320),
    indicatorType: EasyLoadingIndicatorType.ring,
  ),
);

🧩 Public Types

Type Values or purpose
EasyLoadingStyle light, dark, custom, auto
EasyLoadingToastPosition top, center, bottom
EasyLoadingAnimationStyle opacity, offset, scale, custom
EasyLoadingMaskType none, clear, black, custom
EasyLoadingIndicatorType 30 built-in indicators listed below.
EasyLoadingStatus show, dismiss
EasyLoadingDismissReason programmatic, tap, timeout, hostDetached
EasyLoadingStatusCallback void Function(EasyLoadingStatus status)
EasyLoadingDismissCallback void Function(EasyLoadingDismissReason reason)
EasyLoadingOptions Immutable visual and layout overrides for one call.
EasyLoadingAnimation Base class for custom transitions; implement buildWidget.
FlutterEasyLoading Application-level Host widget created by EasyLoading.init().
All EasyLoadingIndicatorType values

fadingCircle, circle, threeBounce, chasingDots, wave, wanderingCubes, rotatingPlain, doubleBounce, fadingFour, fadingCube, pulse, cubeGrid, rotatingCircle, foldingCube, pumpingHeart, dualRing, hourGlass, pouringHourGlass, fadingGrid, ring, ripple, spinningCircle, squareCircle, dancingSquare, pianoWave, pouringHourGlassRefined, pulsingGrid, spinningLines, threeInOut, and waveSpinner.

🎨 Custom Content

await EasyLoading.showCustom(
  const Material(
    child: Padding(
      padding: EdgeInsets.all(16),
      child: Text('Custom content'),
    ),
  ),
  maskType: EasyLoadingMaskType.black,
  options: const EasyLoadingOptions(
    alignment: AlignmentDirectional.bottomCenter,
    constraints: BoxConstraints(maxWidth: 320),
  ),
);

See the example application's custom animation for an EasyLoadingAnimation implementation.

🔄 Migrating From 3.x

Common init, show..., dismiss, status callback, and EasyLoading.instance call forms remain valid. Review the SDK baseline and removed undocumented internals in the 4.0 migration guide.

🗂️ Project

⚖️ License

Flutter EasyLoading is available under the MIT License.

🙏 Credits

Built-in loading indicators are provided by flutter_spinkit.

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト