Flutter动画加载边框插件animated_loading_border的使用
Flutter动画加载边框插件animated_loading_border的使用
animated_loading_border
animated_loading_border
是一个Flutter包,它以现代的方式显示动画边框作为占位符,同时以简单的方式自定义和即用型来加载小部件。
Preview
Light Theme | Dark Theme |
---|---|
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 | – | 回调函数,提供 AnimatedLoadingBorder 的 AnimationController |
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
更多关于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…”的白色容器。
你可以根据需要调整这些属性来实现不同的动画效果。希望这个示例对你有帮助!