pd_load_state library
一个用于管理网络请求不同 UI 状态的 Flutter 库,支持泛型数据携带。
本库提供了一种简单高效的方式,根据请求状态(加载中、成功、错误、空数据、完成、初始、离线) 显示不同的 UI 视图。支持自定义组件、全局配置以及带动画和渐变效果的增强版 UI。 新增泛型数据携带能力,可在成功状态时传递强类型数据。
功能特性
- 🎯 多状态管理(加载中/成功/错误/空数据/完成/初始/离线)
- 📦 泛型数据携带,支持强类型数据传递
- 🎨 增强版 UI,支持动画和渐变效果(可选)
- ✨ 状态切换动画(AnimatedSwitcher)
- 🌓 深色模式适配
- 📊 进度显示支持
- 🌍 国际化支持(中文/英文)
- ♿ 无障碍支持
- 📱 多平台支持(Android、iOS、Web、macOS、Windows、Linux)
- ⚡ 轻量级且易于使用的 API
- 🔄 基于 Stream 的状态广播,支持自动清理
- 📖 完全向后兼容,旧代码无需修改
快速开始
添加到你的 pubspec.yaml:
dependencies:
pd_load_state: ^0.2.3
使用示例
// 旧 API(向后兼容)
final loadState = PDLoadState('unique_id');
PDLoadStateLayout(
loadState: loadState,
onLoading: () => fetchData(),
builder: (context) => MyContentWidget(),
)
// 新 API(支持数据携带)
final loadState = PDLoadState<User>('user_page');
loadState.success(data: fetchedUser);
PDLoadStateLayout<User>(
loadState: loadState,
onLoading: () => fetchUser(),
dataBuilder: (context, user) => UserProfile(user: user),
)
Classes
- PDAccessibilityUtils
- 无障碍辅助工具类,为加载状态视图添加语义化支持。
-
PDLoadState<
T> - 支持泛型数据携带的加载状态管理类。
- PDLoadStateBase
- 加载状态的抽象基类,定义了状态管理的核心接口。
- PDLoadStateConfigure
- 全局配置类,用于统一配置所有加载状态组件的默认行为和样式。
- PDLoadStateDefaultWidgets
- 默认加载状态视图组件集合,提供各状态的基础 UI 实现。
- PDLoadStateEnhancedWidgets
- 增强版加载状态视图组件集合,提供现代化的动画和渐变效果。
-
PDLoadStateLayout<
T> - 加载状态布局组件,根据 PDLoadState 的状态自动切换显示不同的 UI 视图。
- PDLoadStateLocalizations
- 加载状态组件的国际化抽象基类。
- PDLoadStateLocalizationsDelegate
- 加载状态组件的国际化代理类。
- PDLoadStateLocalizationsEn
- 英文国际化实现类。
- PDLoadStateLocalizationsZh
- 中文国际化实现类。
- PDLoadStateManager
- 加载状态全局管理器,负责管理所有状态的广播和生命周期。
- PDLoadStateTestUtils
- 测试工具类,提供测试时的资源管理方法。
- PDProgressController
- 进度控制器类,提供进度管理的便捷接口。
- PDProgressState
- 进度状态管理类,继承自 ChangeNotifier。
Enums
- PDLoadStateEnum
- 加载状态枚举,定义了所有可能的 UI 状态。
Extensions
- PDLoadStateEnumExtension on PDLoadStateEnum
- PDLoadStateEnum 的扩展方法,提供便捷的状态判断和描述获取。
Typedefs
-
PDDataWidgetBuilder<
T> = Widget Function(BuildContext context, T? data) - 带数据的视图构建器类型定义。
- PDErrorWidgetBuilder = Widget Function(BuildContext context, String errorMessage, VoidCallback? onRetry)
- 错误视图构建器的类型定义。
- PDLoadStateChanged = void Function(PDLoadStateEnum stateEnum)
- 状态变化回调的类型定义。
-
PDLoadStateVoid
= PDLoadState<
void> -
PDLoadState<void>的便捷别名,用于不需要携带数据的场景。 - PDProgressWidgetBuilder = Widget Function(BuildContext context, int current, int total)
- 进度视图构建器的类型定义。