Flutter动画加载边框插件animated_loading_border的使用

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

Flutter动画加载边框插件animated_loading_border的使用

animated_loading_border

Flutter Website Dart Website Platform Android Platform iOS [Platform Web] [Platform Mac] [Platform Linux] [Platform Windows] Codacy grade License Pub Version GitHub stars

animated_loading_border 是一个Flutter包,它以现代的方式显示动画边框作为占位符,同时以简单的方式自定义和即用型来加载小部件。

Preview

Light Theme Dark Theme
light_animated_loading_border dark_animated_loading_border

Basic Usage

1. 导入包

首先,在您的项目文件中导入 animated_loading_border 包:

import 'package:animated_loading_border/animated_loading_border.dart';

2. 使用AnimatedLoadingBorder Widget

AnimatedLoadingBorder 添加到您的代码中,最简单的形式如下:

AnimatedLoadingBorder(
  child: Container(),
  controller: (animationController) {
    // Here we get animationController     
  },
);

参数说明

必需参数

Parameter Description
Widget child AnimatedLoadingBorder 包含的子组件

可选参数

Parameter Default Description
ValueChanged 回调函数,提供 AnimatedLoadingBorderAnimationController
Duration duration Duration(seconds: 4) 定义动画时长
double cornerRadius 0.0 定义边框的圆角半径
double borderWidth 1 定义边框宽度
Color borderColor Colors.black 定义边框颜色
Color trailingBorderColor Colors.black 定义边框尾部的颜色
EdgeInsets padding EdgeInsets.zero 用于添加子组件的内边距
bool startWithRandomPosition true 设置 SweepGradient 的起始位置
bool isTrailingTransparent true 设置 SweepGradient 的起始颜色

示例代码

下面是一个完整的示例demo,展示了如何在应用中使用 AnimatedLoadingBorder

import 'package:animated_loading_border/animated_loading_border.dart';
import 'package:flutter/material.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(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(vsync: this, duration: Duration(seconds: 4));
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: AnimatedLoadingBorder(
          child: Container(
            width: 200,
            height: 200,
            color: Colors.grey[300],
          ),
          controller: (controller) {
            _controller = controller;
          },
          duration: Duration(seconds: 4),
          cornerRadius: 16.0,
          borderWidth: 2.0,
          borderColor: Colors.blue,
          trailingBorderColor: Colors.grey,
          padding: EdgeInsets.all(16.0),
          startWithRandomPosition: true,
          isTrailingTransparent: false,
        ),
      ),
    );
  }
}

贡献指南

贡献者可以随时为我的仓库做出贡献,我请求贡献者为开发创建一个拉取请求(Pull Request)。

报告问题/功能请求

如果您想报告问题或请求新功能,请尽可能提供以下信息以便我们更好地理解问题的根源:

  • 库版本
  • 代码片段
  • 日志(如果适用)
  • 设备规格(如制造商、操作系统版本等)
  • 屏幕截图/视频及重现步骤
  • 使用的库

LICENSE

animated_loading_border 遵循 MIT许可证


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

1 回复

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


当然,以下是如何在Flutter中使用animated_loading_border插件来创建一个动画加载边框的示例代码。首先,你需要确保你的Flutter项目已经添加了这个插件。如果还没有添加,可以在pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  animated_loading_border: ^0.1.0  # 请检查最新版本号

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

安装完成后,你可以在你的Dart文件中使用AnimatedLoadingBorder来创建一个动画加载边框。以下是一个完整的示例代码:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Animated Loading Border Example'),
        ),
        body: Center(
          child: AnimatedLoadingBorder(
            size: 100, // 边框的大小
            borderWidth: 4.0, // 边框的宽度
            duration: Duration(seconds: 2), // 动画的持续时间
            color: Colors.blue, // 边框的颜色
            child: Container(
              decoration: BoxDecoration(
                color: Colors.white, // 内部容器的颜色
                borderRadius: BorderRadius.circular(10), // 内部容器的圆角
              ),
              child: Center(
                child: Text(
                  'Loading...',
                  style: TextStyle(color: Colors.black),
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  • AnimatedLoadingBorder是一个自定义的动画边框组件。
  • size属性定义了动画边框的大小。
  • borderWidth属性定义了边框的宽度。
  • duration属性定义了动画的持续时间。
  • color属性定义了边框的颜色。
  • child属性定义了动画边框内部的子组件,这里我们放置了一个带有文本“Loading…”的白色容器。

你可以根据需要调整这些属性来实现不同的动画效果。希望这个示例对你有帮助!

回到顶部