Flutter滑动条形图插件slider_bar_chart的使用
Flutter滑动条形图插件slider_bar_chart的使用
📊 Slider Bar Chart
Slider Bar Chart 是一个轻量级且可定制的Flutter库,用于创建简单的条形图。适用于以优雅且简约的方式可视化比较数据。
🌟 特性
- 灵活配置:自定义标题、颜色和工具提示。
- 支持两个数据系列:可以显示一条或两条Y轴数据系列。
- 可定制的工具提示:格式化和样式化工具提示以显示上下文信息。
- 响应式设计:调整图表高度和布局以适应不同屏幕尺寸。
- 水平滚动:图表将自动启用水平滚动视图以适应所有数据。
🚀 安装
在pubspec.yaml
文件中添加slider_bar_chart
依赖:
dependencies:
slider_bar_chart: ^0.0.5
🛠️ 使用
基本示例
首先,在Dart文件中导入slider_bar_chart
包:
import 'package:slider_bar_chart/slider_bar_chart.dart';
创建一个SliderBarChartWidget
实例:
SliderBarChartWidget(
data: SbcData(
xValues: List.generate(100, (index) => index),
yValues: List.generate(
100, (index) => Random().nextDouble() * 256),
),
),
控制图表的整体布局,包括高度、标题、条形和工具提示:
SliderBarChartWidget(
decoration: SbcDecoration(
height: 300.0,
showScrollbar: true,
singleBarPosition: SingleBarPosition.bottom, // 默认值
titleDecoration: SbcTitleDecoration(
xHeightSpace: 40.0,
xWidthSpace: 35.0,
showYTitles: true,
yTitleTextFormatter: null,
fixedYTitles: false,
yTitlePosition: YTitlePosition.both,
),
tooltipDecoration: SbcTooltipDecoration(
backgroundColor: null,
triggerMode: TooltipTriggerMode.tap,
waitDuration: Duration.zero,
padding: EdgeInsets.all(15.0),
yTextFormatter: null,
y2TextFormatter: null,
border: null,
borderRadius: 14
),
barDecoration: SbcBarDecoration(
barWidth: 15.0,
showAsProgress: true,
yColor: null,
y2Color: null,
),
),
data: SbcData(
xValues: List.generate(100, (index) => index),
yValues: List.generate(
100, (index) => Random().nextDouble() * 256),
),
),
示例代码
以下是完整的示例代码:
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:slider_bar_chart/slider_bar_chart.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: '简单条形图示例',
theme: ThemeData.light(),
home: Scaffold(
appBar: AppBar(title: const Text('简单条形图示例')),
body: Center(
child: SingleChildScrollView(
child: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
const Text('单个y值'),
SliderBarChartWidget(
data: SbcData(
xValues: List.generate(100, (index) => index),
yValues: List.generate(
100, (index) => Random().nextDouble() * 256),
),
),
const Divider(height: 100),
const Text('双y值'),
SliderBarChartWidget(
data: SbcData(
xValues: List.generate(100, (index) => index),
yValues: List.generate(
100, (index) => Random().nextDouble() * 256),
y2Values: List.generate(
100, (index) => Random().nextDouble() * 256),
),
),
],
),
),
),
),
),
);
}
}
更多关于Flutter滑动条形图插件slider_bar_chart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter滑动条形图插件slider_bar_chart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用 slider_bar_chart
插件在 Flutter 中创建滑动条形图的示例代码。slider_bar_chart
是一个第三方插件,用于创建交互式条形图,用户可以通过滑动来选择不同的值。
首先,确保在你的 pubspec.yaml
文件中添加 slider_bar_chart
依赖:
dependencies:
flutter:
sdk: flutter
slider_bar_chart: ^最新版本号 # 替换为最新版本号
然后运行 flutter pub get
来获取依赖。
接下来,你可以在你的 Flutter 应用中使用 SliderBarChart
小部件。以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:slider_bar_chart/slider_bar_chart.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Slider Bar Chart Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Slider Bar Chart Example'),
),
body: SliderBarChartExample(),
),
);
}
}
class SliderBarChartExample extends StatefulWidget {
@override
_SliderBarChartExampleState createState() => _SliderBarChartExampleState();
}
class _SliderBarChartExampleState extends State<SliderBarChartExample> {
final List<String> labels = ['A', 'B', 'C', 'D', 'E'];
final List<double> values = [5, 10, 15, 20, 25];
double selectedValue = 0.0;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Selected Value: ${selectedValue.toInt()}',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 16),
Expanded(
child: SliderBarChart(
data: List.generate(
labels.length,
(index) => BarData(
label: labels[index],
value: values[index],
),
),
selectedColor: Colors.blue,
unselectedColor: Colors.grey[300]!,
selectedValue: selectedValue,
onChanged: (newValue) {
setState(() {
selectedValue = newValue;
});
},
),
),
],
),
);
}
}
在这个示例中:
labels
和values
列表分别存储条形图的标签和对应的值。selectedValue
存储当前用户选择的值。SliderBarChart
小部件用于显示条形图,用户可以通过滑动来选择不同的值。onChanged
回调在用户滑动时触发,并更新selectedValue
的值。- 在界面顶部显示当前选中的值。
这个示例代码展示了如何使用 slider_bar_chart
插件创建一个简单的滑动条形图,并实时显示用户选择的值。根据你的需求,你可以进一步自定义条形图的样式和功能。