Flutter金融图表插件candlestix的使用
Flutter金融图表插件candlestix的使用
candlesticks
适用于所有平台的高性能全功能蜡烛图!
网页演示:
Preview(预览)
IOS | macOS |
---|---|
![]() |
![]() |
Installation(安装)
- 在项目的
pubspec.yaml
文件中添加以下依赖:
dependencies:
candlestix: ^2.2.0
- 使用IDE的图形界面获取包,或者通过命令行运行以下命令:
$ flutter pub get
Usage(使用)
首先导入 candlestix
包:
import 'package:candlestix/candlestix.dart';
Candle(蜡烛数据)
Candle
类包含六个必需变量,用于存储单个蜡烛的数据:日期 (date
)、最高价 (high
)、最低价 (low
)、开盘价 (open
)、收盘价 (close
) 和成交量 (volume
)。
示例代码:
final candle = Candle(
date: DateTime.now(), // 当前时间
open: 1780.36, // 开盘价
high: 1873.93, // 最高价
low: 1755.34, // 最低价
close: 1848.56, // 收盘价
volume: 0 // 成交量
);
Candlesticks(蜡烛图)
Candlesticks
小部件需要一个蜡烛数据列表,最新的蜡烛数据应位于数组的第一个位置。当最后一个蜡烛变得可见时,会触发 onLoadMoreCandles
回调。如果需要在顶部工具栏中添加自定义操作(如 Binance Candles),可以创建自定义的 ToolBarAction
并将其添加到 actions
参数中。
示例代码:
Candlesticks(
candles: candles, // 蜡烛数据列表
annotations: [], // 注解列表(可选)
)
完整示例代码
以下是一个完整的示例代码,展示如何使用 candlestix
插件来绘制比特币的蜡烛图。
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:candlestix/candlesticks.dart';
import 'package:http/http.dart' as http;
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Candle> candles = []; // 存储蜡烛数据
bool themeIsDark = false; // 是否启用深色主题
[@override](/user/override)
void initState() {
// 初始化时从 API 获取蜡烛数据
fetchCandles().then((value) {
setState(() {
candles = value;
});
});
super.initState();
}
// 从 Binance API 获取蜡烛数据
Future<List<Candle>> fetchCandles() async {
final uri = Uri.parse(
"https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1h");
final res = await http.get(uri);
return (jsonDecode(res.body) as List<dynamic>)
.map((e) => Candle.fromJson(e)) // 将 JSON 数据转换为 Candle 对象
.toList()
.reversed // 反转顺序,使最新的蜡烛位于第一个位置
.toList();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
theme: themeIsDark ? ThemeData.dark() : ThemeData.light(), // 切换深色或浅色主题
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: Text("BTCUSDT 1H Chart"), // 标题
actions: [
IconButton(
onPressed: () {
setState(() {
themeIsDark = !themeIsDark; // 切换主题
});
},
icon: Icon(
themeIsDark
? Icons.wb_sunny_sharp // 太阳图标
: Icons.nightlight_round_outlined, // 月亮图标
),
)
],
),
body: Center(
child: Candlesticks(
candles: candles, // 设置蜡烛数据
annotations: [], // 注解列表(可选)
),
),
),
);
}
}
更多关于Flutter金融图表插件candlestix的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter金融图表插件candlestix的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Candlestix
是一个用于在 Flutter 中绘制金融图表的插件,特别适合显示蜡烛图(Candlestick Chart),这是金融应用中常见的图表类型。以下是如何使用 Candlestix
插件在 Flutter 应用中绘制蜡烛图的基本步骤。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 candlestix
依赖:
dependencies:
flutter:
sdk: flutter
candlestix: ^0.1.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入包
在需要使用 Candlestix
的 Dart 文件中导入包:
import 'package:candlestix/candlestix.dart';
3. 准备数据
蜡烛图需要一组 Candle
数据。每个 Candle
包含开盘价、收盘价、最高价、最低价以及时间戳等信息。你可以从 API 获取数据,或者手动创建一些示例数据:
List<Candle> candles = [
Candle(
open: 100,
close: 105,
high: 110,
low: 95,
timestamp: DateTime.now().millisecondsSinceEpoch,
),
Candle(
open: 105,
close: 102,
high: 108,
low: 100,
timestamp: DateTime.now().add(Duration(days: 1)).millisecondsSinceEpoch,
),
// 添加更多数据...
];
4. 创建图表
使用 CandlestickChart
组件来显示蜡烛图。你可以自定义图表的样式、颜色等。
class CandlestickChartExample extends StatelessWidget {
final List<Candle> candles;
CandlestickChartExample({required this.candles});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Candlestick Chart'),
),
body: CandlestickChart(
candles: candles,
candleWidth: 10,
bullColor: Colors.green,
bearColor: Colors.red,
onCandleTap: (candle) {
print('Tapped on candle: $candle');
},
),
);
}
}
5. 运行应用
在你的 main.dart
文件中,将 CandlestickChartExample
作为应用的入口:
void main() {
runApp(MaterialApp(
home: CandlestickChartExample(
candles: [
Candle(
open: 100,
close: 105,
high: 110,
low: 95,
timestamp: DateTime.now().millisecondsSinceEpoch,
),
Candle(
open: 105,
close: 102,
high: 108,
low: 100,
timestamp: DateTime.now().add(Duration(days: 1)).millisecondsSinceEpoch,
),
// 添加更多数据...
],
),
));
}
6. 自定义和扩展
Candlestix
提供了许多自定义选项,例如:
candleWidth
: 控制蜡烛的宽度。bullColor
和bearColor
: 分别控制上涨和下跌蜡烛的颜色。onCandleTap
: 点击蜡烛时的回调函数。
你还可以结合其他 Flutter 组件和插件,添加交互功能、缩放、平移等。
7. 处理实时数据
如果你的应用需要显示实时数据,可以使用 StreamBuilder
或 ValueListenableBuilder
来动态更新图表数据。
StreamBuilder<List<Candle>>(
stream: yourDataStream,
builder: (context, snapshot) {
if (snapshot.hasData) {
return CandlestickChart(
candles: snapshot.data!,
candleWidth: 10,
bullColor: Colors.green,
bearColor: Colors.red,
);
} else {
return Center(child: CircularProgressIndicator());
}
},
)