Flutter半圆指示器插件semicircle_indicator的使用

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

Flutter半圆指示器插件semicircle_indicator的使用

Semicircle Indicator

使用semicircle_indicator插件可以轻松创建半圆指示器。

以下是三个示例的效果图:

img.png

Features

  • 自定义大小、颜色、描边宽度、线条结束样式、底部中心子组件等。

Getting started

在需要绘制半圆形指示器的地方使用类SemicircularIndicator(安装后)。

代码中有详细的注释以帮助您使用它。

示例代码

以下是一个完整的示例demo,展示了如何在Flutter项目中使用semicircle_indicator插件。

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

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

  final String title;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              const SizedBox(
                height: 100,
                width: double.infinity,
              ),
              // Example 1: Basic usage with orange color
              const SemicircularIndicator(
                color: Colors.orange,
                bottomPadding: 0,
                child: Text(
                  '75%',
                  style: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.w600,
                      color: Colors.orange),
                ),
              ),
              const SizedBox(height: 50),
              // Example 2: Square stroke cap with blue accent color
              const SemicircularIndicator(
                strokeCap: StrokeCap.square,
                color: Colors.blueAccent,
                bottomPadding: 0,
                child: Text(
                  '75%',
                  style: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.w600,
                      color: Colors.blueAccent),
                ),
              ),
              const SizedBox(height: 50),
              // Example 3: Custom radius, background color, and stroke width
              const SemicircularIndicator(
                radius: 100,
                color: Colors.yellow,
                backgroundColor: Colors.orange,
                strokeWidth: 13,
                bottomPadding: 0,
                child: Text(
                  '75%',
                  style: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.w600,
                      color: Colors.orange),
                ),
              ),
              const SizedBox(height: 50),
              Container(
                height: 40,
                width: double.infinity,
                color: Colors.grey,
              ),
              const SemicircularIndicator(
                radius: 100,
                color: Colors.yellow,
                backgroundColor: Colors.orange,
                strokeWidth: 13,
                bottomPadding: 0,
                child: Text(
                  '75%',
                  style: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.w600,
                      color: Colors.orange),
                ),
              ),
              Container(
                height: 40,
                width: double.infinity,
                color: Colors.grey,
              ),
              const SemicircularIndicator(
                radius: 100,
                color: Colors.yellow,
                backgroundColor: Colors.orange,
                strokeWidth: 13,
                bottomPadding: 0,
                contain: true,
                child: Text(
                  '75%',
                  style: TextStyle(
                      fontSize: 32,
                      fontWeight: FontWeight.w600,
                      color: Colors.orange),
                ),
              ),
              Container(
                height: 40,
                width: double.infinity,
                color: Colors.grey,
              ),
              const SizedBox(height: 400),
            ],
          ),
        ),
      ),
    );
  }
}

使用说明

  1. 添加依赖:在您的pubspec.yaml文件中添加semicircle_indicator依赖。

    dependencies:
      flutter:
        sdk: flutter
      semicircle_indicator: ^latest_version
    
  2. 导入包:在Dart文件顶部导入semicircle_indicator包。

    import 'package:semicircle_indicator/semicircle_indicator.dart';
    
  3. 使用SemicircularIndicator:根据需要自定义属性,如颜色、描边宽度、背景颜色等,并将其嵌入到您的UI布局中。

通过上述步骤,您可以轻松地在Flutter应用中集成和使用semicircle_indicator插件。希望这个示例能帮助您更好地理解和使用该插件。


更多关于Flutter半圆指示器插件semicircle_indicator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter半圆指示器插件semicircle_indicator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter中使用semicircle_indicator插件的一个简单示例。semicircle_indicator是一个用于显示半圆进度指示器的Flutter插件。

首先,你需要在你的pubspec.yaml文件中添加该插件的依赖项:

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

然后运行flutter pub get来获取依赖项。

接下来,在你的Flutter项目中创建一个简单的页面来使用这个半圆指示器。以下是一个完整的示例代码:

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

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

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

class SemiCircleIndicatorDemo extends StatefulWidget {
  @override
  _SemiCircleIndicatorDemoState createState() => _SemiCircleIndicatorDemoState();
}

class _SemiCircleIndicatorDemoState extends State<SemiCircleIndicatorDemo> with SingleTickerProviderStateMixin {
  double _progress = 0.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Semicircle Indicator Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            SemicircleIndicator(
              progress: _progress,
              strokeWidth: 5.0,
              strokeColor: Colors.blue,
              backgroundColor: Colors.grey[200]!,
              size: 200.0,
              unfilledColor: Colors.transparent,
              prefix: Text('${_progress * 100}%', style: TextStyle(fontSize: 24)),
              onAnimationEnd: () {
                // 动画结束时执行的回调
                print('Animation ended');
              },
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _progress = (_progress + 0.1).clamp(0.0, 1.0);
                });
              },
              child: Text('Increase Progress'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们创建了一个名为MyApp的根应用程序。

  2. SemiCircleIndicatorDemo是一个有状态的组件,用于管理进度状态。

  3. _SemiCircleIndicatorDemoState类中包含一个_progress变量,表示当前进度。

  4. SemicircleIndicator小部件用于显示半圆进度指示器,其中:

    • progress属性设置当前的进度值。
    • strokeWidth属性设置进度条的宽度。
    • strokeColor属性设置进度条的颜色。
    • backgroundColor属性设置背景颜色。
    • size属性设置指示器的大小。
    • unfilledColor属性设置未填充部分的颜色。
    • prefix属性用于在进度条前显示进度百分比。
    • onAnimationEnd属性是一个可选的回调,当动画结束时触发。
  5. ElevatedButton用于增加进度值,每次点击按钮时,进度值增加0.1,并限制在0到1之间。

这个示例展示了如何使用semicircle_indicator插件来创建一个简单的半圆进度指示器,并允许用户通过点击按钮来增加进度。

回到顶部