Flutter多圆形滑块插件multi_circular_slider的使用

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

Flutter多圆形滑块插件multi_circular_slider的使用

multi_circular_slider 是一个高度可定制的进度条插件,它可以帮助在单个进度条中显示多个值,并且每个值可以用不同的颜色表示,还带有动画效果。

预览

preview

开始使用

安装

首先,在你的 pubspec.yaml 文件中添加依赖:

dependencies:
  multi_circular_slider: ^1.1.0

然后,在项目根目录下运行以下命令以获取包:

flutter packages get

基本用法

导入包

在 Dart 文件中导入 multi_circular_slider 包:

import 'package:multi_circular_slider/multi_circular_slider.dart';

使用MultiCircularSlider

接下来,可以按照如下方式使用 MultiCircularSlider 组件:

MultiCircularSlider(
    size: MediaQuery.of(context).size.width * 0.8,
    progressBarType: MultiCircularSliderType.circular,
    values: [0.2, 0.1, 0.3, 0.25],
    colors: [Color(0xFFFD1960), Color(0xFF29D3E8), Color(0xFF18C737), Color(0xFFFFCC05)],
    showTotalPercentage: true,
),

这段代码将创建一个多段圆形进度条,每段占总长度的比例分别为20%、10%、30%和25%,并用不同颜色区分。同时会在中间显示总的百分比。

参数详解

参数 数据类型 默认值 描述
size double - 组件占据屏幕的空间大小
values List<double> - 各段所占比例,所有值加起来应小于等于1
colors List<Color> - 各段的颜色
progressBarType MultiCircularSliderType - 进度条类型(圆形单选或多选)
showTotalPercentage bool true 是否在中心显示总百分比
label String - 显示在百分比下方的标签文本
animationDuration Duration Duration(milliseconds: 500) 动画持续时间
animationCurve Curve Curves.easeInOutCubic 动画曲线
innerIcon Widget - 显示在中心的图标
innerWidget Widget - 自定义内部组件(当showTotalPercentage为false时生效)
trackColor Color Colors.grey 轨道颜色
progressBarWidth double 32.0 进度条宽度
trackWidth double 32.0 轨道宽度
labelTextStyle TextStyle - 标签文本样式
percentageTextStyle TextStyle - 百分比文本样式

示例代码

下面是一个完整的示例代码,展示了如何在一个Flutter应用中集成和使用 MultiCircularSlider

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

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

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Multi Progress Bar',
      home: MyTestWidget(),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: SafeArea(
        child: Center(
          child: MultiCircularSlider(
            size: MediaQuery.of(context).size.width * 0.8,
            progressBarType: MultiCircularSliderType.circular,
            values: const [0.2, 0.1, 0.3, 0.28],
            colors: const [Color(0xFFFD1960), Color(0xFF29D3E8), Color(0xFF18C737), Color(0xFFFFCC05)],
            showTotalPercentage: true,
            label: 'This is label text',
            animationDuration: const Duration(milliseconds: 1000),
            animationCurve: Curves.easeInOutCirc,
            innerIcon: const Icon(Icons.integration_instructions),
            trackColor: Colors.white,
            progressBarWidth: 36.0,
            trackWidth: 36.0,
            labelTextStyle: const TextStyle(),
            percentageTextStyle: const TextStyle(),
          ),
        ),
      ),
    );
  }
}

这个例子创建了一个包含多段圆形进度条的应用程序界面。你可以根据需要调整各个参数来适应自己的需求。


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

1 回复

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


当然,以下是如何在Flutter项目中使用multi_circular_slider插件的一个代码示例。这个插件允许你创建一个多圆形滑块,用于选择多个值。

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

dependencies:
  flutter:
    sdk: flutter
  multi_circular_slider: ^x.y.z  # 请替换为最新版本号

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

接下来,在你的Dart文件中,你可以按照以下方式使用MultiCircularSlider

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Multi Circular Slider Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Multi Circular Slider Demo'),
        ),
        body: Center(
          child: MultiCircularSlider(
            initialValues: [20, 50, 80], // 初始值
            min: 0,
            max: 100,
            totalItems: 3,
            sliderColors: [
              Colors.red,
              Colors.green,
              Colors.blue,
            ],
            circleSize: 100.0,
            selectedColor: Colors.white,
            unselectedColor: Colors.grey[300]!,
            animationDuration: Duration(milliseconds: 300),
            onChange: (values) {
              // 当滑块值改变时调用的回调
              print('Current Values: $values');
            },
          ),
        ),
      ),
    );
  }
}

代码说明

  1. 导入依赖

    import 'package:multi_circular_slider/multi_circular_slider.dart';
    
  2. 创建MultiCircularSlider

    • initialValues:设置初始值。
    • minmax:设置滑块的最小值和最大值。
    • totalItems:设置滑块的数量。
    • sliderColors:为每个滑块设置颜色。
    • circleSize:设置每个滑块的大小。
    • selectedColorunselectedColor:设置选中与未选中时的颜色。
    • animationDuration:设置动画持续时间。
    • onChange:当滑块值改变时的回调,可以在这里处理值的改变。

这个示例展示了如何使用multi_circular_slider插件来创建一个包含三个滑块的多圆形滑块组件,每个滑块都有独立的颜色,并且当滑块值改变时会打印当前值。

你可以根据需要调整这些参数来满足你的特定需求。

回到顶部