Flutter自定义圆形组件插件super_circle的使用

Flutter自定义圆形组件插件super_circle的使用

super_circle

神奇的动画彩色圆形组件,你可以在你的个人资料、加载屏幕或任何其他你想要的组件中使用它。

添加Super Circle => 更好的UI/UX

person loading icon

特性

动画

此组件可以为任何组件添加流畅的动画效果,你可以用它来实现个人资料屏幕、加载屏幕或者任何其他组件的动画效果。

可配置组件

你可以控制该组件的旋转速度、旋转方向和背景颜色等。

安装

在你的项目的pubspec.yaml文件中添加以下依赖:

dependencies:
  super_circle: latest_version

然后在 Dart 代码中导入该包:

import 'package:super_circle/super_circle.dart';

更多详情请查看 pub.dev

使用

super_circle 包非常容易使用:

⚠️: size 的值必须满足 size <= MediaQuery.of(context).size.width,以获得良好的体验。

不包含任何子组件

Center(child: SuperCircle());

添加 Image 组件

SuperCircle(
    size: 400,
    rotateBegin: 1.0,
    rotateEnd: 0.0,
    backgroundCircleColor: Colors.black,
    speedRotateCircle: 6000,
    speedChangeShadowColorInner: 2000,
    speedChangeShadowColorOuter: 2000,
    child: Container(
        width: 400,
        height: 400,
        color: Colors.red,
        child: Image.network(
            'http://placekitten.com/g/200/300',
            width: 400,
            height: 400,
            fit: BoxFit.cover,
        ),
    ),
)

添加 Icon 组件

SuperCircle(
    size: 250,
    rotateBegin: 0.0,
    rotateEnd: 1.0,
    backgroundCircleColor: Colors.white,
    speedRotateCircle: 4000,
    speedChangeShadowColorInner: 3000,
    speedChangeShadowColorOuter: 3000,
    child: Container(
        width: 300,
        height: 300,
        child: Icon(Icons.security, color: Colors.red, size: 100),
    ),
)

更多关于Flutter自定义圆形组件插件super_circle的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义圆形组件插件super_circle的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用自定义圆形组件插件 super_circle 的一个示例代码案例。假设你已经将 super_circle 插件添加到了你的 pubspec.yaml 文件中,并且已经运行了 flutter pub get

首先,确保你的 pubspec.yaml 文件中包含以下依赖项:

dependencies:
  flutter:
    sdk: flutter
  super_circle: ^最新版本号  # 请替换为实际最新版本号

然后,在你的 Flutter 项目中,你可以按照以下步骤使用 super_circle 插件来创建一个自定义圆形组件。

示例代码

import 'package:flutter/material.dart';
import 'package:super_circle/super_circle.dart'; // 导入super_circle包

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

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

class SuperCircleDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Super Circle Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 使用SuperCircle组件
            SuperCircle(
              size: 200.0, // 圆形的大小
              color: Colors.blue, // 圆形的颜色
              child: Center(
                child: Text(
                  'Hello',
                  style: TextStyle(color: Colors.white, fontSize: 24),
                ),
              ),
              borderColor: Colors.white, // 圆形的边框颜色
              borderWidth: 5.0, // 圆形的边框宽度
              borderGradient: LinearGradient( // 可选的边框渐变颜色
                colors: [Colors.red, Colors.yellow],
                begin: Alignment.topLeft,
                end: Alignment.bottomRight,
              ),
              onTap: () {
                // 点击圆形时的回调
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Circle tapped!')),
                );
              },
            ),
            SizedBox(height: 20.0), // 间隔
            // 使用带有阴影效果的SuperCircle组件
            SuperCircle(
              size: 150.0,
              color: Colors.green,
              child: Icon(
                Icons.star,
                color: Colors.white,
                size: 36,
              ),
              borderColor: Colors.transparent, // 无边框
              shadowColor: Colors.black.withOpacity(0.3), // 阴影颜色
              shadowBlur: 15.0, // 阴影模糊程度
              shadowOffsetX: 0.0, // 阴影X轴偏移
              shadowOffsetY: 5.0, // 阴影Y轴偏移
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. 导入 super_circle:在文件顶部导入 super_circle 包。
  2. 创建 MyAppSuperCircleDemo 小部件MyApp 是应用程序的入口,SuperCircleDemo 是显示自定义圆形组件的页面。
  3. 使用 SuperCircle 组件
    • size:设置圆形的大小。
    • color:设置圆形的填充颜色。
    • child:放置在圆形内部的子组件,可以是文本、图标等。
    • borderColorborderWidth:设置圆形的边框颜色和宽度。
    • borderGradient:可选的边框渐变颜色。
    • onTap:点击圆形时的回调函数。
    • shadowColorshadowBlurshadowOffsetXshadowOffsetY:设置圆形的阴影效果。

这个示例展示了如何使用 super_circle 插件创建两个不同样式的自定义圆形组件,一个带有文本和一个带有图标,并且演示了如何添加点击事件和阴影效果。你可以根据实际需求进一步自定义这些组件。

回到顶部