Flutter动画边框插件flutter_dash_border_animated的使用

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

Flutter动画边框插件flutter_dash_border_animated的使用

简介

flutter_dash_border_animated 是一个用于在Flutter应用程序中创建动态虚线边框的插件。通过这个插件,你可以轻松地为你的小部件添加各种类型的动画边框,如矩形、圆形等。

基本用法

示例图片

image_dash_border_animated

示例代码

以下是一个完整的示例,展示了如何使用 flutter_dash_border_animated 插件来创建不同类型的动画边框。

import 'package:flutter/material.dart';
import 'package:flutter_dash_border_animated/flutter_dash_border_animated.dart';
import 'package:flutter_dash_border_animated/src/dash_border_run_type.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Dash Border Animated'),
    );
  }
}

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

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: const Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            // 第一个示例:红色矩形虚线边框
            SizedBox(
              height: 50,
              width: 80,
              child: DashBorderAnimated(
                dashColor: Colors.red, // 设置虚线颜色为红色
                child: Center(
                  child: Text(
                    'Just Run Rec', // 文本内容
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            SizedBox(height: 20), // 添加间距

            // 第二个示例:蓝色暂停的矩形虚线边框
            SizedBox(
              height: 90,
              width: 90,
              child: DashBorderAnimated(
                dashColor: Colors.blue, // 设置虚线颜色为蓝色
                isPause: true, // 暂停动画
                dashRunType: DashBorderRunType.rectangle, // 设置边框类型为矩形
                child: Center(
                  child: Text(
                    'Just pause', // 文本内容
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            SizedBox(height: 20), // 添加间距

            // 第三个示例:黄色带圆角的矩形虚线边框
            SizedBox(
              height: 80,
              width: 80,
              child: DashBorderAnimated(
                dashColor: Colors.yellow, // 设置虚线颜色为黄色
                dashRunType: DashBorderRunType.rectanglePip, // 设置边框类型为带圆角的矩形
                child: Center(
                  child: Text(
                    'Rounded Run', // 文本内容
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            SizedBox(height: 20), // 添加间距

            // 第四个示例:绿色圆形虚线边框
            SizedBox(
              height: 80,
              width: 80,
              child: DashBorderAnimated(
                dashColor: Colors.green, // 设置虚线颜色为绿色
                dashRunType: DashBorderRunType.circle, // 设置边框类型为圆形
                child: Center(child: Text('Circle')), // 文本内容
              ),
            ),
            SizedBox(height: 20), // 添加间距
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用flutter_dash_border_animated插件来创建动画边框的示例代码。这个插件允许你创建一个带有动画效果的边框,非常适合用于吸引用户注意力的UI元素。

首先,确保你已经在pubspec.yaml文件中添加了flutter_dash_border_animated依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_dash_border_animated: ^最新版本号  # 请替换为最新的版本号

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

接下来,在你的Dart文件中(例如main.dart),你可以使用以下代码来创建一个带有动画边框的组件:

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

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

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

class DashBorderAnimatedDemo extends StatefulWidget {
  @override
  _DashBorderAnimatedDemoState createState() => _DashBorderAnimatedDemoState();
}

class _DashBorderAnimatedDemoState extends State<DashBorderAnimatedDemo> with SingleTickerProviderStateMixin {
  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: const Duration(seconds: 2),
      vsync: this,
    )..repeat(reverse: true);  // 无限循环动画,正向和反向
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Dash Border Animated Demo'),
      ),
      body: Center(
        child: DashBorderAnimated(
          animation: _controller,
          child: Container(
            width: 200,
            height: 200,
            color: Colors.grey[200],
            alignment: Alignment.center,
            child: Text(
              'Animated Border',
              style: TextStyle(fontSize: 24, color: Colors.black),
            ),
          ),
          dashColor: Colors.blue,
          gapColor: Colors.transparent,
          dashLength: 16,
          dashWidth: 2,
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个带有动画边框的Container。以下是关键点的解释:

  1. 依赖添加:确保在pubspec.yaml中添加了flutter_dash_border_animated依赖。
  2. 动画控制器:使用AnimationController来管理动画。在initState中初始化控制器,并设置动画的持续时间和循环方式。
  3. DashBorderAnimated组件
    • animation:传入动画控制器。
    • child:你想要添加动画边框的子组件。
    • dashColor:动画边框的颜色。
    • gapColor:边框间隙的颜色(通常设置为透明)。
    • dashLength:每个虚线的长度。
    • dashWidth:虚线的宽度。

运行这个示例代码,你应该能看到一个带有动画边框的Container,其中的文本“Animated Border”会在一个带有蓝色虚线边框的框内显示,边框会以2秒的间隔正向和反向循环动画。

希望这能帮助你理解如何在Flutter项目中使用flutter_dash_border_animated插件!

回到顶部