Flutter准备就绪状态检测插件ready的使用

Flutter准备就绪状态检测插件ready的使用

N|Ready

N|GitHub forks N|GitHub Repo stars N|GitHub watchers [N|Ready]

  • Ready是一个非常简单的包,允许你使用Flutter创建你的管理面板。
  • 它不仅是一个管理面板,还包含了一些非常有用的可以在移动应用中使用的部件。
  • 管理面板本身可以在移动应用中使用,因为它具有响应式设计。

可以看看它吗?

如何获取它?

  • 如果你在Pub网站上看到这个,那么你就在正确的位置。
  • 如果不在,你可以在这里获取它:这里

如何使用它?

如果支持多语言,你必须在MaterialApp中添加Ready的代理:

return MaterialApp(
  localizationsDelegates: [
    ...GlobalMaterialLocalizations.delegates,
    Ready.delegate,
  ],
);

我们目前支持arabicenglish

特性

ReadyDashboard

  • 简单的方式创建管理面板布局。
  • 响应式设计,可以在任何设备上工作(手表除外)😄😄。
  • 能够对抽屉项目进行分组。
  • 能够添加操作按钮。
  • 能够为某些页面覆盖操作按钮。
  • 能够在顶部AppBar中添加搜索输入字段。

ReadyList

  • 下拉刷新。
  • 无限滚动。
  • 头部和底部。
  • 易于与flutter_bloc一起使用,但也可以使用任何状态管理解决方案。
  • 可以是网格、列表或自定义构建器。
  • 包含现成的网格委托,使事情变得简单。

ResponsiveDataTable

  • 在大设备上显示DataTable,在小设备上显示列表或网格的响应式部件。
  • 有6种布局。
  • 可以配置为使用列表或DataTable。
  • 列表和DataTables可以有选择功能。
  • 可以添加过滤器、动作或每一行的动作。
  • 与ReadyList使用相同的控制器。

Animated

  • 精美的动画。
  • 能够合并翻转、缩放、淡入和移动动画。
  • 作用域动画一次运行一个动画。
  • 非作用域动画并行运行所有动画。
  • ReadyList包含一个作用域,因此你无需添加它。

Shimmer

  • 在部件上显示闪烁效果。
  • 绘制整个作用域内的闪烁效果,因此整个页面可能只有一个作用域,并将在其树中的所有[Shimmer]子部件上绘制闪烁渐变。
  • 看看效果如何工作,它与卡片无关。

  • 看看效果如何工作,它与卡片无关。

相关包

有一些相关的包与Ready相关,你可以使用它们。

插件名称 版本
[Ready Form][ready_form_github] [![N
[Ready Validation][ready_validation_github] [![N
[Ready Picker][ready_picker_github] [![N
[Ready Image][ready_image_github] [![N

如何贡献

  • 为了使包尽可能简洁,我们将不会添加大量功能。
  • 相反,我们将新的功能添加到单独的包中,并在包的部分列出它们。
  • 这样,如果任何人需要新功能,他们可以将其包添加到他们的项目中。
  • 每个包在被列在包列表之前都必须有良好的文档。

示例代码

以下是使用Ready的示例代码:

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:ready/ready.dart';

import 'dashboard.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  ThemeMode _mode = ThemeMode.dark;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      localizationsDelegates: [
        ...GlobalMaterialLocalizations.delegates,
        Ready.delegate,
      ],
      themeMode: _mode,
      supportedLocales: const [
        Locale('ar'),
        Locale('en'),
      ],
      locale: const Locale('en'),
      home: DashBoardExample(
        onModeChanged: (value) {
          setState(() {
            _mode = value;
          });
        },
      ),
      debugShowCheckedModeBanner: false,
    );
  }
}

更多关于Flutter准备就绪状态检测插件ready的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter准备就绪状态检测插件ready的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,ready 状态检测插件通常用于确定应用是否已完全初始化并准备好与用户交互。尽管Flutter生态系统中有许多插件可以实现类似的功能,但没有一个标准化的名为 ready 的插件。不过,我们可以通过创建一个自定义的 Ready 类或使用现有插件(例如 providerriverpod)来管理应用的准备状态。

以下是一个示例,展示了如何使用Flutter的状态管理库 provider 来创建一个简单的 Ready 状态检测机制:

步骤 1: 添加依赖

首先,确保在 pubspec.yaml 文件中添加了 provider 依赖:

dependencies:
  flutter:
    sdk: flutter
  provider: ^6.0.0 # 请检查最新版本

步骤 2: 创建 Ready 类

创建一个 Ready 类来表示应用的准备状态:

class Ready with ChangeNotifier {
  bool _isReady = false;

  bool get isReady => _isReady;

  void setReady() {
    _isReady = true;
    notifyListeners();
  }
}

步骤 3: 设置 Provider

在应用的主文件中(例如 main.dart),设置 Provider 来管理 Ready 类的实例:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'ready.dart'; // 假设 Ready 类在这个文件中

void main() {
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => Ready()),
      ],
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

步骤 4: 使用 Ready 状态

在需要检测准备状态的组件中,使用 Consumer 来监听 Ready 的变化:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Ready State Demo'),
      ),
      body: Center(
        child: Consumer<Ready>(
          builder: (context, ready, child) {
            if (ready.isReady) {
              return Text('App is ready!');
            } else {
              return CircularProgressIndicator();
            }
          },
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          final ready = Provider.of<Ready>(context, listen: false);
          ready.setReady(); // 模拟设置应用为就绪状态
        },
        tooltip: 'Set Ready',
        child: Icon(Icons.check),
      ),
    );
  }
}

在这个示例中,我们创建了一个 Ready 类,它使用 ChangeNotifier 来管理状态。然后,我们在 main.dart 中使用 MultiProvider 来提供 Ready 的实例。在 MyHomePage 中,我们使用 Consumer 来监听 Ready 状态的变化,并根据状态显示不同的UI(例如,显示加载指示器或文本)。

这个机制可以根据需要进行扩展,例如在应用的不同部分进行初始化时更新 Ready 状态。希望这个示例能帮助你理解如何在Flutter中实现应用就绪状态检测。

回到顶部