Flutter页面加载动画插件ngpageloader的使用

发布于 1周前 作者 yibo5220 来自 Flutter

Flutter 页面加载动画插件 ngpageloader 的使用

PageLoader 是一个用于创建浏览器内测试或 Webdriver 测试的页面对象框架。

Dart CI Pub Pub Pre-release

对于初学者,可以参考我们的 快速入门指南

对于 PageLoader 结构和功能的深入解释,请参阅我们的 结构部分

为了更好地掌握 PageLoader 的使用,请查看我们的 最佳实践部分

从版本 3.0.0 开始,PageLoader 与 2.X.X 版本有显著变化。更多信息可以参考 变更部分

注意:未生成的 PageObject 文件可能会导致静态分析问题(在 CI 过程中尤为烦人)。在运行 `dart analyze` 之前,您可以运行 `dart run build_runner build ngpageloader` 仅生成 PageObject 文件。其他构建器将不会被运行。

如何触发生成步骤?

dart run build_runner build

如果您是从一个新的检查点开始或者已经删除了 .dart_tool 目录,请传递标志 --delete-conflicting-outputs

警告:您的 PageObject Dart 文件必须位于 test/... 子目录中

示例代码

以下是一个简单的示例,展示了如何在 Flutter 应用中使用 ngpageloader 插件来添加页面加载动画。

示例代码:main.dart

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('PageLoader Example')),
        body: Center(
          child: MyPageLoader(),
        ),
      ),
    );
  }
}

class MyPageLoader extends StatefulWidget {
  [@override](/user/override)
  _MyPageLoaderState createState() => _MyPageLoaderState();
}

class _MyPageLoaderState extends State<MyPageLoader> {
  bool isLoading = false;

  void _showLoader() {
    setState(() {
      isLoading = true;
    });
    Future.delayed(Duration(seconds: 3), () {
      setState(() {
        isLoading = false;
      });
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        ElevatedButton(
          onPressed: _showLoader,
          child: Text('Show Loader'),
        ),
        if (isLoading)
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: CircularProgressIndicator(), // 显示加载指示器
          )
      ],
    );
  }
}

更多关于Flutter页面加载动画插件ngpageloader的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter页面加载动画插件ngpageloader的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用ngpageloader插件来实现页面加载动画的示例代码。ngpageloader是一个流行的Flutter包,用于显示加载指示器。尽管它的名字中包含“ng”,但它实际上是一个纯Flutter插件,与Angular无关。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加ngpageloader的依赖:

dependencies:
  flutter:
    sdk: flutter
  ngpageloader: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 导入包

在你希望使用加载动画的Dart文件中导入ngpageloader包:

import 'package:ngpageloader/ngpageloader.dart';

3. 使用加载动画

下面是一个完整的示例,展示如何在Flutter应用中使用NgPageLoader

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

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool isLoading = true;

  @override
  void initState() {
    super.initState();
    // 模拟数据加载过程
    Future.delayed(Duration(seconds: 2), () {
      setState(() {
        isLoading = false;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Page Loader Demo'),
      ),
      body: Center(
        child: isLoading
            ? NgPageLoader(
                loaderType: NgLoaderType.ballSpinFadeLoader,
                color: Colors.blue,
                size: 50.0,
              )
            : Text('Data Loaded'),
      ),
    );
  }
}

解释

  1. 依赖添加:在pubspec.yaml文件中添加ngpageloader依赖。
  2. 导入包:在Dart文件中导入ngpageloader包。
  3. 使用加载动画
    • 创建一个Flutter应用,其中包含一个主页面MyHomePage
    • MyHomePage的状态管理类中,使用一个布尔值isLoading来跟踪数据加载状态。
    • initState方法中,使用Future.delayed来模拟数据加载过程,并在加载完成后更新isLoading状态。
    • build方法中,根据isLoading的值决定显示加载动画还是加载完成后的内容。

加载动画类型

NgPageLoader提供了多种加载动画类型,你可以在loaderType参数中指定。例如:

  • NgLoaderType.ballSpinFadeLoader
  • NgLoaderType.ballGridPulseLoader
  • NgLoaderType.ballClipRotateLoader
  • 等等

你可以查阅ngpageloader的官方文档以获取所有可用的加载动画类型。

希望这个示例能帮助你在Flutter项目中成功使用ngpageloader插件来实现页面加载动画。

回到顶部