Flutter气泡滑动效果插件bubble_slider的使用

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

Flutter气泡滑动效果插件bubble_slider的使用

MIT License

此插件支持自定义UI的滑块,并带有气泡动画。它包括onDragStart()onDragEnd()onChange() 方法回调,用户可以根据需求获取值。

Bubble Slider

使用方法

示例

BubbleSlider(
    value: _value,
    bubbleSize: BubbleSize.medium,
    thumbRadiusSpeed: ThumbRadiusSpeed.veryFast,
    bubblesSpeed: BubbleSpeed.veryFast,
    isBubbleVisible: true,
    onChanged: (val) {
    _value = val;
    },
    onChangeEnd: (s) {},
    color: Colors.blue,
),

必需参数

Value:

这是用于设置滑块的值,范围在最小值(默认为0)到最大值(默认为100)之间。

onChanged(double val):

这是一个回调函数。用户可以通过此函数获取滑块的当前值。

onChangeEnd(double val):

这也是一个回调函数。用户可以通过此函数获取滑块的当前值,同时可以跟踪滑块是否已停用。

可选参数

min:

这是滑块的最小值。如果min为null,则默认值为0.0。

max:

这是滑块的最大值。如果max为null,则默认值为100.0。

Color:

用户可以设置滑块和气泡的颜色。

bubbleSize:

用户可以设置滑块上气泡的大小。

thumbRadiusSpeed:

用户可以设置滑块指针的动画速度。

bubblesSpeed:

用户可以设置滑块气泡的动画速度。

isBubbleVisible:

此参数用于禁用气泡动画。

onChangeStart(double val):

这是一个回调函数。用户可以通过此函数获取滑块拖动开始时的值,同时可以跟踪滑块是否激活。

完整示例代码

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Bubble slider',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const BubbleDemo(),
    );
  }
}

class BubbleDemo extends StatefulWidget {
  const BubbleDemo({Key? key}) : super(key: key);

  [@override](/user/override)
  BubbleDemoState createState() => BubbleDemoState();
}

class BubbleDemoState extends State<BubbleDemo> with TickerProviderStateMixin {
  double _value = 100.0;
  final double _min = 50.0;
  final double _max = 150.0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text(
          'Bubble Slider',
          style: TextStyle(
              color: Colors.white, fontWeight: FontWeight.bold, fontSize: 18),
        ),
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(30.0),
          child: SizedBox(
            height: 20,
            child: BubbleSlider(
              value: _value,
              min: _min,
              max: _max,
              bubbleSize: BubbleSize.medium,
              thumbRadiusSpeed: ThumbRadiusSpeed.veryFast,
              bubblesSpeed: BubbleSpeed.veryFast,
              isBubbleVisible: true,
              onChanged: (val) {
                _value = val;
              },
              onChangeEnd: (s) {},
              color: Colors.blue,
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用bubble_slider插件来实现气泡滑动效果的代码案例。bubble_slider是一个允许用户在水平或垂直轴上滑动并选择值的插件,常用于评分、选择范围等场景。

首先,确保你已经在你的pubspec.yaml文件中添加了bubble_slider依赖项:

dependencies:
  flutter:
    sdk: flutter
  bubble_slider: ^x.y.z  # 请将x.y.z替换为当前最新版本号

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

接下来,在你的Dart文件中(例如main.dart),你可以按照以下方式使用BubbleSlider

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: BubbleSliderScreen(),
    );
  }
}

class BubbleSliderScreen extends StatefulWidget {
  @override
  _BubbleSliderScreenState createState() => _BubbleSliderScreenState();
}

class _BubbleSliderScreenState extends State<BubbleSliderScreen> {
  double _value = 3.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bubble Slider Example'),
      ),
      body: Center(
        child: BubbleSlider(
          min: 0,
          max: 5,
          value: _value,
          bubbleSize: 20.0,
          bubbleSpacing: 10.0,
          bubbleColor: Colors.blue,
          bubbleBorderRadius: 10.0,
          bubbleActiveColor: Colors.red,
          onChanged: (newValue) {
            setState(() {
              _value = newValue;
            });
          },
        ),
      ),
      bottomNavigationBar: BottomAppBar(
        child: Container(
          width: double.infinity,
          child: Center(
            child: Text(
              'Selected Value: $_value',
              style: TextStyle(fontSize: 20),
            ),
          ),
        ),
      ),
    );
  }
}

代码解释

  1. 依赖项添加

    • pubspec.yaml文件中添加bubble_slider依赖项。
  2. 主函数

    • MyApp类创建了一个MaterialApp,并将BubbleSliderScreen作为其主页。
  3. BubbleSliderScreen

    • BubbleSliderScreen是一个有状态的Widget,它维护了一个名为_value的状态变量,用于存储当前选择的值。
    • 使用BubbleSlider组件,设置其最小值、最大值、当前值、气泡大小、气泡间距、气泡颜色、气泡活动颜色等属性。
    • 使用onChanged回调来更新_value状态,当滑动条的值改变时,_value会被更新,并且界面会重新渲染以显示新的值。
  4. 显示选中的值

    • bottomNavigationBar中,使用BottomAppBarContainer来显示当前选中的值。

这样,你就可以在你的Flutter应用中实现一个带有气泡滑动效果的组件了。根据具体需求,你可以进一步自定义BubbleSlider的属性和样式。

回到顶部