Flutter仪表盘插件flutter_radial_gauge的使用

Flutter仪表盘插件flutter_radial_gauge的使用

flutter_radial_gauge 是一个用于Flutter应用程序的可定制径向仪表盘(Radial Gauge)小部件。它允许您以圆形格式显示值,并且可以自定义其外观和行为。

特性

  • 可定制的外观(大小、颜色、指针样式等)
  • 具有值变化回调的交互式仪表盘
  • 易于集成和使用

开始使用

前提条件

  • Flutter SDK: >=1.17.0
  • Dart SDK: >=3.0.0 <4.0.0

使用方法

要使用 RadialGauge 小部件,首先需要导入包:

import 'package:flutter_radial_gauge/flutter_radial_gauge.dart';

然后创建一个 RadialGauge 对象并传入所需的参数。例如:

RadialGauge(
  initialValue: 50.0,
  onValueChanged: (value) {
    print('Current value: $value');
  },
)

参数

RadialGauge 小部件接受以下参数:

  • initialValue: 仪表盘的初始值,默认为 0.0
  • onValueChanged: 当仪表盘值改变时调用的回调函数,提供新的值作为 double 类型。
  • innerRadius: 仪表盘的内半径,决定内部圆的大小,默认为 80.0
  • outerRadius: 仪表盘的外半径,决定整体大小,默认为 100.0
  • backgroundColor: 仪表盘的背景色,默认为 const Color(0xFFFDE9E0)
  • foregroundColor: 仪表盘前景色,表示填充部分,默认为 const Color(0xFFD08D74)
  • pointerRadius: 指针圆的半径,默认为 12.0
  • pointerStrokeWidth: 指针圆的边框宽度,默认为 10.0
  • pointerFillColor: 指针圆的填充色,默认为 const Color(0xFF312C2E)
  • pointerStrokeColor: 指针圆的边框色,默认为 const Color(0xFFFABCB8)
  • pointerRectColor: 指针圆内的小矩形颜色,默认为 Colors.green

示例代码

以下是一个完整的示例程序,展示如何在Flutter应用中使用 RadialGauge

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_radial_gauge/flutter_radial_gauge.dart';

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Radial Gauge Example')),
        body: Center(
          child: RadialGauge(
            initialValue: 50.0,
            onValueChanged: (value) {
              if (kDebugMode) {
                print('Current value: $value');
              }
            },
            innerRadius: 80.0,
            outerRadius: 100.0,
            foregroundColor: Colors.blue,
            backgroundColor: Colors.grey[200]!,
            pointerRadius: 10.0,
            pointerStrokeWidth: 5.0,
            pointerFillColor: Colors.white,
            pointerStrokeColor: Colors.blue,
            pointerRectColor: Colors.red,
          ),
        ),
      ),
    );
  }
}

更多关于Flutter仪表盘插件flutter_radial_gauge的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter仪表盘插件flutter_radial_gauge的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用flutter_radial_gauge插件来创建一个仪表盘的基本示例。这个插件允许你创建一个可定制的径向仪表盘。

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

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

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

接下来,你可以在你的Flutter应用中创建一个仪表盘。以下是一个完整的示例,展示如何使用flutter_radial_gauge

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Radial Gauge Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
  double _value = 50.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Radial Gauge'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            RadialGauge(
              value: _value,
              maxValue: 100,
              needleColor: Colors.blue,
              needleWidth: 4.0,
              backgroundColor: Colors.grey[200]!,
              ringColor: Colors.grey[300]!,
              centerCircleColor: Colors.grey[400]!,
              tickMarksColor: Colors.grey[500]!,
              labelsColor: Colors.black,
              labelFontSize: 16.0,
              gaugeSize: Size(200, 200),
            ),
            SizedBox(height: 20),
            Slider(
              value: _value.toDouble(),
              min: 0.0,
              max: 100.0,
              onChanged: (newValue) {
                setState(() {
                  _value = newValue.toDouble();
                });
              },
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个包含RadialGauge和一个Slider的简单Flutter应用。RadialGauge用于显示仪表盘,而Slider用于动态调整仪表盘的值。

关键点:

  • RadialGauge的参数包括:

    • value:当前值。
    • maxValue:最大值。
    • needleColor:指针颜色。
    • needleWidth:指针宽度。
    • backgroundColor:背景颜色。
    • ringColor:环形颜色。
    • centerCircleColor:中心圆颜色。
    • tickMarksColor:刻度标记颜色。
    • labelsColor:标签颜色。
    • labelFontSize:标签字体大小。
    • gaugeSize:仪表盘大小。
  • Slider用于调整仪表盘的值,通过onChanged回调来更新状态并刷新仪表盘的值。

确保你根据实际需求调整这些参数,以满足你的设计需求。

回到顶部