Syncfusion Flutter Gauges 技能覆盖两个相关的 Syncfusion Flutter 组件,用于数据可视化与测量值展示:SfLinearGauge(线性仪表)和 SfRadialGauge(径向仪表)。两者共享许多视觉与配置特性,但显示用途和视觉表现不同。
用途
当需要在 Flutter 应用中实现以下需求时,可使用本技能:
- 在线性或径向刻度上展示数据,进行可视化测量表示
- 创建带自定义样式与动画的进度指示器
- 构建包含 KPI、指标或性能指标的仪表盘可视化
- 实现测量显示(速度表、温度计、压力表)
- 添加可拖动指针并触发值变化的交互式仪表
- 在线性或圆形刻度上可视化范围与阈值
- 创建音量、亮度或评分输入的自定义仪表控件
- 在现代 Flutter 应用中显示模拟风格指示器
- 构建电池、信号或状态指示器
- 通过颜色、渐变、动画和样式自定义仪表外观
组件选择
使用 SfLinearGauge(线性仪表)的场景:
- 需要水平或垂直测量显示
- 数据更适合在线性刻度(条形风格)上表示
- 希望使用条形指针表示进度或水平
- 方向灵活性重要(可轻松旋转 90°)
- 需要镜像效果实现对称显示
- 构建:进度条、滑块、电池指示器、音量控制、水平仪表盘
使用 SfRadialGauge(径向仪表)的场景:
- 需要圆形或弧形显示
- 可视化需要指针指针(经典仪表风格)
- 需要 360 度或半圆表示
- 需要在仪表上放置带组件的注解
- 需要在仪表上方显示标题
- 需要导出为图片功能
- 构建:速度表、RPM 表、温度计、罗盘显示、表盘、圆形进度
主要能力
线性仪表支持:水平/垂直方向、条形指针、形状与组件标记指针、镜像效果、轴轨道样式、范围分段、动画、拖动交互。
径向仪表支持:圆形/弧形、指针指针、范围指针、形状与组件标记指针、多轴、轴角度配置、标题、注解、背景图片、导出图片、动画、拖动交互。
两者共同支持:轴与刻度配置、标签格式化、范围可视化、颜色与渐变、动画、指针拖动、无障碍支持。
使用方式
安装与包设置参见入门文档。基础线性仪表示例:
import 'package:syncfusion_flutter_gauges/gauges.dart';
SfLinearGauge(
minimum: 0,
maximum: 100,
barPointers: [LinearBarPointer(value: 60)],
markerPointers: [LinearShapePointer(value: 60)],
)
基础径向仪表示例:
import 'package:syncfusion_flutter_gauges/gauges.dart';
SfRadialGauge(
axes: [
RadialAxis(
minimum: 0,
maximum: 150,
pointers: [NeedlePointer(value: 90)],
),
],
)
可拖动交互示例:
double _value = 50.0;
// 线性仪表拖动
SfLinearGauge(
markerPointers: [
LinearShapePointer(
value: _value,
enableDragging: true,
onChanged: (v) => setState(() => _value = v),
),
],
)
// 径向仪表拖动
SfRadialGauge(
axes: [
RadialAxis(
pointers: [
NeedlePointer(
value: _value,
enableDragging: true,
onValueChanged: (v) => setState(() => _value = v),
),
],
),
],
)
常用模式包括:多范围状态指示(ranges 列表)、渐变样式(axisTrackStyle 的 gradient)、垂直方向(orientation: LinearGaugeOrientation.vertical)、自定义角度(RadialAxis 的 startAngle/endAngle)、镜像效果(isMirrored: true)。
适用场景
- 进度指示器:使用 LinearBarPointer 或 RangePointer
- 速度表仪表盘:使用 RadialGauge 配合 NeedlePointer 与 ranges
- 温度显示:使用垂直 LinearGauge 或半圆 RadialGauge
- 电池指示器:使用 LinearGauge 配合镜像效果与 ranges
- 音量/亮度控制:使用可拖动 LinearShapePointer
- KPI 仪表盘:使用多个 RadialGauge 配合注解
- 评分显示:使用半圆 RadialGauge 配合 RangePointer
- 油量表:使用 RadialGauge 配合指针与颜色范围
- 加载指示器:使用动画 LinearBarPointer 或 RangePointer
- 滑块替代:使用可拖动指针的交互式 LinearGauge
限制
线性仪表不支持指针指针、范围指针、注解、标题、导出图片,多轴支持有限。径向仪表不支持条形指针和镜像效果。具体属性默认值、平台支持范围、收费与授权方式、性能指标等资料暂未提供。