Flutter气球滑块插件flutter_balloon_slider的使用

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

Flutter气球滑块插件 flutter_balloon_slider 的使用

简介

flutter_balloon_slider 是一个带有浮动气球动画的滑块控件,灵感来源于 Balloon Picker

示例动图

安装

pubspec.yaml 文件中添加依赖:

dependencies:
  flutter_balloon_slider: "^0.1.1"

然后导入到你的项目中:

import 'package:flutter_balloon_slider/flutter_balloon_slider.dart';

基本用法

以下是一个基本的 BalloonSlider 使用示例:

BalloonSlider(
    value: 0.5,
    ropeLength: 55,
    showRope: true,
    onChangeStart: (val) {},
    onChanged: (val) {},
    onChangeEnd: (val) {},
    color: Colors.indigo
)

参数说明:

  • value: 当前滑块的值(范围为 0 到 1)。
  • ropeLength: 绳子的长度。
  • showRope: 是否显示绳子。
  • onChangeStart: 滑块开始变化时的回调函数。
  • onChanged: 滑块值变化时的回调函数。
  • onChangeEnd: 滑块结束变化时的回调函数。
  • color: 气球的颜色。

示例代码

下面是一个完整的示例 Demo,展示了如何使用 flutter_balloon_slider 插件创建两个不同的滑块,其中一个显示绳子,另一个不显示绳子,并且实时更新滑块的值。

import 'package:flutter/material.dart';
import 'package:flutter_balloon_slider/flutter_balloon_slider.dart';

void main() {
  runApp(MaterialApp(
    home: BalloonSliderDemo(),
  ));
}

// ignore: must_be_immutable
class BalloonSliderDemo extends StatelessWidget {
  ValueNotifier<double> _slider1Value = ValueNotifier<double>(0.0);
  ValueNotifier<double> _slider2Value = ValueNotifier<double>(0.0);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(
        centerTitle: true,
        title: Text("BALLOON SLIDER",
            style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20)),
      ),
      body: SizedBox.expand(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: <Widget>[
            _buildBalloonSlider(
                showRope: true, color: Colors.blue, sliderValue: _slider1Value),
            _buildBalloonSlider(
                showRope: false,
                color: Colors.blue,
                sliderValue: _slider2Value),
          ],
        ),
      ),
    );
  }

  Widget _buildBalloonSlider({ValueNotifier<double> sliderValue, Color color, bool showRope}) {
    return Stack(
      alignment: Alignment.center,
      children: <Widget>[
        Container(
          width: 240,
          height: 60,
          child: BalloonSlider(
            value: sliderValue.value,
            ropeLength: 55,
            showRope: showRope,
            onChanged: (val) => sliderValue.value = val,
            color: color,
          ),
        ),
        Positioned(
          bottom: 0,
          right: 0,
          child: ValueListenableBuilder<double>(
            valueListenable: sliderValue,
            builder: (context, value, child) {
              int progress = (value * 100).round();
              return Text(
                "$progress%",
                style: TextStyle(fontWeight: FontWeight.bold, color: color),
              );
            },
          ),
        )
      ],
    );
  }
}

示例解释

  • _slider1Value_slider2ValueValueNotifier<double> 类型的变量,用于存储滑块的当前值。
  • _buildBalloonSlider 方法用于构建滑块组件,接受三个参数:是否显示绳子 (showRope)、气球的颜色 (color) 和滑块的值 (sliderValue)。
  • BalloonSlider 组件中,通过 onChanged 回调函数更新 sliderValue 的值。
  • 使用 ValueListenableBuilder 来监听滑块值的变化,并在滑块下方显示当前的百分比值。

结论

flutter_balloon_slider 提供了一个有趣的交互方式来选择数值。你可以根据自己的需求自定义颜色、绳子长度等属性,轻松地将其集成到你的 Flutter 应用中。更多详细信息和更新日志可以查看 GitHubPub.dev 页面。


更多关于Flutter气球滑块插件flutter_balloon_slider的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter气球滑块插件flutter_balloon_slider的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用flutter_balloon_slider插件的示例代码。这个插件允许你创建一个带有气球提示的滑块控件,非常适合在用户界面中提供直观的滑动输入和即时反馈。

首先,确保你的Flutter项目已经添加了flutter_balloon_slider依赖。在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_balloon_slider: ^最新版本号  # 请替换为实际可用的最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter代码中导入flutter_balloon_slider并使用它。以下是一个完整的示例,展示了如何在一个简单的Flutter应用中集成和使用这个插件:

import 'package:flutter/material.dart';
import 'package:flutter_balloon_slider/flutter_balloon_slider.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Balloon Slider Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: BalloonSliderDemo(),
    );
  }
}

class BalloonSliderDemo extends StatefulWidget {
  @override
  _BalloonSliderDemoState createState() => _BalloonSliderDemoState();
}

class _BalloonSliderDemoState extends State<BalloonSliderDemo> {
  double _value = 50.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Balloon Slider Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Current Value: $_value',
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 24),
            BalloonSlider(
              value: _value,
              minValue: 0.0,
              maxValue: 100.0,
              onValueChanged: (double newValue) {
                setState(() {
                  _value = newValue;
                });
              },
              balloonDecoration: BoxDecoration(
                color: Colors.blue.withOpacity(0.8),
                shape: BoxShape.circle,
              ),
              balloonTextStyle: TextStyle(
                color: Colors.white,
                fontSize: 18,
              ),
              thumbColor: Colors.blue,
              activeTrackColor: Colors.blue.withOpacity(0.4),
              inactiveTrackColor: Colors.grey.withOpacity(0.4),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,包含一个BalloonSlider组件。BalloonSlider组件的属性如下:

  • value:当前滑块的值。
  • minValuemaxValue:滑块的最小值和最大值。
  • onValueChanged:当滑块值改变时的回调函数。
  • balloonDecoration:气球提示的装饰,这里我们设置了一个蓝色的圆形背景。
  • balloonTextStyle:气球提示的文本样式,这里我们设置了白色文本和字体大小。
  • thumbColor:滑块拇指的颜色。
  • activeTrackColorinactiveTrackColor:滑块活动轨道和非活动轨道的颜色。

运行这个示例应用,你将看到一个带有气球提示的滑块,当你滑动滑块时,气球提示会显示当前的值,并且界面上的文本也会更新以反映新的值。

希望这个示例能够帮助你理解和使用flutter_balloon_slider插件!

回到顶部