Flutter滑动条形图插件slider_bar_chart的使用

发布于 1周前 作者 nodeper 来自 Flutter

Flutter滑动条形图插件slider_bar_chart的使用

📊 Slider Bar Chart

截图 1 截图 2

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

1 回复

更多关于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;
                });
              },
            ),
          ),
        ],
      ),
    );
  }
}

在这个示例中:

  1. labelsvalues 列表分别存储条形图的标签和对应的值。
  2. selectedValue 存储当前用户选择的值。
  3. SliderBarChart 小部件用于显示条形图,用户可以通过滑动来选择不同的值。
  4. onChanged 回调在用户滑动时触发,并更新 selectedValue 的值。
  5. 在界面顶部显示当前选中的值。

这个示例代码展示了如何使用 slider_bar_chart 插件创建一个简单的滑动条形图,并实时显示用户选择的值。根据你的需求,你可以进一步自定义条形图的样式和功能。

回到顶部