Flutter选择波浪滑块插件selection_wave_slider的使用

Flutter选择波浪滑块插件selection_wave_slider的使用

Flutter中的波浪滑块插件(selection_wave_slider)是一个用于选择值范围的材料设计小部件。它是一个输入小部件,通过拖动或推动理想位置来设置一个值范围。此外,它还支持可拖动的位置到底部。

通常情况下,我们使用滑块小部件来改变一个值。因此,需要将该值存储在一个变量中。此小部件有一个需要onChanged()函数的滑块类。每当滑块位置发生变化时,这个函数就会被调用。

示例

开始使用

在你的pubspec.yaml文件中添加依赖项:

dependencies:
  ...
  selection_wave_slider: any

属性

属性名 必填 描述
optionToChoose 字符串列表(列表大小必须小于10)
onSelected 提供选中值的回调
sliderHeight 滑块高度
toolTipBackgroundColor 工具提示背景颜色
toolTipBorderColor 工具提示边框颜色
toolTipTextStyle 工具提示文本样式
dragButtonColor 可拖动对象的颜色
selected 初始选中值
dragButton 自定义拖动小部件
sliderColor 滑块颜色
sliderPointColor 滑块上点的颜色
sliderPointBorderColor 可拖动对象边框颜色

使用方法

WaveSliderWithDragPoint(
  dragButton: Container(
    color: Colors.blue,
  ),
  sliderHeight: 80,
  sliderPointColor: Colors.blue,
  sliderPointBorderColor: Colors.orange,
  sliderColor: Colors.red,
  toolTipBackgroundColor: Colors.yellow,
  toolTipBorderColor: Colors.green,
  toolTipTextStyle: TextStyle(
    color: Colors.green,
    fontSize: 14,
    fontWeight: FontWeight.w500,
  ),
  onSelected: (value) {
    print(value);
  },
  optionToChoose: [
    "Yes",
    "May Be",
    "No",
  ],
)

完整示例代码

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

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

class MyApp extends StatelessWidget {
  // 这个小部件是你的应用的根组件。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

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

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

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            WaveSliderWithDragPoint(
              /* 
              dragButton: Container(
                color: Colors.blue,
              ),
              sliderHeight: 80,
              sliderPointColor: Colors.blue,
              sliderPointBorderColor: Colors.orange,
              sliderColor: Colors.red,
              toolTipBackgroundColor: Colors.yellow,
              toolTipBorderColor: Colors.green,
              toolTipTextStyle: TextStyle(
                color: Colors.green,
                fontSize: 14,
                fontWeight: FontWeight.w500,
              ),
              */
              onSelected: (value) {
                print(value);
              },
              optionToChoose: [
                "Yes",
                "May Be",
                "No",
              ],
            )
          ],
        ),
      ),
    );
  }
}

更多关于Flutter选择波浪滑块插件selection_wave_slider的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


selection_wave_slider 是一个 Flutter 插件,用于创建一个具有波浪效果的滑块。这个插件可以为你的应用程序添加一个视觉上非常吸引人的滑块控件。以下是如何在 Flutter 项目中使用 selection_wave_slider 的基本步骤。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 selection_wave_slider 插件的依赖。打开 pubspec.yaml 文件,在 dependencies 部分添加如下内容:

dependencies:
  flutter:
    sdk: flutter
  selection_wave_slider: ^0.1.1  # 检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入 selection_wave_slider 插件:

import 'package:selection_wave_slider/selection_wave_slider.dart';

3. 使用 SelectionWaveSlider

你可以在你的 widget 树中使用 SelectionWaveSlider 控件。以下是一个简单的示例:

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

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  double _value = 0.5;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Wave Slider Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Value: ${_value.toStringAsFixed(2)}',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            SelectionWaveSlider(
              value: _value,
              onChanged: (double value) {
                setState(() {
                  _value = value;
                });
              },
              width: 300,
              height: 60,
              waveColor: Colors.blue,
              bgColor: Colors.grey[200],
              thumbColor: Colors.blueAccent,
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部