Flutter垂直滑动控制插件vertical_slider的使用

Flutter垂直滑动控制插件vertical_slider的使用

特性

Vertical Slider 插件是用Dart原生开发的,用于创建高度交互式的垂直滑块小部件。

使用方法

安装插件

首先,你需要在 pubspec.yaml 文件中添加该插件:

dependencies:
  vertical_slider: ^版本号

然后运行以下命令以安装插件:

flutter pub get

基本用法

以下是一个简单的示例,展示如何使用 VerticalSlider 创建一个垂直滑块控件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Vertical Slider 示例'),
        ),
        body: VerticalSliderDemo(),
      ),
    );
  }
}

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

class _VerticalSliderDemoState extends State<VerticalSliderDemo> {
  double volume = 1.0; // 初始化滑块的值

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            '当前音量: $volume',
            style: TextStyle(fontSize: 18),
          ),
          SizedBox(height: 20),
          VerticalSlider(
            // 设置滑块的初始值
            value: volume,
            // 定义滑块值变化时的回调函数
            onChanged: (double newValue) {
              setState(() {
                volume = newValue; // 更新滑块的值
              });
            },
            // 设置滑块的最大值和最小值
            min: 0.0,
            max: 1.0,
            // 设置滑块的高度
            height: 200,
            // 设置滑块的颜色
            activeColor: Colors.blue,
            inactiveColor: Colors.grey,
          ),
        ],
      ),
    );
  }
}

更多关于Flutter垂直滑动控制插件vertical_slider的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter垂直滑动控制插件vertical_slider的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


vertical_slider 是一个用于 Flutter 的垂直滑动控制插件,允许用户通过垂直滑动来选择一个值。它类似于 Flutter 自带的 Slider 小部件,但是是垂直方向的。

安装

首先,你需要在 pubspec.yaml 文件中添加 vertical_slider 依赖:

dependencies:
  flutter:
    sdk: flutter
  vertical_slider: ^1.0.0  # 请检查最新版本

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

基本用法

以下是一个简单的示例,展示如何使用 vertical_slider

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Vertical Slider Example'),
        ),
        body: Center(
          child: VerticalSlider(
            min: 0,
            max: 100,
            value: 50,
            onChanged: (double value) {
              print('Selected value: $value');
            },
          ),
        ),
      ),
    );
  }
}

参数说明

  • min: 滑动条的最小值,默认为 0.0
  • max: 滑动条的最大值,默认为 1.0
  • value: 滑动条的当前值。
  • onChanged: 当用户滑动时调用的回调函数,返回当前的值。
  • onChangeStart: 当用户开始滑动时调用的回调函数。
  • onChangeEnd: 当用户结束滑动时调用的回调函数。
  • activeColor: 滑动条的活动部分颜色。
  • inactiveColor: 滑动条的非活动部分颜色。
  • thumbColor: 滑动条拇指的颜色。
  • divisions: 滑动条的分段数,如果为 null,则滑动条是连续的。
  • label: 滑动条拇指上显示的标签。

自定义样式

你可以通过设置 activeColorinactiveColorthumbColor 来自定义滑动条的样式:

VerticalSlider(
  min: 0,
  max: 100,
  value: 50,
  activeColor: Colors.blue,
  inactiveColor: Colors.grey,
  thumbColor: Colors.red,
  onChanged: (double value) {
    print('Selected value: $value');
  },
)

分段滑动条

你可以通过设置 divisions 参数来将滑动条分成若干段:

VerticalSlider(
  min: 0,
  max: 100,
  value: 50,
  divisions: 10,
  onChanged: (double value) {
    print('Selected value: $value');
  },
)

完整示例

以下是一个完整的示例,展示了如何使用 vertical_slider 并显示当前值:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Vertical Slider Example'),
        ),
        body: VerticalSliderDemo(),
      ),
    );
  }
}

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

class _VerticalSliderDemoState extends State<VerticalSliderDemo> {
  double _currentValue = 50.0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            'Current Value: ${_currentValue.toStringAsFixed(1)}',
            style: TextStyle(fontSize: 20),
          ),
          SizedBox(height: 20),
          VerticalSlider(
            min: 0,
            max: 100,
            value: _currentValue,
            divisions: 10,
            activeColor: Colors.blue,
            inactiveColor: Colors.grey,
            thumbColor: Colors.red,
            onChanged: (double value) {
              setState(() {
                _currentValue = value;
              });
            },
          ),
        ],
      ),
    );
  }
}
回到顶部