Flutter仪表盘速度计插件flutter_speedometer_new的使用
flutter_speedometer 新插件介绍
Flutter Speedometer widget 包
开始使用
为了使用此包,需要导入以下代码:
import 'package:flutter_speedometer_new/flutter_speedometer.dart';
基本实现可以像下面的代码一样:
import 'package:flutter/material.dart';
import 'package:flutter_speedometer_new/flutter_speedometer.dart';
void main() {
runApp(
Center(
child: Speedometer(
size: 250, // 设置仪表盘大小为250
minValue: 0, // 最小值为0
maxValue: 180, // 最大值为180
currentValue: 76, // 当前值为76
warningValue: 150, // 警告值为150
displayText: 'mph', // 显示单位为mph
),
),
);
}
示例应用
你可以在示例应用中找到更多例子。
API
在这个表格中,你可以找到此包提供的所有属性:
属性 | 默认值 | 描述 |
---|---|---|
size | 200 | 仪表盘的大小 |
minValue | 0 | 显示的最小值 |
maxValue | 100 | 显示的最大值 |
currentValue | 0 | 设置当前值 |
warningValue | 80 | 设置警告值 |
对象
class Speedometer {
final double size; // 仪表盘大小
final int minValue; // 最小值
final int maxValue; // 最大值
final int currentValue; // 当前值
final int warningValue; // 警告值
final Color backgroundColor; // 背景颜色
final Color meterColor; // 指针颜色
final Color warningColor; // 警告颜色
final Color kimColor; // 其他颜色
final TextStyle displayNumericStyle; // 数字样式
final String displayText; // 显示的文本
final TextStyle displayTextStyle; // 文本样式
}
反馈
如果你有任何反馈,欢迎在 GitHub 上留下,帮助支持这个包 🍻
完整示例代码
以下是完整的示例代码,展示如何使用 flutter_speedometer_new
插件创建一个速度计:
import 'package:flutter/material.dart';
import 'package:flutter_speedometer_new/flutter_speedometer.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Speedometer Example'),
),
body: Center(
child: Speedometer(
size: 250, // 仪表盘大小
minValue: 0, // 最小值
maxValue: 180, // 最大值
currentValue: 76, // 当前值
warningValue: 150, // 警告值
displayText: 'mph', // 单位
backgroundColor: Colors.grey[200], // 背景颜色
meterColor: Colors.red, // 指针颜色
warningColor: Colors.orange, // 警告颜色
displayTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.black,
), // 文本样式
displayNumericStyle: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
color: Colors.blue,
), // 数字样式
),
),
),
);
}
}
更多关于Flutter仪表盘速度计插件flutter_speedometer_new的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter仪表盘速度计插件flutter_speedometer_new的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_speedometer_new
是一个用于在 Flutter 应用中创建速度计(Speedometer)的插件。它可以帮助你轻松地实现一个美观的速度计,用于显示速度、进度或其他数值。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 flutter_speedometer_new
依赖:
dependencies:
flutter:
sdk: flutter
flutter_speedometer_new: ^0.0.3 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
基本用法
以下是一个简单的示例,展示如何使用 flutter_speedometer_new
插件创建一个速度计:
import 'package:flutter/material.dart';
import 'package:flutter_speedometer_new/flutter_speedometer_new.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: SpeedometerExample(),
);
}
}
class SpeedometerExample extends StatefulWidget {
[@override](/user/override)
_SpeedometerExampleState createState() => _SpeedometerExampleState();
}
class _SpeedometerExampleState extends State<SpeedometerExample> {
double speed = 0.0;
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Speedometer Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Speedometer(
size: 300,
minValue: 0,
maxValue: 200,
currentValue: speed,
displayNumericValue: true,
numericValueStyle: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
labelText: 'km/h',
labelTextStyle: TextStyle(
fontSize: 18,
color: Colors.black,
),
needleColor: Colors.red,
startAngle: 180,
endAngle: 0,
segments: [
SpeedometerSegment(
color: Colors.green,
startValue: 0,
endValue: 100,
),
SpeedometerSegment(
color: Colors.orange,
startValue: 100,
endValue: 150,
),
SpeedometerSegment(
color: Colors.red,
startValue: 150,
endValue: 200,
),
],
),
SizedBox(height: 20),
Slider(
value: speed,
min: 0,
max: 200,
onChanged: (value) {
setState(() {
speed = value;
});
},
),
],
),
),
);
}
}